Releases: snok/flake8-type-checking
v1.3.1
The release of v1.3.0 was a bit premature. It contained the wrong defaults for a few settings, so we yanked the release.
These are the improvements and new features from v1.2.0:
Features
-
Added FastAPI support (#60)
Added a --type-checking-fastapi-enabled option to treat decorated function annotations as required at runtime. Note that FastAPI also evaluates the annotations of callables passed to Depends. That is not handled by this setting.
-
Added a FastAPI-dependency-support setting (#66)
For users that wish to prevent false positives at all costs, this setting treats all function definitions as required at runtime. The setting is available using
--type-checking-fastapi-dependency-support-enabled -
Added support for opting into class var checking, when pydantic support is enabled (#67)
When pydantic support is enabled, checking of type annotation for classes is completely disabled if the class has at least one base class. This setting allows users to specify specific base classes to check additionally. For example, typing classes like
NamedTuple,TypedDict, andProtocolseem like good candidates. Can be used with--type-checking-pydantic-enabled-baseclass-passlist.
Fixes and improvements
- Corrected the flake8-extensions code in the project's pyproject.toml (was TCH rather than TC)
- Removed dead changelog link in favour of releases link, in the pypi metadata
- Removed pytest-cov in favour of just coverage
- Rewrote sections of the docs
v1.3.0
Features
-
Added FastAPI support (#60)
Added a
--type-checking-fastapi-enabledoption to treat decorated function annotations as required at runtime. Note that FastAPI also evaluates the annotations of callables passed toDepends. For now that is not handled by the setting.
Fixes and improvements
- Corrected the flake8-extensions code in the project's pyproject.toml (was
TCHrather thanTC) - Removed dead changelog link in favour of releases link, in the pypi metadata
- Removed pytest-cov in favour of just coverage
- Rewrote sections of the docs
v1.2.0
Features
-
Added Pydantic support (#58)
For a quick summary of why Pydantic needs support in the first place: unlike most Python libraries, Pydantic evaluates annotations defined on their models at runtime. At the same time, this plugin is built on the assumption that imports which are only found in annotation slots, are not required at runtime. To make this work, we have added a
--type-checking-pydantic-enabledoption which, when toggled on, will treat all annotations from class variable annotations as required at runtime.This will lead to some false positives, e.g., for
dataclassannotations, but in this case false positives are inconsequential and false negatives lead to runtime errors in prod, so better to favour the former in this case.
Fixes
- Fixed
end_linenoinference for__all__assignments (#59)