{ "info": { "author": "Afonasev Evgeniy", "author_email": "ea.afonasev@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# flake8-plugin-utils\n\n[![pypi](https://badge.fury.io/py/flake8-plugin-utils.svg)](https://pypi.org/project/flake8-plugin-utils)\n[![Python: 3.6+](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://pypi.org/project/flake8-plugin-utils)\n[![Downloads](https://img.shields.io/pypi/dm/flake8-plugin-utils.svg)](https://pypistats.org/packages/flake8-plugin-utils)\n[![Build Status](https://travis-ci.org/Afonasev/flake8-plugin-utils.svg?branch=master)](https://travis-ci.org/Afonasev/flake8-plugin-utils)\n[![Code coverage](https://codecov.io/gh/afonasev/flake8-plugin-utils/branch/master/graph/badge.svg)](https://codecov.io/gh/afonasev/flake8-plugin-utils)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://en.wikipedia.org/wiki/MIT_License)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\nThe package provides base classes and utils for flake8 plugin writing.\n\n## Installation\n\n```bash\npip install flake8-plugin-utils\n```\n\n## Example\n\nWrite simple plugin\n\n```python\nfrom flake8_plugin_utils import Error, Visitor, Plugin\n\nclass MyError(Error):\n code = 'X100'\n message = 'my error'\n\nclass MyVisitor(Visitor):\n def visit_ClassDef(self, node):\n self.error_from_node(MyError, node)\n\nclass MyPlugin(Plugin):\n name = 'MyPlugin'\n version = '0.1.0'\n visitors = [MyVisitor]\n```\n\nand test it with pytest\n\n```python\nfrom flake8_plugin_utils import assert_error, assert_not_error\n\ndef test_code_with_error():\n assert_error(MyVisitor, 'class Y: pass', MyError)\n\ndef test_code_without_error():\n assert_not_error(MyVisitor, 'x = 1')\n```\n\n### Formatting\n\nYour `Error`s can take formatting arguments in their `message`:\n\n```python\nfrom flake8_plugin_utils import Error, Visitor, assert_error\n\nclass MyFormattedError(Error):\n code = 'X101'\n message = 'my error with {thing}'\n\nclass MyFormattedVisitor(Visitor):\n def visit_ClassDef(self, node):\n self.error_from_node(MyFormattedError, node, thing=node.name)\n\ndef test_code_with_error():\n assert_error(\n MyFormattedVisitor,\n 'class Y: pass',\n MyFormattedError,\n thing='Y',\n )\n```\n\n## License\n\nMIT\n\n## Change Log\n\nUnreleased\n-----\n\n* ...\n\n1.0.0 - 2019-05-23\n-----\n\n* add message formatting to Error\n\n0.2.1 - 2019-04-01\n-----\n\n* don`t strip before src dedent in _error_from_src\n* add is_none, is_true, is_false util functions\n\n0.2.0 - 2019.02.21\n-----\n\n* add assert methods\n\n0.1.0 - 2019.02.09\n-----\n\n* initial\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/flake8-plugin-utils", "keywords": "flake8,plugin,utils", "license": "MIT", "maintainer": "Afonasev Evgeniy", "maintainer_email": "ea.afonasev@gmail.com", "name": "flake8-plugin-utils", "package_url": "https://pypi.org/project/flake8-plugin-utils/", "platform": "", "project_url": "https://pypi.org/project/flake8-plugin-utils/", "project_urls": { "Homepage": "https://pypi.org/project/flake8-plugin-utils", "Repository": "https://github.com/afonasev/flake8-plugin-utils" }, "release_url": "https://pypi.org/project/flake8-plugin-utils/1.0.0/", "requires_dist": null, "requires_python": ">=3.6,<4.0", "summary": "The package provides base classes and utils for flake8 plugin writing", "version": "1.0.0" }, "last_serial": 5307141, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0eee185ede4dd883715a1079cf9d3841", "sha256": "5b9bb83903b6e6b3344f400e12fc7f2a61498164dce8301ac19a42475b640eb1" }, "downloads": -1, "filename": "flake8_plugin_utils-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0eee185ede4dd883715a1079cf9d3841", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5608, "upload_time": "2019-02-09T07:24:10", "url": "https://files.pythonhosted.org/packages/72/d4/f88e34233fe0ea8abff892034523a6b8ecfea7c5aab80390d376b07d7350/flake8_plugin_utils-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a11c77174857618b8ba18d810a3222a", "sha256": "4e6716c8c773e0803c41776d4eff1ef7653051a8aacbf8c7accd6969951ab7d0" }, "downloads": -1, "filename": "flake8-plugin-utils-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8a11c77174857618b8ba18d810a3222a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3672, "upload_time": "2019-02-09T07:24:08", "url": "https://files.pythonhosted.org/packages/a4/3a/e420ca89fbabb3f0f70e015317b928091cb1ef768c325e1074d30d539d7a/flake8-plugin-utils-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "fee9af7132ecd52ddf11e24c0e0a28f4", "sha256": "432dfd1c69ad74a08f6863cb106addd51642c20b3b00bfeb9b7e8fa0680f4cf3" }, "downloads": -1, "filename": "flake8_plugin_utils-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fee9af7132ecd52ddf11e24c0e0a28f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6440, "upload_time": "2019-02-21T12:31:07", "url": "https://files.pythonhosted.org/packages/ae/ad/a4af3cf726bd9360aed5a980b892ba42a5602eb59c9e921c97fc36c42fc7/flake8_plugin_utils-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5bb290edeea2ca3632f28f493d009d5", "sha256": "f8f07f2b2b941122f34090679bcfa0919cf89eabad2140d1d8e390b549197b51" }, "downloads": -1, "filename": "flake8-plugin-utils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f5bb290edeea2ca3632f28f493d009d5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3743, "upload_time": "2019-02-21T12:31:06", "url": "https://files.pythonhosted.org/packages/6e/74/fe203701f4c27a0bb35ad6b7948213eb70b964c3cb697058b9bedf31b2d9/flake8-plugin-utils-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "944565e72c027542315432c6d75b83dc", "sha256": "a46e95fcb745b72fa7e7528f76a38045af569da1609d2fcf90c0970735dab624" }, "downloads": -1, "filename": "flake8_plugin_utils-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "944565e72c027542315432c6d75b83dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6981, "upload_time": "2019-04-01T18:18:22", "url": "https://files.pythonhosted.org/packages/2a/11/3f9cd5150bc28a49991880259119946dc2ceb0c7f5908fe5fd41571fc4da/flake8_plugin_utils-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a084831e83d40b58bcc27912b526f5c8", "sha256": "e6f830555436f7ed34ec8fd6c1d3f2a0cc5765ca53d25e242a14b330655b68c8" }, "downloads": -1, "filename": "flake8-plugin-utils-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a084831e83d40b58bcc27912b526f5c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3847, "upload_time": "2019-04-01T18:18:21", "url": "https://files.pythonhosted.org/packages/66/b1/932e19e561f0b94ff4ee1a5c6b94ae5cdaa672d82ce03b11e8e7202b41da/flake8-plugin-utils-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d38e9e0d27802723a3dd9f9b6ab09096", "sha256": "24b4a3b216ad588951d3d7adef4645dcb3b32a33b878e03baa790b5a66bf3a73" }, "downloads": -1, "filename": "flake8_plugin_utils-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d38e9e0d27802723a3dd9f9b6ab09096", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7422, "upload_time": "2019-05-23T11:22:28", "url": "https://files.pythonhosted.org/packages/f3/d5/709acf069f2c11551d4c39e1408f90500ba5c1e7f0333cd86a1e0ff3a24a/flake8_plugin_utils-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6846f6f956cd2cc6cd03c041adb3a0ad", "sha256": "1ac5eb19773d5c7fdde60b0d901ae86be9c751bf697c61fdb6609b86872f3c6e" }, "downloads": -1, "filename": "flake8-plugin-utils-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6846f6f956cd2cc6cd03c041adb3a0ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4193, "upload_time": "2019-05-23T11:22:27", "url": "https://files.pythonhosted.org/packages/46/77/0f54088ab0dd5a46cae012079f8a6dae31c2c59c0060b62be497919c7523/flake8-plugin-utils-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d38e9e0d27802723a3dd9f9b6ab09096", "sha256": "24b4a3b216ad588951d3d7adef4645dcb3b32a33b878e03baa790b5a66bf3a73" }, "downloads": -1, "filename": "flake8_plugin_utils-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d38e9e0d27802723a3dd9f9b6ab09096", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7422, "upload_time": "2019-05-23T11:22:28", "url": "https://files.pythonhosted.org/packages/f3/d5/709acf069f2c11551d4c39e1408f90500ba5c1e7f0333cd86a1e0ff3a24a/flake8_plugin_utils-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6846f6f956cd2cc6cd03c041adb3a0ad", "sha256": "1ac5eb19773d5c7fdde60b0d901ae86be9c751bf697c61fdb6609b86872f3c6e" }, "downloads": -1, "filename": "flake8-plugin-utils-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6846f6f956cd2cc6cd03c041adb3a0ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4193, "upload_time": "2019-05-23T11:22:27", "url": "https://files.pythonhosted.org/packages/46/77/0f54088ab0dd5a46cae012079f8a6dae31c2c59c0060b62be497919c7523/flake8-plugin-utils-1.0.0.tar.gz" } ] }