Releases: snok/flake8-type-checking
v3.0.0
Breaking changes
- The plugin is now more strict about detecting special typing symbols like
cast
andAnnotated
, which means re-exports from a different module no longer work without using the new settingtype-checking-typing-modules
. Refer to theREADME
for usage instructions. - Drop Python 3.8 support. Add Python 3.13 support. #197
What's New
- Add support for
singledispatch
/singledispatchmethod
. #196 - Add new setting to enforce future imports for all annotations. #200
Bug fixes
typing.Annotated
should be special-cased liketyping.Literal
. #193- Make sure to visit
returns
not just the argument annotations. #198 - Avoid false negatives for TC001-003 related to
typing.cast
. #199 - Injector plugin requires all annotations in the injected function. #201
Full Changelog: v2.9.1...v3.0.0
v2.9.1
v2.9.0
v2.8.0
v2.7.0
New features
- Added support for the injector library, by @OlehChyhyryn in #176
New Contributors
- @OlehChyhyryn made their first contribution in #176
Full Changelog: v2.6.0...v2.7.0
v2.6.0
What's Changed
#174 (by @Daverball) refactors the internals of the plugin to get better awareness of scopes.
This:
- Fixes scoping edge-case issues (#131)
- Fixes some false positive TC100/TC101 cases
- Fixes some rare cases where both a TC004/TC009 and a TC100/TC200 were emitted for the same symbol
Secondly, the PR adds support for PEP695 and adds a new plugin error code:
TC009 Move declaration out of type-checking block. Variable is used for more than type hinting
This error code is distinct from the existing, similarly sounding TC004
error, and is used to flag issues related to TypeVar
definitions.
Full Changelog: v2.5.1...v2.6.0
v2.5.1
What's Changed
- fix: Avoid potentially harmful TC201 false positives by @Daverball in #173
Full Changelog: v2.5.0...v2.5.1
v2.5.0
What's Changed
This release adds two new error codes:
- TC007: Type alias needs to be made into a string literal
- TC008: Type alias does not need to be a string literal
which will make the plugin handle TypeAlias
es, and corresponding imports, correctly.
The same PR also fixed false positive TC201 errors. Kudos to @Daverball for making it happen 👏
Full Changelog: v2.4.2...v2.5.0
v2.4.2
What's new
- perf: Make
is_exempt_module
work with an iterator by @iurisilvio in #162 - fix: Annotations inside
if TYPE_CHECKING:
should not result in TC200 by @Daverball in #165 - fix: Prevent false positive TC004 when variable name matches name of module in TYPE_CHECKING block by @sondrelg in #161
- fix: Wrapped annotations with subscripted types should not raise TC201 by @Daverball in #166
- fix: TC201 should never emit for classes defined in-file by @Daverball in #167
New Contributors
- @iurisilvio made their first contribution in #162
- @Daverball made their first contribution in #165
Full Changelog: v2.4.1...v2.4.2