{ "info": { "author": "\u0141ukasz Langa", "author_email": "lukasz@langa.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Framework :: Flake8", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance" ], "description": "==============\nflake8-bugbear\n==============\n\n.. image:: https://travis-ci.org/PyCQA/flake8-bugbear.svg?branch=master\n :target: https://travis-ci.org/PyCQA/flake8-bugbear\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n\nA plugin for Flake8 finding likely bugs and design problems in your\nprogram. Contains warnings that don't belong in pyflakes and\npycodestyle::\n\n bug\u00b7bear (b\u016dg\u2032b\u00e2r\u2032)\n n.\n 1. A cause of fear, anxiety, or irritation: *Overcrowding is often\n a bugbear for train commuters.*\n 2. A difficult or persistent problem: *\"One of the major bugbears of\n traditional AI is the difficulty of programming computers to\n recognize that different but similar objects are instances of the\n same type of thing\" (Jack Copeland).*\n 3. A fearsome imaginary creature, especially one evoked to frighten\n children.\n\nInstallation\n------------\n\nInstall from ``pip`` with:\n\n.. code-block:: sh\n\n pip install flake8-bugbear\n\nIt will then automatically be run as part of ``flake8``; you can check it has\nbeen picked up with:\n\n.. code-block:: sh\n\n $ flake8 --version\n 3.5.0 (assertive: 1.0.1, flake8-bugbear: 18.2.0, flake8-comprehensions: 1.4.1, mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.7.0 on Darwin\n\nList of warnings\n----------------\n\n**B001**: Do not use bare ``except:``, it also catches unexpected events\nlike memory errors, interrupts, system exit, and so on. Prefer ``except\nException:``. If you're sure what you're doing, be explicit and write\n``except BaseException:``. Disable E722 to avoid duplicate warnings.\n\n**B002**: Python does not support the unary prefix increment. Writing\n``++n`` is equivalent to ``+(+(n))``, which equals ``n``. You meant ``n\n+= 1``.\n\n**B003**: Assigning to ``os.environ`` doesn't clear the\nenvironment. Subprocesses are going to see outdated\nvariables, in disagreement with the current process. Use\n``os.environ.clear()`` or the ``env=`` argument to Popen.\n\n**B004**: Using ``hasattr(x, '__call__')`` to test if ``x`` is callable\nis unreliable. If ``x`` implements custom ``__getattr__`` or its\n``__call__`` is itself not callable, you might get misleading\nresults. Use ``callable(x)`` for consistent results.\n\n**B005**: Using ``.strip()`` with multi-character strings is misleading\nthe reader. It looks like stripping a substring. Move your\ncharacter set to a constant if this is deliberate. Use\n``.replace()`` or regular expressions to remove string fragments.\n\n**B006**: Do not use mutable data structures for argument defaults. They\nare created during function definition time. All calls to the function\nreuse this one instance of that data structure, persisting changes\nbetween them.\n\n**B007**: Loop control variable not used within the loop body. If this is\nintended, start the name with an underscore.\n\n**B008**: Do not perform function calls in argument defaults. The call is\nperformed only once at function definition time. All calls to your\nfunction will reuse the result of that definition-time function call. If\nthis is intended, assign the function call to a module-level variable and\nuse that variable as a default value.\n\n**B009**: Do not call ``getattr(x, 'attr')``, instead use normal\nproperty access: ``x.attr``. Missing a default to ``getattr`` will cause\nan ``AttributeError`` to be raised for non-existent properties. There is\nno additional safety in using ``getattr`` if you know the attribute name\nahead of time.\n\n**B010**: Do not call ``setattr(x, 'attr', val)``, instead use normal\nproperty access: ``x.attr = val``. There is no additional safety in\nusing ``setattr`` if you know the attribute name ahead of time.\n\n**B011**: Do not call `assert False` since `python -O` removes these calls.\nInstead callers should `raise AssertionError()`.\n\n\nPython 3 compatibility warnings\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThese have higher risk of false positives but discover regressions that\nare dangerous to slip through when test coverage is not great. Let me\nknow if a popular library is triggering any of the following warnings\nfor valid code.\n\n**B301**: Python 3 does not include ``.iter*`` methods on dictionaries.\nThe default behavior is to return iterables. Simply remove the ``iter``\nprefix from the method. For Python 2 compatibility, also prefer the\nPython 3 equivalent if you expect that the size of the dict to be small\nand bounded. The performance regression on Python 2 will be negligible\nand the code is going to be the clearest. Alternatively, use\n``six.iter*`` or ``future.utils.iter*``.\n\n**B302**: Python 3 does not include ``.view*`` methods on dictionaries.\nThe default behavior is to return viewables. Simply remove the ``view``\nprefix from the method. For Python 2 compatibility, also prefer the\nPython 3 equivalent if you expect that the size of the dict to be small\nand bounded. The performance regression on Python 2 will be negligible\nand the code is going to be the clearest. Alternatively, use\n``six.view*`` or ``future.utils.view*``.\n\n**B303**: The ``__metaclass__`` attribute on a class definition does\nnothing on Python 3. Use ``class MyClass(BaseClass, metaclass=...)``.\nFor Python 2 compatibility, use ``six.add_metaclass``.\n\n**B304**: ``sys.maxint`` is not a thing on Python 3. Use\n``sys.maxsize``.\n\n**B305**: ``.next()`` is not a thing on Python 3. Use the ``next()``\nbuiltin. For Python 2 compatibility, use ``six.next()``.\n\n**B306**: ``BaseException.message`` has been deprecated as of Python 2.6\nand is removed in Python 3. Use ``str(e)`` to access the user-readable\nmessage. Use ``e.args`` to access arguments passed to the exception.\n\n\nOpinionated warnings\n~~~~~~~~~~~~~~~~~~~~\n\nThe following warnings are disabled by default because they are\ncontroversial. They may or may not apply to you, enable them explicitly\nin your configuration if you find them useful. Read below on how to\nenable.\n\n**B901**: Using ``return x`` in a generator function used to be\nsyntactically invalid in Python 2. In Python 3 ``return x`` can be used\nin a generator as a return value in conjunction with ``yield from``.\nUsers coming from Python 2 may expect the old behavior which might lead\nto bugs. Use native ``async def`` coroutines or mark intentional\n``return x`` usage with ``# noqa`` on the same line.\n\n**B902**: Invalid first argument used for method. Use ``self`` for\ninstance methods, and ``cls`` for class methods (which includes ``__new__``\nand ``__init_subclass__``) or instance methods of metaclasses (detected as\nclasses directly inheriting from ``type``).\n\n**B903**: Use ``collections.namedtuple`` (or ``typing.NamedTuple``) for\ndata classes that only set attributes in an ``__init__`` method, and do\nnothing else. If the attributes should be mutable, define the attributes\nin ``__slots__`` to save per-instance memory and to prevent accidentally\ncreating additional attributes on instances.\n\n**B950**: Line too long. This is a pragmatic equivalent of\n``pycodestyle``'s E501: it considers \"max-line-length\" but only triggers\nwhen the value has been exceeded by **more than 10%**. You will no\nlonger be forced to reformat code due to the closing parenthesis being\none character too far to satisfy the linter. At the same time, if you do\nsignificantly violate the line length, you will receive a message that\nstates what the actual limit is. This is inspired by Raymond Hettinger's\n`\"Beyond PEP 8\" talk `_ and\nhighway patrol not stopping you if you drive < 5mph too fast. Disable\nE501 to avoid duplicate warnings.\n\n\nHow to enable opinionated warnings\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo enable these checks, specify a ``--select`` command-line option or\n``select=`` option in your config file. As of Flake8 3.0, this option\nis a whitelist (checks not listed are being implicitly disabled), so you\nhave to explicitly specify all checks you want enabled. For example::\n\n\t[flake8]\n\tmax-line-length = 80\n\tmax-complexity = 12\n\t...\n\tselect = C,E,F,W,B,B901\n\nNote that we're enabling the complexity checks, the PEP8 ``pycodestyle``\nerrors and warnings, the pyflakes fatals and all default Bugbear checks.\nFinally, we're also specifying B901 as a check that we want enabled.\n\nIf you'd like all optional warnings to be enabled for you (future proof\nyour config!), say ``B9`` instead of ``B901``. You will need Flake8 3.2+\nfor this feature.\n\nNote that ``pycodestyle`` also has a bunch of warnings that are disabled\nby default. Those get enabled as soon as there is an ``ignore =`` line\nin your configuration. I think this behavior is surprising so Bugbear's\nopinionated warnings require explicit selection.\n\n\nTests\n-----\n\nJust run::\n\n python setup.py test\n\n\nOMG, this is Python 3 only!\n---------------------------\n\nRelax, you can run ``flake8`` with all popular plugins as a *tool*\nperfectly fine under Python 3.5+ even if you want to analyze Python\u00a02\ncode. This way you'll be able to parse all of the new syntax supported\non Python 3 but also *effectively all* the Python 2 syntax at the same\ntime.\n\nIf you're still invested in Python 2, there might be a small subset of\ndeprecated syntax that you'd have to abandon... but you're already doing\nthat, right? `six `_ or\n`python-future `_ bridge the gaps.\n\nBy making the code exclusively Python 3.5+, I'm able to focus on the\nquality of the checks and re-use all the nice features of the new\nreleases (check out `pathlib `_)\ninstead of wasting cycles on Unicode compatibility, etc.\n\n\nLicense\n-------\n\nMIT\n\n\nChange Log\n----------\n\n19.8.0\n~~~~~~\n\n* Fix .travis.yml syntax + add Python 3.8 + nightly tests\n* Fix `black` formatting + enforce via CI\n* Make B901 not apply to __await__ methods\n\n19.3.0\n~~~~~~\n\n* allow 'mcs' for metaclass classmethod first arg (PyCharm default)\n* Introduce B011\n* Introduce B009 and B010\n* Exclude immutable calls like tuple() and frozenset() from B008\n* For B902, the first argument for metaclass class methods can be\n \"mcs\", matching the name preferred by PyCharm.\n\n18.8.0\n~~~~~~\n\n* black format all .py files\n* Examine kw-only args for mutable defaults\n* Test for Python 3.7\n\n18.2.0\n~~~~~~\n\n* packaging fixes\n\n\n17.12.0\n~~~~~~~\n\n* graduated to Production/Stable in trove classifiers\n\n* introduced B008\n\n17.4.0\n~~~~~~\n\n* bugfix: Also check async functions for B006 + B902\n\n17.3.0\n~~~~~~\n\n* introduced B903 (patch contributed by Martijn Pieters)\n\n* bugfix: B902 now enforces `cls` for instance methods on metaclasses\n and `metacls` for class methods on metaclasses\n\n17.2.0\n~~~~~~\n\n* introduced B902\n\n* bugfix: opinionated warnings no longer invisible in Syntastic\n\n* bugfix: opinionated warnings stay visible when --select on the\n command-line is used with full three-digit error codes\n\n16.12.2\n~~~~~~~\n\n* bugfix: opinionated warnings no longer get enabled when user specifies\n ``ignore =`` in the configuration. Now they require explicit\n selection as documented above also in this case.\n\n16.12.1\n~~~~~~~\n\n* bugfix: B007 no longer crashes on tuple unpacking in for-loops\n\n16.12.0\n~~~~~~~\n\n* introduced B007\n\n* bugfix: remove an extra colon in error formatting that was making Bugbear\n errors invisible in Syntastic\n\n* marked as \"Beta\" in trove classifiers, it's been used in production\n for 8+ months\n\n16.11.1\n~~~~~~~\n\n* introduced B005\n\n* introduced B006\n\n* introduced B950\n\n16.11.0\n~~~~~~~\n\n* bugfix: don't raise false positives in B901 on closures within\n generators\n\n* gracefully fail on Python 2 in setup.py\n\n16.10.0\n~~~~~~~\n\n* introduced B004\n\n* introduced B901, thanks Markus!\n\n* update ``flake8`` constraint to at least 3.0.0\n\n16.9.0\n~~~~~~\n\n* introduced B003\n\n16.7.1\n~~~~~~\n\n* bugfix: don't omit message code in B306's warning\n\n* change dependency on ``pep8`` to dependency on ``pycodestyle``, update\n ``flake8`` constraint to at least 2.6.2\n\n16.7.0\n~~~~~~\n\n* introduced B306\n\n16.6.1\n~~~~~~\n\n* bugfix: don't crash on files with tuple unpacking in class bodies\n\n16.6.0\n~~~~~~\n\n* introduced B002, B301, B302, B303, B304, and B305\n\n16.4.2\n~~~~~~\n\n* packaging herp derp\n\n16.4.1\n~~~~~~\n\n* bugfix: include tests in the source package (to make ``setup.py test``\n work for everyone)\n\n* bugfix: explicitly open README.rst in UTF-8 in setup.py for systems\n with other default encodings\n\n16.4.0\n~~~~~~\n\n* first published version\n\n* date-versioned\n\n\nAuthors\n-------\n\nGlued together by `\u0141ukasz Langa `_. Multiple\nimprovements by `Markus Unterwaditzer `_,\n`Martijn Pieters `_,\n`Cooper Lees `_, and `Ryan May `_.\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/PyCQA/flake8-bugbear", "keywords": "flake8 bugbear bugs pyflakes pylint linter qa", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flake8-bugbear", "package_url": "https://pypi.org/project/flake8-bugbear/", "platform": "", "project_url": "https://pypi.org/project/flake8-bugbear/", "project_urls": { "Homepage": "https://github.com/PyCQA/flake8-bugbear" }, "release_url": "https://pypi.org/project/flake8-bugbear/19.8.0/", "requires_dist": [ "flake8 (>=3.0.0)", "attrs" ], "requires_python": ">=3.5", "summary": "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle.", "version": "19.8.0" }, "last_serial": 5664006, "releases": { "16.10.0": [ { "comment_text": "", "digests": { "md5": "1d2811ab497f03800cebd51ae6d464a2", "sha256": "b98687a43fe1dbfed292af5699eebdb0107342a8add35d950e364214422d3ba2" }, "downloads": -1, "filename": "flake8-bugbear-16.10.0.tar.gz", "has_sig": false, "md5_digest": "1d2811ab497f03800cebd51ae6d464a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9593, "upload_time": "2016-10-03T22:15:28", "url": "https://files.pythonhosted.org/packages/f0/cd/927ab5ee575eac7206e4304e01563a3ce0c3f6332b40541bf21b106474fb/flake8-bugbear-16.10.0.tar.gz" } ], "16.10.1": [ { "comment_text": "", "digests": { "md5": "744a96303eadda46b525ede957e66714", "sha256": "3d75b242981dba4fee4584b5f54e2e3ea1f846f3cfe11dfbaa9ce0b2ad2dfb23" }, "downloads": -1, "filename": "flake8-bugbear-16.10.1.tar.gz", "has_sig": false, "md5_digest": "744a96303eadda46b525ede957e66714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9663, "upload_time": "2016-10-04T20:23:54", "url": "https://files.pythonhosted.org/packages/18/08/b397ae2f961649e625e45905c4ba3abd252fc4f618109c997b30286d7f3b/flake8-bugbear-16.10.1.tar.gz" } ], "16.11.0": [ { "comment_text": "", "digests": { "md5": "aca30a55b1e54259ee678e22999a073f", "sha256": "b161243aa532ec2e2db53e53b618fb9ceab4919543bf4b3c92dc21fb28d22def" }, "downloads": -1, "filename": "flake8-bugbear-16.11.0.tar.gz", "has_sig": false, "md5_digest": "aca30a55b1e54259ee678e22999a073f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9697, "upload_time": "2016-11-08T16:55:12", "url": "https://files.pythonhosted.org/packages/18/48/456c1743e2bd7b7934ced5047b75cf0ccd1c785ac5924b4898b947685b1a/flake8-bugbear-16.11.0.tar.gz" } ], "16.11.1": [ { "comment_text": "", "digests": { "md5": "0a41bc76a301db2d28db9c0d44299970", "sha256": "db9435cb9fa2f7c73fc11c42266a9de3ca0dfea3a81fe539efc1fe56945f9f4d" }, "downloads": -1, "filename": "flake8-bugbear-16.11.1.tar.gz", "has_sig": false, "md5_digest": "0a41bc76a301db2d28db9c0d44299970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11465, "upload_time": "2016-11-27T09:49:21", "url": "https://files.pythonhosted.org/packages/17/fd/d07cb234b4e591e481e21a338f34e9dc8522cc2871de9ae7053d47bb23d0/flake8-bugbear-16.11.1.tar.gz" } ], "16.12.0": [ { "comment_text": "", "digests": { "md5": "000bf0c6793110a76f6f700ae5882d1b", "sha256": "bd2d101c406c56487be240035042a85642991903a3acb666b43996f225be8f46" }, "downloads": -1, "filename": "flake8_bugbear-16.12.0-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "000bf0c6793110a76f6f700ae5882d1b", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14278, "upload_time": "2016-12-13T06:25:04", "url": "https://files.pythonhosted.org/packages/51/4f/7615e8a0372a0b069c3d7e3ef394e568e170941432d50ac67a5720453759/flake8_bugbear-16.12.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4012223781178f84950abeb5e84e1bdc", "sha256": "af0096b22c846396b257daf0df854794cbf3340bcd09f5466a16ce7b506b39a5" }, "downloads": -1, "filename": "flake8-bugbear-16.12.0.tar.gz", "has_sig": false, "md5_digest": "4012223781178f84950abeb5e84e1bdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12259, "upload_time": "2016-12-13T06:24:56", "url": "https://files.pythonhosted.org/packages/9c/47/e391a0d4f75d0656b189b6ac3319976640f72f61862232661e9996e306d7/flake8-bugbear-16.12.0.tar.gz" } ], "16.12.1": [ { "comment_text": "", "digests": { "md5": "96f2f8525430493042a4de27ce2352bc", "sha256": "6e63200df3120a6b94be271d3a3cbb9fa5f18e0ad6b5cb7337644f0aa4c5d0bc" }, "downloads": -1, "filename": "flake8_bugbear-16.12.1-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "96f2f8525430493042a4de27ce2352bc", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14419, "upload_time": "2016-12-13T22:34:41", "url": "https://files.pythonhosted.org/packages/13/0e/3416f374882339801698c39f6514f5a3a0f84e2504f3222ed4e831a5969b/flake8_bugbear-16.12.1-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1c2d9de9c28257873292c88ec9357e2", "sha256": "d6c90cd0e803c62c77ceca168fe1439c775e2f3a7ecfd2ed513be8886f681b1f" }, "downloads": -1, "filename": "flake8-bugbear-16.12.1.tar.gz", "has_sig": false, "md5_digest": "d1c2d9de9c28257873292c88ec9357e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12647, "upload_time": "2016-12-13T22:34:48", "url": "https://files.pythonhosted.org/packages/6e/02/cb74acaaec54233debdfd6b4404bf01b8c6d1e11b48c45d42f8448e5e4c2/flake8-bugbear-16.12.1.tar.gz" } ], "16.12.2": [ { "comment_text": "", "digests": { "md5": "0b06ff9fe526bb6658d231d9bbcf7422", "sha256": "4120e11efbd64e9a0f46cd7d8e7954e85da8e86e2d3099bcbc798e739abf8dcb" }, "downloads": -1, "filename": "flake8_bugbear-16.12.2-py3.5.egg", "has_sig": false, "md5_digest": "0b06ff9fe526bb6658d231d9bbcf7422", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 17140, "upload_time": "2016-12-20T00:16:48", "url": "https://files.pythonhosted.org/packages/77/a4/97d43ec710f92ea25c843f7429278c92cfa72a647dc263bc7ca970f3a568/flake8_bugbear-16.12.2-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "1dbfafa372b9aef1bb506dc25ecf1139", "sha256": "84a5c86421a846c317a54034c371ee18717a741fbba1c1495651681c1f380626" }, "downloads": -1, "filename": "flake8_bugbear-16.12.2-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "1dbfafa372b9aef1bb506dc25ecf1139", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15352, "upload_time": "2016-12-20T00:17:22", "url": "https://files.pythonhosted.org/packages/a0/e0/49ba616c02a7721666989dbb9332de3baac6310ac12fa912410702445003/flake8_bugbear-16.12.2-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "211541203171665d825b7c1b6e622441", "sha256": "d302b15daad307c02bee22b80fcf855785747a88a350c29af121fb33e60d6eb2" }, "downloads": -1, "filename": "flake8-bugbear-16.12.2.tar.gz", "has_sig": false, "md5_digest": "211541203171665d825b7c1b6e622441", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13398, "upload_time": "2016-12-20T00:16:38", "url": "https://files.pythonhosted.org/packages/66/3e/390877ea6623f2623a30207241c9512692158dadc10bc29a1cb66b73858d/flake8-bugbear-16.12.2.tar.gz" } ], "16.4.0": [ { "comment_text": "", "digests": { "md5": "2b759dde842d90452dc6c9f0dee281c4", "sha256": "f2f7bb101875a6964f173691b8e96da29020a6fe3d613b06364b78d906e686bd" }, "downloads": -1, "filename": "flake8-bugbear-16.4.0.tar.gz", "has_sig": false, "md5_digest": "2b759dde842d90452dc6c9f0dee281c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3255, "upload_time": "2016-04-13T01:32:40", "url": "https://files.pythonhosted.org/packages/1d/b0/719f4320ef805241d2c9de72d329630f79235048d6cff97f7447e382f14a/flake8-bugbear-16.4.0.tar.gz" } ], "16.4.2": [ { "comment_text": "", "digests": { "md5": "8c6be08b3ed839ebee1e8b3ccb4cec8b", "sha256": "4b610c9da396368b4672642b92587f2f988ce130000bad52e8fdea0cb6eac22b" }, "downloads": -1, "filename": "flake8-bugbear-16.4.2.tar.gz", "has_sig": false, "md5_digest": "8c6be08b3ed839ebee1e8b3ccb4cec8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4684, "upload_time": "2016-05-06T21:46:13", "url": "https://files.pythonhosted.org/packages/8e/41/17c5081d0c86395c4073433f96da707681ededd1615bb21cbf5bbfc772fb/flake8-bugbear-16.4.2.tar.gz" } ], "16.6.0": [ { "comment_text": "", "digests": { "md5": "8cb7621ba78b92d9c7cfc5c5bbb6b11d", "sha256": "0162463cb45ad462fc640b5cca1cc7c0741b4d2ecc14394f08d223fd654085db" }, "downloads": -1, "filename": "flake8-bugbear-16.6.0.tar.gz", "has_sig": false, "md5_digest": "8cb7621ba78b92d9c7cfc5c5bbb6b11d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6887, "upload_time": "2016-06-08T21:29:33", "url": "https://files.pythonhosted.org/packages/a0/75/cf014f183c7b4ef3c46b092f2accbd12f2ddb92120ca0d51e46c3e840e91/flake8-bugbear-16.6.0.tar.gz" } ], "16.6.1": [ { "comment_text": "", "digests": { "md5": "b3958a3a2d17fa9c99cddda462252cf8", "sha256": "a6bd88fc93f05ebbb8c9a1f4a030ad507f9c34d93fd241684290c1b5b52f074e" }, "downloads": -1, "filename": "flake8-bugbear-16.6.1.tar.gz", "has_sig": false, "md5_digest": "b3958a3a2d17fa9c99cddda462252cf8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7083, "upload_time": "2016-06-09T22:43:22", "url": "https://files.pythonhosted.org/packages/fc/f2/ae9826df3ed1f67cce69318a789dd8286d7d4c39d686d75d33fa75c877ed/flake8-bugbear-16.6.1.tar.gz" } ], "16.7.0": [ { "comment_text": "", "digests": { "md5": "b479eb6c6baef7de88481537f8e31039", "sha256": "7910669f0517b7d08e4af018f06e46292a80d07509488f0f103a99552b091a51" }, "downloads": -1, "filename": "flake8-bugbear-16.7.0.tar.gz", "has_sig": false, "md5_digest": "b479eb6c6baef7de88481537f8e31039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7282, "upload_time": "2016-07-01T22:32:35", "url": "https://files.pythonhosted.org/packages/0a/89/8289e36c4223e55ad0bacad7cc31216d22fd1041f92c594636200423b7e7/flake8-bugbear-16.7.0.tar.gz" } ], "16.7.1": [ { "comment_text": "", "digests": { "md5": "bea5e347553776448757b88cd93a7208", "sha256": "3c1646dad69d8c884a0ea290f22cd805dda0fde1056cf32b2bbf45137bbd5362" }, "downloads": -1, "filename": "flake8-bugbear-16.7.1.tar.gz", "has_sig": false, "md5_digest": "bea5e347553776448757b88cd93a7208", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7453, "upload_time": "2016-07-01T22:48:27", "url": "https://files.pythonhosted.org/packages/16/c1/741f60f541dcc2c54fdddbb5b0aa9f9081821bad347a03e95aff76cece3f/flake8-bugbear-16.7.1.tar.gz" } ], "16.9.0": [ { "comment_text": "", "digests": { "md5": "1cc07e8336855ec64cca97261b249259", "sha256": "4cdc800e312d0ddb9bab5c3876a9038fdc21d5f5d2ff6453eaa85c30d5f25bf0" }, "downloads": -1, "filename": "flake8-bugbear-16.9.0.tar.gz", "has_sig": false, "md5_digest": "1cc07e8336855ec64cca97261b249259", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7838, "upload_time": "2016-09-01T01:20:32", "url": "https://files.pythonhosted.org/packages/92/9a/209cc38a01ba71cf6e0f971511be10bd9b6866f7dfead4dcc9474bb08a4f/flake8-bugbear-16.9.0.tar.gz" } ], "17.12.0": [ { "comment_text": "", "digests": { "md5": "579bdf3ed88bbfaff4d6a64bc5fbeff5", "sha256": "9ac9952cb5838dc26408460cb9d1fbfefbd19cb5c51bb66c6b6c664158f4cb7c" }, "downloads": -1, "filename": "flake8_bugbear-17.12.0-py35.py36-none-any.whl", "has_sig": true, "md5_digest": "579bdf3ed88bbfaff4d6a64bc5fbeff5", "packagetype": "bdist_wheel", "python_version": "py35.py36", "requires_python": null, "size": 18670, "upload_time": "2017-12-12T17:19:15", "url": "https://files.pythonhosted.org/packages/35/65/74fb4636dc299ba8d6392457123942dc8d081fd17872ea35a43726438a15/flake8_bugbear-17.12.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21af18ecf0f3212fe1019a2bfa005eb6", "sha256": "5cef9246d7f6721b8ccc6eeb78cf26dae303097e31da0f307a60e516a23ecd72" }, "downloads": -1, "filename": "flake8-bugbear-17.12.0.tar.gz", "has_sig": true, "md5_digest": "21af18ecf0f3212fe1019a2bfa005eb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20778, "upload_time": "2017-12-12T17:19:17", "url": "https://files.pythonhosted.org/packages/dd/4f/da9edb9df6667f33ebe009ad9352189916e2bd350622d9f2a79258417d18/flake8-bugbear-17.12.0.tar.gz" } ], "17.2.0": [ { "comment_text": "", "digests": { "md5": "dc91241669f60ca0fe012e0b4b7cc53c", "sha256": "78fc88b85325657266f32594a405c036e49f665b98db710f0ebf4ed54b1b163a" }, "downloads": -1, "filename": "flake8_bugbear-17.2.0-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "dc91241669f60ca0fe012e0b4b7cc53c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 16204, "upload_time": "2017-02-16T02:59:43", "url": "https://files.pythonhosted.org/packages/dc/28/c6caa87194581ee39e093a22420aa64e5833c57769e14f0fff912bbeb152/flake8_bugbear-17.2.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ec1efc830f9043216609efae23a8cd4", "sha256": "67213b9908c405023fb31559659f75826a9f241cf14b9c6d33b4762760361cb7" }, "downloads": -1, "filename": "flake8-bugbear-17.2.0.tar.gz", "has_sig": false, "md5_digest": "8ec1efc830f9043216609efae23a8cd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14587, "upload_time": "2017-02-16T02:59:24", "url": "https://files.pythonhosted.org/packages/3b/3b/f41def44ca78bd934eb3abb78c11cd7d79297bf48f8339875d0c226c68b4/flake8-bugbear-17.2.0.tar.gz" } ], "17.3.0": [ { "comment_text": "", "digests": { "md5": "9854b9cb2143ddf8e66e5b08c9c4678a", "sha256": "2eda82856c18035b4b018044eccc5d5c8efa5a504c2289d3904b582e9e9303a0" }, "downloads": -1, "filename": "flake8_bugbear-17.3.0-py35.py36-none-any.whl", "has_sig": false, "md5_digest": "9854b9cb2143ddf8e66e5b08c9c4678a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 17282, "upload_time": "2017-03-02T02:53:46", "url": "https://files.pythonhosted.org/packages/74/e7/f6cad2cfc92587c13ca87a25865047b67c0055b3cac3e7a77ab8a75fa815/flake8_bugbear-17.3.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "518b6a8ec5afdf6705659705eeed898c", "sha256": "77c9c6abbe4ab22d1c0087ee5a2aa1a541a5525089704edd0e4680538ac431f2" }, "downloads": -1, "filename": "flake8-bugbear-17.3.0.tar.gz", "has_sig": false, "md5_digest": "518b6a8ec5afdf6705659705eeed898c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15682, "upload_time": "2017-03-02T02:53:38", "url": "https://files.pythonhosted.org/packages/e5/22/9ce29d36621309756329aa47a1c603778889784b33ac6284b28091457520/flake8-bugbear-17.3.0.tar.gz" } ], "17.4.0": [ { "comment_text": "", "digests": { "md5": "2c1c9c26bb1b125295af6545c141068c", "sha256": "7490f848130771d83caa63b54080cbb8c04ccd22d647b9daaf87e7bafc3ce9c9" }, "downloads": -1, "filename": "flake8_bugbear-17.4.0-py35.py36-none-any.whl", "has_sig": true, "md5_digest": "2c1c9c26bb1b125295af6545c141068c", "packagetype": "bdist_wheel", "python_version": "py35.py36", "requires_python": null, "size": 17383, "upload_time": "2017-04-14T17:38:24", "url": "https://files.pythonhosted.org/packages/63/3a/cea3fea5c3c51ef4540d08e91c6d2261e1ebdd854b0a2356769624c0701b/flake8_bugbear-17.4.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f543d716ce11914390e8ef4aca932d83", "sha256": "f459d93951b187aee9e584c7fa24684a9b8485f46c53cfbce2b7be7313a6d733" }, "downloads": -1, "filename": "flake8-bugbear-17.4.0.tar.gz", "has_sig": true, "md5_digest": "f543d716ce11914390e8ef4aca932d83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15777, "upload_time": "2017-04-14T17:38:27", "url": "https://files.pythonhosted.org/packages/f2/00/aa7acb3e2d20ffae986d35dad9d4d403cc1e1f68ad1ee5b45034ce2dbc76/flake8-bugbear-17.4.0.tar.gz" } ], "18.2.0": [ { "comment_text": "", "digests": { "md5": "9f7cfe9806b935d11020347839741080", "sha256": "541746f0f3b2f1a8d7278e1d2d218df298996b60b02677708560db7c7e620e3b" }, "downloads": -1, "filename": "flake8_bugbear-18.2.0-py35.py36-none-any.whl", "has_sig": true, "md5_digest": "9f7cfe9806b935d11020347839741080", "packagetype": "bdist_wheel", "python_version": "py35.py36", "requires_python": ">=3.5", "size": 18727, "upload_time": "2018-02-05T13:14:52", "url": "https://files.pythonhosted.org/packages/3d/d0/c7d82ee3d27052116b34d4d1068e342f6a6b3599245b25a595d08426e5ee/flake8_bugbear-18.2.0-py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a9921a73bffb9a76976860fbd34c5e7", "sha256": "5f14a99d458e29cb92be9079c970030e0dd398b2decb179d76d39a5266ea1578" }, "downloads": -1, "filename": "flake8-bugbear-18.2.0.tar.gz", "has_sig": true, "md5_digest": "6a9921a73bffb9a76976860fbd34c5e7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 21550, "upload_time": "2018-02-05T13:14:55", "url": "https://files.pythonhosted.org/packages/dd/57/32d9d54aa1236e300928d04a360983c3dca143be6a5c25800752e5094037/flake8-bugbear-18.2.0.tar.gz" } ], "18.8.0": [ { "comment_text": "", "digests": { "md5": "a54509686753c3e0068bf56e76fadcd3", "sha256": "07b6e769d7f4e168d590f7088eae40f6ddd9fa4952bed31602def65842682c83" }, "downloads": -1, "filename": "flake8_bugbear-18.8.0-py35.py36.py37-none-any.whl", "has_sig": false, "md5_digest": "a54509686753c3e0068bf56e76fadcd3", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": ">=3.5", "size": 13188, "upload_time": "2018-08-13T22:15:54", "url": "https://files.pythonhosted.org/packages/e6/ee/89c141cbbab3fe6dc3776636a41cc4f756e7140142d526c2f99ab8ca2f1c/flake8_bugbear-18.8.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de717e0f8040e1f95d2afde3957444fb", "sha256": "0ccf56975f4db1d69dc1cf3598c99d768ebf95d0cad27d76087954aa399b515a" }, "downloads": -1, "filename": "flake8-bugbear-18.8.0.tar.gz", "has_sig": false, "md5_digest": "de717e0f8040e1f95d2afde3957444fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 21951, "upload_time": "2018-08-13T22:16:05", "url": "https://files.pythonhosted.org/packages/94/9f/cbc86f7776d1148630827235e39d43d714c7a2dd978ffd817dfac3e79e92/flake8-bugbear-18.8.0.tar.gz" } ], "19.3.0": [ { "comment_text": "", "digests": { "md5": "d41446bdf91b6e3248dcdbb20ac3b693", "sha256": "fef9c9826d14ec23187ae1edeb3c6513c4e46bf0e70d86bac38f7d9aabae113d" }, "downloads": -1, "filename": "flake8_bugbear-19.3.0-py35.py36.py37-none-any.whl", "has_sig": false, "md5_digest": "d41446bdf91b6e3248dcdbb20ac3b693", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": ">=3.5", "size": 13790, "upload_time": "2019-03-28T17:10:26", "url": "https://files.pythonhosted.org/packages/90/70/f2a84fd1f8015630a1832f797143860a2f5f3f265aabde97e84bd9015539/flake8_bugbear-19.3.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98b3b558999cd42418823e8fa39b948a", "sha256": "5070774b668be92c4312e5ca82748ddf4ecaa7a24ff062662681bb745c7896eb" }, "downloads": -1, "filename": "flake8-bugbear-19.3.0.tar.gz", "has_sig": false, "md5_digest": "98b3b558999cd42418823e8fa39b948a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22624, "upload_time": "2019-03-28T17:10:40", "url": "https://files.pythonhosted.org/packages/ed/da/2f1385b96dcf5eb909279b21f1a88d255d9a2295285e8daece67a016e98a/flake8-bugbear-19.3.0.tar.gz" } ], "19.8.0": [ { "comment_text": "", "digests": { "md5": "087bce7464ed41c8d52ab4ab7a55d686", "sha256": "ded4d282778969b5ab5530ceba7aa1a9f1b86fa7618fc96a19a1d512331640f8" }, "downloads": -1, "filename": "flake8_bugbear-19.8.0-py35.py36.py37-none-any.whl", "has_sig": false, "md5_digest": "087bce7464ed41c8d52ab4ab7a55d686", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": ">=3.5", "size": 14012, "upload_time": "2019-08-12T04:20:54", "url": "https://files.pythonhosted.org/packages/9f/f8/170861859fb8ae97923b4fc28501dd25209925e25face836562d3e3f5ea2/flake8_bugbear-19.8.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39251f96f2e31155d25a8fe222c2e7e0", "sha256": "d8c466ea79d5020cb20bf9f11cf349026e09517a42264f313d3f6fddb83e0571" }, "downloads": -1, "filename": "flake8-bugbear-19.8.0.tar.gz", "has_sig": false, "md5_digest": "39251f96f2e31155d25a8fe222c2e7e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22948, "upload_time": "2019-08-12T04:21:04", "url": "https://files.pythonhosted.org/packages/a3/5b/360ab3308b5aa448fb0d44c26b07725f5a9d0ecc5b539a733efe711414f3/flake8-bugbear-19.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "087bce7464ed41c8d52ab4ab7a55d686", "sha256": "ded4d282778969b5ab5530ceba7aa1a9f1b86fa7618fc96a19a1d512331640f8" }, "downloads": -1, "filename": "flake8_bugbear-19.8.0-py35.py36.py37-none-any.whl", "has_sig": false, "md5_digest": "087bce7464ed41c8d52ab4ab7a55d686", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": ">=3.5", "size": 14012, "upload_time": "2019-08-12T04:20:54", "url": "https://files.pythonhosted.org/packages/9f/f8/170861859fb8ae97923b4fc28501dd25209925e25face836562d3e3f5ea2/flake8_bugbear-19.8.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39251f96f2e31155d25a8fe222c2e7e0", "sha256": "d8c466ea79d5020cb20bf9f11cf349026e09517a42264f313d3f6fddb83e0571" }, "downloads": -1, "filename": "flake8-bugbear-19.8.0.tar.gz", "has_sig": false, "md5_digest": "39251f96f2e31155d25a8fe222c2e7e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22948, "upload_time": "2019-08-12T04:21:04", "url": "https://files.pythonhosted.org/packages/a3/5b/360ab3308b5aa448fb0d44c26b07725f5a9d0ecc5b539a733efe711414f3/flake8-bugbear-19.8.0.tar.gz" } ] }