# What changed in termcolor

> 17 changes in termcolor 2 to 3 from its official release notes, upgrade guides and advisories: 4 breaking, 2 new APIs and options. Each one cited. Sources checked 2026-10-28. HTML: https://unstale.sh/pypi/termcolor/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## termcolor 3

### Breaking changes

- Dropped support for Python 3.9. (3.2.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.2.0)
- The deprecated `__ALL__` is removed; use `__all__` instead. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)

### New APIs and options

- Italic styling is now supported. (3.3.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.3.0)

### Behavior and default changes

- Exposed can_colorize as a public API. (3.2.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.2.0)
- Literal types are replaced with strings, changing the package's type annotations. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)

### Fixes and other changes

- Expect fileno() to raise OSError, as documented. (3.3.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.3.0)
- Added support for Python 3.15. (3.2.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.2.0)
- The variable is applied only when present and not an empty string. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)
- The variable is applied only when present and not an empty string. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)
- The variable is applied only when present and not an empty string. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)
- Adds support for Python 3.14. (3.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/3.0.0)

## termcolor 2

### Breaking changes

- Support for EOL Python versions 3.6 and earlier was dropped. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)
- The hardcoded VERSION constant was removed; release notes show how to retrieve the installed package version with importlib.metadata. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)

### New APIs and options

- The library supports the NO_COLOR environment variable. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)

### Tooling

- Type annotations were added to the project. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)

### Fixes and other changes

- Python 3.10 is supported. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)
- Python 3.11 and PyPy are supported. (2.0.0) — [release notes](https://github.com/termcolor/termcolor/releases/tag/2.0.0)
