{ "info": { "author": "Anthony Sottile", "author_email": "asottile@umich.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only" ], "description": "[![Build Status](https://dev.azure.com/asottile/asottile/_apis/build/status/asottile.flake8-typing-imports?branchName=master)](https://dev.azure.com/asottile/asottile/_build/latest?definitionId=23&branchName=master)\n[![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/asottile/asottile/23/master.svg)](https://dev.azure.com/asottile/asottile/_build/latest?definitionId=23&branchName=master)\n\nflake8-typing-imports\n=====================\n\nflake8 plugin which checks that typing imports are properly guarded\n\n## installation\n\n`pip install flake8-typing-imports`\n\n## flake8 codes\n\n| Code | Description |\n|--------|---------------------------------|\n| TYP001 | guard import by `TYPE_CHECKING` |\n| TYP002 | `@overload` is broken in <3.5.2 |\n\n## rationale\n\nunfortunately, the `typing` module has been pretty unstable -- it has seen api\nchanges 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!\n\ndepending on your supported version of python, you may need to guard your\nimports by `if TYPE_CHECKING:` (3.5.2+) or `if False:` if the things you are\nimporting aren't available in all the pythons you support.\n\nas it's pretty difficult to keep track of what version things changed and you\ncan't always test against particular patch versions of python, this plugin\nhelps you statically check this automatically!\n\n```python\n# default / --min-python-version 3.5.0\nfrom typing import Type # TYP001\n```\n\n```python\n# default / --min-python-version 3.5.0\nif False:\n from typing import Type # OK!\n```\n\n```python\n# default / --min-python-version 3.5.0\nfrom typing import overload # TYP002\n```\n\n```python\n# default / --min-python-version 3.5.0\nimport sys\nfrom typing import overload # OK!\nif sys.version_info < (3, 5, 2):\n def overload(f):\n return f\n```\n\n```python\n# --min-python-version 3.7.0\nfrom typing import TYPE_CHECKING\nif TYPE_CHECKING:\n from typing import OrderedDict # OK!\n```\n\n## configuration\n\nthis plugin has a single configuration point (beyond those provided by flake8)\nwhich is the `--min-python-version` option.\n\nby default, this option is `3.5.0`. this includes all versions of python\nwhich have the `typing` module present.\n\nyou can also set this option in the flake8 configuration if you don't want\nto use the commandline:\n\n```ini\n[flake8]\nmin_python_version = 3.6.2\n```\n\nif a `>=` is set for `python_requires` in `setup.cfg`, that value will be used:\n\n```ini\n# setup.cfg setuptools metadata\n\n[options]\npython_requires = >=3.6\n```\n\n## as a pre-commit hook\n\nSee [pre-commit](https://github.com/pre-commit/pre-commit) for instructions\n\nSample `.pre-commit-config.yaml`:\n\n```yaml\n- repo: https://gitlab.com/pycqa/flake8\n rev: 3.7.7\n hooks:\n - id: flake8\n additional_dependencies: [flake8-typing-imports==1.4.0]\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/asottile/flake8-typing-imports", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flake8-typing-imports", "package_url": "https://pypi.org/project/flake8-typing-imports/", "platform": "", "project_url": "https://pypi.org/project/flake8-typing-imports/", "project_urls": { "Homepage": "https://github.com/asottile/flake8-typing-imports" }, "release_url": "https://pypi.org/project/flake8-typing-imports/1.4.0/", "requires_dist": [ "flake8 (>=3.7)", "importlib-metadata (>=0.9) ; python_version < \"3.8\"" ], "requires_python": ">=3.6", "summary": "flake8 plugin which checks that typing imports are properly guarded", "version": "1.4.0" }, "last_serial": 5992787, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "14a8fa242e940eaf90e2eacd8918eba2", "sha256": "fc040a0ccc1b50d701033440e4627b18bcf33f13342a08b02995802ba443fe86" }, "downloads": -1, "filename": "flake8_typing_imports-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "14a8fa242e940eaf90e2eacd8918eba2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5446, "upload_time": "2019-05-21T02:27:28", "url": "https://files.pythonhosted.org/packages/61/2d/45dae9047b79819be6e8ba5669aa0458893f44fc045409bba7ca7d89ae45/flake8_typing_imports-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e230a1bcdd1b2e07ca35e5addc072c2c", "sha256": "e8bcaf08a7b5f6156f6c38de7c09fa7af813b86685eb71da7e4bbf518c727c3a" }, "downloads": -1, "filename": "flake8_typing_imports-0.0.0.tar.gz", "has_sig": false, "md5_digest": "e230a1bcdd1b2e07ca35e5addc072c2c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4830, "upload_time": "2019-05-21T02:27:30", "url": "https://files.pythonhosted.org/packages/0b/ad/4fdc03e8dbdcfd6c69399aa2cb9552440fe9e98d66e651292d2c79f35cfc/flake8_typing_imports-0.0.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a5800a0013f080657daa4acc33c27691", "sha256": "1fa6dd22c926e947bf0921e3d4e30e40af3eda3dbc3edd7ef4204b56c84aa334" }, "downloads": -1, "filename": "flake8_typing_imports-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5800a0013f080657daa4acc33c27691", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5658, "upload_time": "2019-05-21T03:12:26", "url": "https://files.pythonhosted.org/packages/67/c7/b874bb339bd08eb50394119be7444aeb003adba0d28a151662921fac4076/flake8_typing_imports-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7939cc43db203fa4ea587ed67af73af5", "sha256": "fc4c861674d9546b801d8e4bda981a2717390a291417498aae7491512672d5de" }, "downloads": -1, "filename": "flake8_typing_imports-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7939cc43db203fa4ea587ed67af73af5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5036, "upload_time": "2019-05-21T03:12:28", "url": "https://files.pythonhosted.org/packages/c2/f9/b088a609649059adb9a2101b1b0f0e240499c5b5df43362db7b8648f38a2/flake8_typing_imports-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1187a27834b67e866fc033c6c28bfd3d", "sha256": "214b28acac57c10051793478333703889fcfbecf11c07c50be77c430e2dd2353" }, "downloads": -1, "filename": "flake8_typing_imports-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1187a27834b67e866fc033c6c28bfd3d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5830, "upload_time": "2019-05-21T05:25:18", "url": "https://files.pythonhosted.org/packages/d3/fe/a9db8f7629e37664c915e4f58a8bf10a977cf3d2d00d7cc57468628cb95d/flake8_typing_imports-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c95d355ad98aadd83864c123bffd0dc", "sha256": "8978da94e8bfed1bffcda1b2b8a717f7d149379dd6363267a0c3417787692c05" }, "downloads": -1, "filename": "flake8_typing_imports-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7c95d355ad98aadd83864c123bffd0dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5235, "upload_time": "2019-05-21T05:25:19", "url": "https://files.pythonhosted.org/packages/7d/87/c3e0a419af19ff26e0351d49aed66af2bfce32d46540f646632656009d96/flake8_typing_imports-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "499610f578a727ee4979f97e02dab454", "sha256": "41b441d777d6e65c31d782406187406c67cc3d481471b77deef8f406011a3ece" }, "downloads": -1, "filename": "flake8_typing_imports-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "499610f578a727ee4979f97e02dab454", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5856, "upload_time": "2019-08-18T02:40:54", "url": "https://files.pythonhosted.org/packages/a0/25/4a5b721711162e9daca86af5dd3b7d9612d6c65b61e0e3097234f4e5ad62/flake8_typing_imports-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67fbc020d91360d06e99478eae99059a", "sha256": "326403d406ce8e97dd67ff42527fb181766fd3e711557010e07ac5b38d8b844a" }, "downloads": -1, "filename": "flake8_typing_imports-1.2.0.tar.gz", "has_sig": false, "md5_digest": "67fbc020d91360d06e99478eae99059a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6385, "upload_time": "2019-08-18T02:40:57", "url": "https://files.pythonhosted.org/packages/34/d2/69a6355f33874b61eb3e37a5bcbf2eeb462b01040c77a60b460f301110cc/flake8_typing_imports-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "2559a224010f348b0ee10d378f372373", "sha256": "57386a9f42a43c1c7ad2d50eb43c39cf58bf9ab00e008ebfaddd0a5b8148f93e" }, "downloads": -1, "filename": "flake8_typing_imports-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2559a224010f348b0ee10d378f372373", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6144, "upload_time": "2019-08-18T21:50:37", "url": "https://files.pythonhosted.org/packages/bb/e2/0e4aedf7b6598107dbcd9be8985447afd997903d3ff9566dd58c4b5a7f3f/flake8_typing_imports-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7e46abbe9ef6fe9b8a19db100e5dc98", "sha256": "bc43023817cb51fea71efa43de42e6ac7e3231bf795a01d1716d91e7f595fef7" }, "downloads": -1, "filename": "flake8_typing_imports-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a7e46abbe9ef6fe9b8a19db100e5dc98", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5589, "upload_time": "2019-08-18T21:50:39", "url": "https://files.pythonhosted.org/packages/ed/07/32182496ad53f70703b1423d32ab7eb5dc72e51c5003578c9864d7a3fc26/flake8_typing_imports-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "508970be8b2ebd10485d6a93c037dedb", "sha256": "e54210c0c1c666b831f8aa22da9eee1ef36f38f6d8f89d4dee79cbbc65d8c024" }, "downloads": -1, "filename": "flake8_typing_imports-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "508970be8b2ebd10485d6a93c037dedb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6211, "upload_time": "2019-10-17T23:14:40", "url": "https://files.pythonhosted.org/packages/c7/da/6c886ce555766c9e5bb41fea5240692ed715843c14f8a5d0567673fe77a9/flake8_typing_imports-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63c367a0eb6223ca9093efebed19619f", "sha256": "7cc64a01dfea2c311a523441d362833cfd7003a9fcd21e6a21f5246ac130a416" }, "downloads": -1, "filename": "flake8_typing_imports-1.4.0.tar.gz", "has_sig": false, "md5_digest": "63c367a0eb6223ca9093efebed19619f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5869, "upload_time": "2019-10-17T23:14:41", "url": "https://files.pythonhosted.org/packages/b8/b2/e7b8c66cefd0639bfea20a0f0f874111f0e87e8c0bff23c6b7df7ea08bd1/flake8_typing_imports-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "508970be8b2ebd10485d6a93c037dedb", "sha256": "e54210c0c1c666b831f8aa22da9eee1ef36f38f6d8f89d4dee79cbbc65d8c024" }, "downloads": -1, "filename": "flake8_typing_imports-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "508970be8b2ebd10485d6a93c037dedb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6211, "upload_time": "2019-10-17T23:14:40", "url": "https://files.pythonhosted.org/packages/c7/da/6c886ce555766c9e5bb41fea5240692ed715843c14f8a5d0567673fe77a9/flake8_typing_imports-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63c367a0eb6223ca9093efebed19619f", "sha256": "7cc64a01dfea2c311a523441d362833cfd7003a9fcd21e6a21f5246ac130a416" }, "downloads": -1, "filename": "flake8_typing_imports-1.4.0.tar.gz", "has_sig": false, "md5_digest": "63c367a0eb6223ca9093efebed19619f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5869, "upload_time": "2019-10-17T23:14:41", "url": "https://files.pythonhosted.org/packages/b8/b2/e7b8c66cefd0639bfea20a0f0f874111f0e87e8c0bff23c6b7df7ea08bd1/flake8_typing_imports-1.4.0.tar.gz" } ] }