%global _empty_manifest_terminate_build 0 Name: python-flake8-typing-imports Version: 1.14.0 Release: 1 Summary: flake8 plugin which checks that typing imports are properly guarded License: MIT URL: https://github.com/asottile/flake8-typing-imports Source0: https://mirrors.nju.edu.cn/pypi/web/packages/04/ae/3e6e7dad6cb04573315a5bad115590dffd66f80de0f71e898cf0bb32cdae/flake8_typing_imports-1.14.0.tar.gz BuildArch: noarch Requires: python3-flake8 %description flake8 plugin which checks that typing imports are properly guarded ## installation ```bash pip install flake8-typing-imports ``` ## flake8 codes | Code | Description | |--------|-----------------------------------------------------------------------| | TYP001 | guard import by `TYPE_CHECKING` | | TYP002 | `@overload` is broken in <3.5.2 | | TYP003 | `Union[Match, ...]` or `Union[Pattern, ...]` must be quoted in <3.5.2 | | TYP004 | `NamedTuple` does not support methods in 3.6.0 | | TYP005 | `NamedTuple` does not support defaults in 3.6.0 | | TYP006 | guard `typing` attribute by quoting | ## 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, 3.7.0, and 3.7.2! 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! ```python # default / --min-python-version 3.5.0 from typing import Type # TYP001 ``` ```python # default / --min-python-version 3.5.0 if False: from typing import Type # OK! ``` ```python # default / --min-python-version 3.5.0 from typing import overload # TYP002 ``` ```python # default / --min-python-version 3.5.0 import sys from typing import overload # OK! if sys.version_info < (3, 5, 2): def overload(f): return f ``` ```python # default / --min-python-version 3.5.0 def foo(bar: Union[Match, str]) -> None: pass # TYP003 def foo(bar: "Union[Match, str]") -> None: pass # OK! def foo(bar: Union[Pattern, str]) -> None: pass # TYP003 def foo(bar: "Union[Pattern, str]") -> None: pass # OK! ``` ```python # --min-python-version 3.6.0 class NT(NamedTuple): x: int = 5 # TYP005 def f(self) -> int: # TYP004 return self.x + 4 ``` ```python # --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: ```ini [flake8] min_python_version = 3.6.2 ``` if a `>=` is set for `python_requires` in `setup.cfg`, that value will be used: ```ini # setup.cfg setuptools metadata [options] python_requires = >=3.6 ``` ## as a pre-commit hook See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions Sample `.pre-commit-config.yaml`: ```yaml - repo: https://github.com/pycqa/flake8 rev: 3.7.7 hooks: - id: flake8 additional_dependencies: [flake8-typing-imports==1.12.0] ``` %package -n python3-flake8-typing-imports Summary: flake8 plugin which checks that typing imports are properly guarded Provides: python-flake8-typing-imports BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-flake8-typing-imports flake8 plugin which checks that typing imports are properly guarded ## installation ```bash pip install flake8-typing-imports ``` ## flake8 codes | Code | Description | |--------|-----------------------------------------------------------------------| | TYP001 | guard import by `TYPE_CHECKING` | | TYP002 | `@overload` is broken in <3.5.2 | | TYP003 | `Union[Match, ...]` or `Union[Pattern, ...]` must be quoted in <3.5.2 | | TYP004 | `NamedTuple` does not support methods in 3.6.0 | | TYP005 | `NamedTuple` does not support defaults in 3.6.0 | | TYP006 | guard `typing` attribute by quoting | ## 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, 3.7.0, and 3.7.2! 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! ```python # default / --min-python-version 3.5.0 from typing import Type # TYP001 ``` ```python # default / --min-python-version 3.5.0 if False: from typing import Type # OK! ``` ```python # default / --min-python-version 3.5.0 from typing import overload # TYP002 ``` ```python # default / --min-python-version 3.5.0 import sys from typing import overload # OK! if sys.version_info < (3, 5, 2): def overload(f): return f ``` ```python # default / --min-python-version 3.5.0 def foo(bar: Union[Match, str]) -> None: pass # TYP003 def foo(bar: "Union[Match, str]") -> None: pass # OK! def foo(bar: Union[Pattern, str]) -> None: pass # TYP003 def foo(bar: "Union[Pattern, str]") -> None: pass # OK! ``` ```python # --min-python-version 3.6.0 class NT(NamedTuple): x: int = 5 # TYP005 def f(self) -> int: # TYP004 return self.x + 4 ``` ```python # --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: ```ini [flake8] min_python_version = 3.6.2 ``` if a `>=` is set for `python_requires` in `setup.cfg`, that value will be used: ```ini # setup.cfg setuptools metadata [options] python_requires = >=3.6 ``` ## as a pre-commit hook See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions Sample `.pre-commit-config.yaml`: ```yaml - repo: https://github.com/pycqa/flake8 rev: 3.7.7 hooks: - id: flake8 additional_dependencies: [flake8-typing-imports==1.12.0] ``` %package help Summary: Development documents and examples for flake8-typing-imports Provides: python3-flake8-typing-imports-doc %description help flake8 plugin which checks that typing imports are properly guarded ## installation ```bash pip install flake8-typing-imports ``` ## flake8 codes | Code | Description | |--------|-----------------------------------------------------------------------| | TYP001 | guard import by `TYPE_CHECKING` | | TYP002 | `@overload` is broken in <3.5.2 | | TYP003 | `Union[Match, ...]` or `Union[Pattern, ...]` must be quoted in <3.5.2 | | TYP004 | `NamedTuple` does not support methods in 3.6.0 | | TYP005 | `NamedTuple` does not support defaults in 3.6.0 | | TYP006 | guard `typing` attribute by quoting | ## 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, 3.7.0, and 3.7.2! 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! ```python # default / --min-python-version 3.5.0 from typing import Type # TYP001 ``` ```python # default / --min-python-version 3.5.0 if False: from typing import Type # OK! ``` ```python # default / --min-python-version 3.5.0 from typing import overload # TYP002 ``` ```python # default / --min-python-version 3.5.0 import sys from typing import overload # OK! if sys.version_info < (3, 5, 2): def overload(f): return f ``` ```python # default / --min-python-version 3.5.0 def foo(bar: Union[Match, str]) -> None: pass # TYP003 def foo(bar: "Union[Match, str]") -> None: pass # OK! def foo(bar: Union[Pattern, str]) -> None: pass # TYP003 def foo(bar: "Union[Pattern, str]") -> None: pass # OK! ``` ```python # --min-python-version 3.6.0 class NT(NamedTuple): x: int = 5 # TYP005 def f(self) -> int: # TYP004 return self.x + 4 ``` ```python # --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: ```ini [flake8] min_python_version = 3.6.2 ``` if a `>=` is set for `python_requires` in `setup.cfg`, that value will be used: ```ini # setup.cfg setuptools metadata [options] python_requires = >=3.6 ``` ## as a pre-commit hook See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions Sample `.pre-commit-config.yaml`: ```yaml - repo: https://github.com/pycqa/flake8 rev: 3.7.7 hooks: - id: flake8 additional_dependencies: [flake8-typing-imports==1.12.0] ``` %prep %autosetup -n flake8-typing-imports-1.14.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-flake8-typing-imports -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 1.14.0-1 - Package Spec generated