flake8 plugin which checks that typing imports are properly guarded
Project description
flake8-typing-imports
flake8 plugin which checks that typing imports are properly guarded
installation
pip install flake8-typing-imports
rationale
unfortunately, the typing
module has been pretty unstable -- it has seen api
changes in 3.5.0, 3.5.2, 3.5.3, 3.5.4, 3.6.0, 3.6.1, 3.6.2, and 3.7.0!
depending on your supported version of python, you may need to guard your
imports by if TYPE_CHECKING:
(3.5.2+) or if False:
if the things you are
importing aren't available in all the pythons you support.
as it's pretty difficult to keep track of what version things changed and you can't always test against particular patch versions of python, this plugin helps you statically check this automatically!
# default / --min-python-version 3.5.0
from typing import Type # TYP001
# default / --min-python-version 3.5.0
if False:
from typing import Type # OK!
# --min-python-version 3.7.0
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from typing import OrderedDict # OK!
configuration
this plugin has a single configuration point (beyond those provided by flake8)
which is the --min-python-version
option.
by default, this option is 3.5.0
. this includes all versions of python
which have the typing
module present.
you can also set this option in the flake8 configuration if you don't want to use the commandline:
[flake8]
min_python_version = 3.6.2
if a >=
is set for python_requires
in setup.cfg
, that value will be used:
# setup.cfg setuptools metadata
[options]
python_requires = >=3.6
as a pre-commit hook
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.7
hooks:
- id: flake8
additional_dependencies: [flake8-typing-imports==1.1.0]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for flake8_typing_imports-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8978da94e8bfed1bffcda1b2b8a717f7d149379dd6363267a0c3417787692c05 |
|
MD5 | 7c95d355ad98aadd83864c123bffd0dc |
|
BLAKE2b-256 | 7d87c3e0a419af19ff26e0351d49aed66af2bfce32d46540f646632656009d96 |
Hashes for flake8_typing_imports-1.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 214b28acac57c10051793478333703889fcfbecf11c07c50be77c430e2dd2353 |
|
MD5 | 1187a27834b67e866fc033c6c28bfd3d |
|
BLAKE2b-256 | d3fea9db8f7629e37664c915e4f58a8bf10a977cf3d2d00d7cc57468628cb95d |