{ "info": { "author": "\u0141ukasz Langa", "author_email": "lukasz@langa.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Framework :: Flake8", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance" ], "description": "==========\nflake8-pyi\n==========\n\nA plugin for Flake8 that provides specializations for\n`type hinting stub files `_,\nespecially interesting for linting\n`typeshed `_.\n\n\nFunctionality\n-------------\n\n1. Adds the ``.pyi`` extension to the default value of the ``--filename``\n command-line argument to Flake8. This means stubs are linted by default with\n this plugin enabled, without needing to explicitly list every file.\n\n2. Modifies PyFlakes runs for ``.pyi`` files to defer checking type annotation\n expressions after the entire file has been read. This enables support for\n first-class forward references that stub files use.\n\nThe latter should ideally be merged into ``flake8`` as the integration is\ncurrently pretty brittle (might break with future versions of ``pyflakes``,\n``flake8``, or due to interactions with other overly clever plugins).\n\n\nList of warnings\n----------------\n\nThis plugin reserves codes starting with **Y0**. The following warnings are\ncurrently emitted:\n\n* Y001: Names of TypeVars in stubs should start with `_`. This makes sure you\n don't accidentally expose names internal to the stub.\n* Y002: If test must be a simple comparison against `sys.platform` or\n `sys.version_info`. Stub files support simple conditionals to indicate\n differences between Python versions or platforms, but type checkers only\n understand a limited subset of Python syntax, and this warning triggers on\n conditionals that type checkers will probably not understand.\n* Y003: Unrecognized `sys.version_info` check. Similar, but triggers on some\n comparisons involving version checks.\n* Y004: Version comparison must use only major and minor version. Type checkers\n like mypy don't know about patch versions of Python (e.g. 3.4.3 versus 3.4.4),\n only major and minor versions (3.3 versus 3.4). Therefore, version checks in\n stubs should only use the major and minor versions. If new functionality was\n introduced in a patch version, pretend that it was there all along.\n* Y005: Version comparison must be against a length-n tuple.\n* Y006: Use only < and >= for version comparisons. Comparisons involving > and\n <= may produce unintuitive results when tools do use the full sys.version_info\n tuple.\n* Y007: Unrecognized `sys.platform` check. Platform checks should be simple\n string comparisons.\n* Y008: Unrecognized platform. To prevent you from typos, we warn if you use a\n platform name outside a small set of known platforms (e.g. \"linux\" and\n \"win32\").\n* Y009: Empty body should contain \"...\", not \"pass\". This is just a stylistic\n choice, but it's the one typeshed made.\n* Y010: Function body must contain only \"...\". Stub files should not contain\n code, so function bodies should be empty. Currently, we make exceptions for\n raise statements and for assignments in `__init__` methods.\n* Y011: All default values for typed function arguments must be \"...\". Type\n checkers ignore the default value, so the default value is not useful\n information in a stub file.\n* Y012: Class body must not contain \"pass\".\n* Y013: Non-empty class body must not contain \"...\".\n* Y014: All default values for arguments must be \"...\". A stronger version\n of Y011 that includes arguments without type annotations.\n\nThe following warnings are disabled by default:\n\n* Y090: Use explicit attributes instead of assignments in `__init__`. This\n is a stricter version of Y010. Instead of::\n\n class Thing:\n def __init__(self, x: str) -> None:\n self.x = x\n\n you should write::\n\n class Thing:\n x: str\n def __init__(self, x: str) -> None: ...\n\n\nLicense\n-------\n\nMIT\n\n\nTests\n-----\n\nJust run::\n\n python3.6 setup.py test\n\nOr if you prefer::\n\n tox\n\nNote: tests require 3.6+ due to testing variable annotations.\n\n\nChange Log\n----------\n\n19.3.0\n~~~~~~\n\n* update pyflakes dependency\n\n19.2.0\n~~~~~~~\n\n* support Python 3.7\n* add a check for non-ellipsis, non-typed arguments\n* add checks for checking empty classes\n* use --stdin-display-name as the filename when reading from stdin\n\n18.3.1\n~~~~~~\n\n* introduce Y011\n\n18.3.0\n~~~~~~\n\n* (release herp derp, don't use)\n\n17.3.0\n~~~~~~\n\n* introduce Y001 - Y010\n* introduce optional Y090\n\n17.1.0\n~~~~~~\n\n* handle ``del`` statements in stub files\n\n16.12.2\n~~~~~~~\n\n* handle annotated assignments in 3.6+ with forward reference support\n\n16.12.1\n~~~~~~~\n\n* handle forward references during subclassing on module level\n\n* handle forward references during type aliasing assignments on module level\n\n16.12.0\n~~~~~~~\n\n* first published version\n\n* date-versioned\n\n\nAuthors\n-------\n\nGlued together by `\u0141ukasz Langa `_ and\n`Jelle Zijlstra `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ambv/flake8-pyi", "keywords": "flake8 pyi bugs pyflakes pylint linter qa", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flake8-pyi", "package_url": "https://pypi.org/project/flake8-pyi/", "platform": "", "project_url": "https://pypi.org/project/flake8-pyi/", "project_urls": { "Homepage": "https://github.com/ambv/flake8-pyi" }, "release_url": "https://pypi.org/project/flake8-pyi/19.3.0/", "requires_dist": [ "flake8 (>=3.2.1)", "pyflakes (>=2.1.1)", "attrs" ], "requires_python": ">=3.6", "summary": "A plugin for flake8 to enable linting .pyi files.", "version": "19.3.0" }, "last_serial": 4882148, "releases": { "16.12.0": [ { "comment_text": "", "digests": { "md5": "54683a0c34dc10fd95154e104cae5dc7", "sha256": "b137d4ec79f58f7f02c3b4a26285ae386490f27e6a69b06074dcf0eb02ea7d7c" }, "downloads": -1, "filename": "flake8_pyi-16.12.0-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "54683a0c34dc10fd95154e104cae5dc7", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5124, "upload_time": "2016-12-21T08:31:04", "url": "https://files.pythonhosted.org/packages/c5/fe/7efccefdc8fcbfed9199af7d82864c784848fc2ee25071d50b1b7f11df2e/flake8_pyi-16.12.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "981b5d6c6de3fe9fb8a2a20a0ed6124d", "sha256": "ff43a6e4263640cffe97d36f9fa39361b2a99ba4086fd6f20392b147c078ab33" }, "downloads": -1, "filename": "flake8-pyi-16.12.0.tar.gz", "has_sig": false, "md5_digest": "981b5d6c6de3fe9fb8a2a20a0ed6124d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3974, "upload_time": "2016-12-21T08:30:45", "url": "https://files.pythonhosted.org/packages/e9/ad/5da9c7b104254cf04d7fe87d4baf356e634d52d540ae2c56802be5be276d/flake8-pyi-16.12.0.tar.gz" } ], "16.12.1": [ { "comment_text": "", "digests": { "md5": "f32db4ebd95afe5d2a71583579633b3d", "sha256": "2729340bf94d8544dcfb82f7660fab2e931c33223f243da978e58058756dcbc2" }, "downloads": -1, "filename": "flake8_pyi-16.12.1-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "f32db4ebd95afe5d2a71583579633b3d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5799, "upload_time": "2016-12-22T01:19:15", "url": "https://files.pythonhosted.org/packages/f4/69/2f5633ca128426fc64da6fde612c36b4b1ec988ed7167dc7f4193a9cfcd4/flake8_pyi-16.12.1-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "429150074b709fdc85271078ab65ad05", "sha256": "20f34181b2dcdce52bb4aaef57f063754d6120d82f53431b7a92c6d69fb04bb6" }, "downloads": -1, "filename": "flake8-pyi-16.12.1.tar.gz", "has_sig": false, "md5_digest": "429150074b709fdc85271078ab65ad05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4713, "upload_time": "2016-12-22T01:18:47", "url": "https://files.pythonhosted.org/packages/87/c4/1149f05ce4202c5c1a76c2495db2fef7042b1f2e383659f5f879c23f3960/flake8-pyi-16.12.1.tar.gz" } ], "16.12.2": [ { "comment_text": "", "digests": { "md5": "cf8e1ed96daebb27408bdb0c341564fd", "sha256": "02205888236affd3378f009a3f46bd6e46792255d4346b7cf1f948515dd23815" }, "downloads": -1, "filename": "flake8_pyi-16.12.2-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "cf8e1ed96daebb27408bdb0c341564fd", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6152, "upload_time": "2016-12-22T20:06:17", "url": "https://files.pythonhosted.org/packages/ff/a3/66e8e1b231145bf378b5fd15f77e72605dad5de82f18b155d536b840e9f1/flake8_pyi-16.12.2-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "504ef2483ff651c11e6b5d26dd0d611a", "sha256": "d05a76a06e9e9be059c0bf18e0d3bc9afc96aa5b5bd6a6b587ccd4d654280854" }, "downloads": -1, "filename": "flake8_pyi-16.12.2-py3.6.egg", "has_sig": false, "md5_digest": "504ef2483ff651c11e6b5d26dd0d611a", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 6881, "upload_time": "2016-12-22T20:04:32", "url": "https://files.pythonhosted.org/packages/21/41/dcba583ba1fcdb3c6b4147bc46002747134cd448f960abde4310a4187f73/flake8_pyi-16.12.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "4fb30edc03a4fbc5d239db1e0e962713", "sha256": "4659f3747f491b3d02dfe13a717d3f3fa3b2dd87a8266dad3ad6bc86f36423d8" }, "downloads": -1, "filename": "flake8-pyi-16.12.2.tar.gz", "has_sig": false, "md5_digest": "4fb30edc03a4fbc5d239db1e0e962713", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5082, "upload_time": "2016-12-22T20:04:24", "url": "https://files.pythonhosted.org/packages/0f/ab/6fd8bb53c91f956f4778ab7cc2aa438c4d5b4334551add30e762875d1d24/flake8-pyi-16.12.2.tar.gz" } ], "17.1.0": [ { "comment_text": "", "digests": { "md5": "bfd7a215b298bc7d31784ef6e87a30bc", "sha256": "66c57fba7677e838d2cd46519a73a12192eb01d4b6c1574400ed69bd9423b4d8" }, "downloads": -1, "filename": "flake8_pyi-17.1.0-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "bfd7a215b298bc7d31784ef6e87a30bc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6238, "upload_time": "2017-01-18T18:47:14", "url": "https://files.pythonhosted.org/packages/f1/7a/7c64cf7b19f4a8730fa067549e852cf48f0b031f12ee6afbc015ff87af52/flake8_pyi-17.1.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9c7da04876c9ebba0b0ac229b01c94f", "sha256": "3eee899cc98149e896adf90a5f4debf70287ffee66823c014aafcc4d2d208c9b" }, "downloads": -1, "filename": "flake8-pyi-17.1.0.tar.gz", "has_sig": false, "md5_digest": "f9c7da04876c9ebba0b0ac229b01c94f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5559, "upload_time": "2017-01-18T18:46:08", "url": "https://files.pythonhosted.org/packages/7b/d9/2780399299f4ef2a86bad80c8ad5fff14b7d2262cefe4cf872374fd51dd7/flake8-pyi-17.1.0.tar.gz" } ], "17.3.0": [ { "comment_text": "", "digests": { "md5": "5441b33923a84c0e8315c17c0b6c75b6", "sha256": "4ab193a8855f7589ded5dffd934c61e5d31a1a9e47a508ab40cf9650584a40e8" }, "downloads": -1, "filename": "flake8_pyi-17.3.0-py35.py36-none-any.whl", "has_sig": true, "md5_digest": "5441b33923a84c0e8315c17c0b6c75b6", "packagetype": "bdist_wheel", "python_version": "py35.py36", "requires_python": null, "size": 10536, "upload_time": "2017-03-27T05:13:35", "url": "https://files.pythonhosted.org/packages/f9/18/c3e8e3c2c203370084e75d0d378aacac16f9b65b5ee9cb171af0d24fb915/flake8_pyi-17.3.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c129b4c61fd527adb085e0b083c44e9c", "sha256": "cf00cb3168711c61f7cbaddd9ec03e4f51a9bf206edcb5cb4e45bb0105237890" }, "downloads": -1, "filename": "flake8-pyi-17.3.0.tar.gz", "has_sig": true, "md5_digest": "c129b4c61fd527adb085e0b083c44e9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10012, "upload_time": "2017-03-27T05:13:36", "url": "https://files.pythonhosted.org/packages/6e/a6/fef6c08c62c90438a92b2ec64669d72d19f55414518c12f6b5936c011cd7/flake8-pyi-17.3.0.tar.gz" } ], "18.3.0": [ { "comment_text": "", "digests": { "md5": "c8ca64d360f2e146a68804f9eb2a6bc4", "sha256": "e557017c1e31164ea453a7ef0579e88f0f4d0c65f170f6a94b30eff8b7f4dc77" }, "downloads": -1, "filename": "flake8_pyi-18.3.0-py35.py36-none-any.whl", "has_sig": true, "md5_digest": "c8ca64d360f2e146a68804f9eb2a6bc4", "packagetype": "bdist_wheel", "python_version": "py35.py36", "requires_python": null, "size": 10546, "upload_time": "2018-03-29T03:31:44", "url": "https://files.pythonhosted.org/packages/91/db/db18b710ecbdbda24c12f5d276d991177aac7a8ab067045690e4443cdb46/flake8_pyi-18.3.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1280e296582ec1b1761adc6bda6088e8", "sha256": "9ccace8261652f4d6f4f9523fddfea342c5b93ddf1b3096187c007cf3294d389" }, "downloads": -1, "filename": "flake8-pyi-18.3.0.tar.gz", "has_sig": true, "md5_digest": "1280e296582ec1b1761adc6bda6088e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10083, "upload_time": "2018-03-29T03:31:46", "url": "https://files.pythonhosted.org/packages/d6/3c/87fb2ced3a169fa0d22b59392b9662a5dcf0eb0526ca7bae4c0d8feab4e2/flake8-pyi-18.3.0.tar.gz" } ], "18.3.1": [ { "comment_text": "", "digests": { "md5": "88582b8cc0a5156597a07f2dd47c1bfa", "sha256": "e7c9f257cc609a1123b2171a47b8bbcc8ee16827a675e4e148686b46ccf02959" }, "downloads": -1, "filename": "flake8_pyi-18.3.1-py36-none-any.whl", "has_sig": true, "md5_digest": "88582b8cc0a5156597a07f2dd47c1bfa", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": null, "size": 10905, "upload_time": "2018-03-29T03:36:14", "url": "https://files.pythonhosted.org/packages/7f/ab/fb6d80ffb908482b1862647248af5f3bf5f4627a028aba5ad1e373a71d1e/flake8_pyi-18.3.1-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab9f81d351a2b5687f14de0ec8bc9f5d", "sha256": "3e67e2441118a3b889bcec1a6bce5f0594de2abe1f502ec18201c777bd7d9a54" }, "downloads": -1, "filename": "flake8-pyi-18.3.1.tar.gz", "has_sig": true, "md5_digest": "ab9f81d351a2b5687f14de0ec8bc9f5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10501, "upload_time": "2018-03-29T03:36:17", "url": "https://files.pythonhosted.org/packages/03/22/0fa6fd83033faf8010e9cd40c6fcd50f5b729ec49f0b7eca65b3b0551ef5/flake8-pyi-18.3.1.tar.gz" } ], "19.2.0": [ { "comment_text": "", "digests": { "md5": "6c6874dee061cf9ba1fa5e9445796839", "sha256": "927d55d8d51055aa8b8b9a65055c98857dd7c143b853bdafcb48db9c3f4ab97d" }, "downloads": -1, "filename": "flake8_pyi-19.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c6874dee061cf9ba1fa5e9445796839", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 8372, "upload_time": "2019-02-23T07:32:57", "url": "https://files.pythonhosted.org/packages/ec/a5/50356ae9e115678c6332079f09781894a02bcb55d6d6651f10cb4d104e22/flake8_pyi-19.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b219ccbf2424599477967981b1e13a1c", "sha256": "f2e4af113d0004abc3e8e15a66a1b5fe9103bfce731703b4c3b3c8c7633114ef" }, "downloads": -1, "filename": "flake8-pyi-19.2.0.tar.gz", "has_sig": false, "md5_digest": "b219ccbf2424599477967981b1e13a1c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11278, "upload_time": "2019-02-23T07:32:58", "url": "https://files.pythonhosted.org/packages/d8/3a/d6dd1b4a5daf877d7e1552a47cd13fd90339c0f61853aea70f512cc1ec1c/flake8-pyi-19.2.0.tar.gz" } ], "19.3.0": [ { "comment_text": "", "digests": { "md5": "2103ec9aa6d334f4f2936c70c8f3f60f", "sha256": "a93a47ac78b6d363545885e9254d0eccac8a88c3806ab8af27e30dd8c058654f" }, "downloads": -1, "filename": "flake8_pyi-19.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2103ec9aa6d334f4f2936c70c8f3f60f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 9246, "upload_time": "2019-03-01T03:34:47", "url": "https://files.pythonhosted.org/packages/cb/77/894472548bbf67ff3a4b9d2208b8a7beb58414112ad77b7d96a792a7d7c5/flake8_pyi-19.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33c77932112b1b8d7a938dd7a3114782", "sha256": "3646134dcc5269d3fd017624961de83cc0a0404f620233885ad86faf64265a11" }, "downloads": -1, "filename": "flake8-pyi-19.3.0.tar.gz", "has_sig": false, "md5_digest": "33c77932112b1b8d7a938dd7a3114782", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11417, "upload_time": "2019-03-01T03:34:49", "url": "https://files.pythonhosted.org/packages/65/56/1ec6b7221d9387d35be8ac1366a8b73d621ce270f54b21800d7043270793/flake8-pyi-19.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2103ec9aa6d334f4f2936c70c8f3f60f", "sha256": "a93a47ac78b6d363545885e9254d0eccac8a88c3806ab8af27e30dd8c058654f" }, "downloads": -1, "filename": "flake8_pyi-19.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2103ec9aa6d334f4f2936c70c8f3f60f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 9246, "upload_time": "2019-03-01T03:34:47", "url": "https://files.pythonhosted.org/packages/cb/77/894472548bbf67ff3a4b9d2208b8a7beb58414112ad77b7d96a792a7d7c5/flake8_pyi-19.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33c77932112b1b8d7a938dd7a3114782", "sha256": "3646134dcc5269d3fd017624961de83cc0a0404f620233885ad86faf64265a11" }, "downloads": -1, "filename": "flake8-pyi-19.3.0.tar.gz", "has_sig": false, "md5_digest": "33c77932112b1b8d7a938dd7a3114782", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11417, "upload_time": "2019-03-01T03:34:49", "url": "https://files.pythonhosted.org/packages/65/56/1ec6b7221d9387d35be8ac1366a8b73d621ce270f54b21800d7043270793/flake8-pyi-19.3.0.tar.gz" } ] }