Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Update #6

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Initial Update #6

wants to merge 3 commits into from

Conversation

pyup-bot
Copy link

This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch.

Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.

Update mock from 3.0.5 to 3.0.5.

Changelog

3.0.5

-----

- Issue 31855: :func:`unittest.mock.mock_open` results now respects the
argument of read([size]). Patch contributed by Rémi Lapeyre.

3.0.4

-----

- Include the license, readme and changelog in the source distribution.

3.0.3

-----

- Fixed patching of dictionaries, when specifying the target with a
unicode on Python 2.

3.0.2

-----

- Add missing ``funcsigs`` dependency on Python 2.

3.0.1

-----

- Fix packaging issue where ``six`` was missed as a dependency.

3.0.0

-----

- Issue 35226: Recursively check arguments when testing for equality of
:class:`unittest.mock.call` objects and add note that tracking of
parameters used to create ancestors of mocks in ``mock_calls`` is not
possible.

- Issue 31177: Fix bug that prevented using :meth:`reset_mock
<unittest.mock.Mock.reset_mock>` on mock instances with deleted attributes

- Issue 26704: Added test demonstrating double-patching of an instance
method.  Patch by Anthony Sottile.

- Issue 35500: Write expected and actual call parameters on separate lines
in :meth:`unittest.mock.Mock.assert_called_with` assertion errors.
Contributed by Susan Su.

- Issue 35330: When a :class:`Mock` instance was used to wrap an object, if
`side_effect` is used in one of the mocks of it methods, don't call the
original implementation and return the result of using the side effect the
same way that it is done with return_value.

- Issue 30541: Add new function to seal a mock and prevent the
automatically creation of child mocks. Patch by Mario Corchero.

- Issue 35022: :class:`unittest.mock.MagicMock` now supports the
``__fspath__`` method (from :class:`os.PathLike`).

- Issue 33516: :class:`unittest.mock.MagicMock` now supports the
``__round__`` magic method.

- Issue 35512: :func:`unittest.mock.patch.dict` used as a decorator with
string target resolves the target during function call instead of during
decorator construction. Patch by Karthikeyan Singaravelan.

- Issue 36366: Calling ``stop()`` on an unstarted or stopped
:func:`unittest.mock.patch` object will now return `None` instead of
raising :exc:`RuntimeError`, making the method idempotent. Patch
byKarthikeyan Singaravelan.

- Issue 35357: Internal attributes' names of unittest.mock._Call and
unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with
_mock_ in order to prevent clashes with widely used object attributes.
Fixed minor typo in test function name.

- Issue 20239: Allow repeated assignment deletion of
:class:`unittest.mock.Mock` attributes. Patch by Pablo Galindo.

- Issue 35082: Don't return deleted attributes when calling dir on a
:class:`unittest.mock.Mock`.

- Issue 0: Improved an error message when mock assert_has_calls fails.

- Issue 23078: Add support for :func:`classmethod` and :func:`staticmethod`
to :func:`unittest.mock.create_autospec`.  Initial patch by Felipe Ochoa.

- Issue 21478: Calls to a child function created with
:func:`unittest.mock.create_autospec` should propagate to the parent.
Patch by Karthikeyan Singaravelan.

- Issue 36598: Fix ``isinstance`` check for Mock objects with spec when the
code is executed under tracing. Patch by Karthikeyan Singaravelan.

- Issue 32933: :func:`unittest.mock.mock_open` now supports iteration over
the file contents. Patch by Tony Flury.

- Issue 21269: Add ``args`` and ``kwargs`` properties to mock call objects.
Contributed by Kumar Akshay.

- Issue 17185: Set ``__signature__`` on mock for :mod:`inspect` to get
signature. Patch by Karthikeyan Singaravelan.

- Issue 35047: ``unittest.mock`` now includes mock calls in exception
messages if ``assert_not_called``, ``assert_called_once``, or
``assert_called_once_with`` fails. Patch by Petter Strandmark.

- Issue 28380: unittest.mock Mock autospec functions now properly support
assert_called, assert_not_called, and assert_called_once.

- Issue 28735: Fixed the comparison of mock.MagickMock with mock.ANY.

- Issue 20804: The unittest.mock.sentinel attributes now preserve their
identity when they are copied or pickled.

- Issue 28961: Fix unittest.mock._Call helper: don't ignore the name parameter
anymore. Patch written by Jiajun Huang.

- Issue 26750: unittest.mock.create_autospec() now works properly for
subclasses of property() and other data descriptors.

- Issue 21271: New keyword only parameters in reset_mock call.

- Issue 26807: mock_open 'files' no longer error on readline at end of file.
Patch from Yolanda Robla.

- Issue 25195: Fix a regression in mock.MagicMock. _Call is a subclass of
tuple (changeset 3603bae63c13 only works for classes) so we need to
implement __ne__ ourselves.  Patch by Andrew Plummer.

2.0.0

-----------------

- Issue 26323: Add Mock.assert_called() and Mock.assert_called_once()
methods to unittest.mock. Patch written by Amit Saha.

- Issue 22138: Fix mock.patch behavior when patching descriptors. Restore
original values after patching. Patch contributed by Sean McCully.

- Issue 24857: Comparing call_args to a long sequence now correctly returns a
boolean result instead of raising an exception.  Patch by A Kaptur.

- Issue 23004: mock_open() now reads binary data correctly when the type of
read_data is bytes.  Initial patch by Aaron Hill.

- Issue 21750: mock_open.read_data can now be read from each instance, as it
could in Python 3.3.

- Issue 18622: unittest.mock.mock_open().reset_mock would recurse infinitely.
Patch from Nicola Palumbo and Laurent De Buyst.

- Issue 23661: unittest.mock side_effects can now be exceptions again. This
was a regression vs Python 3.4. Patch from Ignacio Rossi

- Issue 23310: Fix MagicMock's initializer to work with __methods__, just
like configure_mock().  Patch by Kasia Jachim.

- Issue 23568: Add rdivmod support to MagicMock() objects.
Patch by Håkan Lövdahl.

- Issue 23581: Add matmul support to MagicMock. Patch by Håkan Lövdahl.

- Issue 23326: Removed __ne__ implementations.  Since fixing default __ne__
implementation in issue 21408 they are redundant. *** NOT BACKPORTED ***

- Issue 21270: We now override tuple methods in mock.call objects so that
they can be used as normal call attributes.

- Issue 21256: Printout of keyword args should be in deterministic order in
a mock function call. This will help to write better doctests.

- Issue 21262: New method assert_not_called for Mock.
It raises AssertionError if the mock has been called.

- Issue 21238: New keyword argument `unsafe` to Mock. It raises
`AttributeError` incase of an attribute startswith assert or assret.

- Issue 21239: patch.stopall() didn't work deterministically when the same
name was patched more than once.

- Issue 21222: Passing name keyword argument to mock.create_autospec now
works.

- Issue 17826: setting an iterable side_effect on a mock function created by
create_autospec now works. Patch by Kushal Das.

- Issue 17826: setting an iterable side_effect on a mock function created by
create_autospec now works. Patch by Kushal Das.

- Issue 20968: unittest.mock.MagicMock now supports division.
Patch by Johannes Baiter.

- Issue 20189: unittest.mock now no longer assumes that any object for
which it could get an inspect.Signature is a callable written in Python.
Fix courtesy of Michael Foord.

- Issue 17467: add readline and readlines support to mock_open in
unittest.mock.

- Issue 17015: When it has a spec, a Mock object now inspects its signature
when matching calls, so that arguments can be matched positionally or
by name.

- Issue 15323: improve failure message of Mock.assert_called_once_with

- Issue 14857: fix regression in references to PEP 3135 implicit __class__
closure variable (Reopens issue 12370)

- Issue 14295: Add unittest.mock
Links

Update flake8 from 3.7.7 to 3.7.7.

Changelog

3.7.7

-------------------

You can view the `3.7.7 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix crahes in plugins causing ``flake8`` to hang while unpickling errors (See
also `GitLab!308`_, `GitLab505`_)


.. all links
.. _3.7.7 milestone:
 https://gitlab.com/pycqa/flake8/milestones/30

.. issue links
.. _GitLab505:
 https://gitlab.com/pycqa/flake8/issues/505

.. merge request links
.. _GitLab!308:
 https://gitlab.com/pycqa/flake8/merge_requests/308

3.7.6

-------------------

You can view the `3.7.6 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix ``--per-file-ignores`` for multi-letter error codes (See also
`GitLab!303`_, `GitLab507`_)

- Improve flake8 speed when only 1 filename is passed (See also `GitLab!305`_)


.. all links
.. _3.7.6 milestone:
 https://gitlab.com/pycqa/flake8/milestones/29

.. issue links
.. _GitLab507:
 https://gitlab.com/pycqa/flake8/issues/507

.. merge request links
.. _GitLab!303:
 https://gitlab.com/pycqa/flake8/merge_requests/303
.. _GitLab!305:
 https://gitlab.com/pycqa/flake8/merge_requests/305

3.7.5

-------------------

You can view the `3.7.5 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix reporting of pyflakes "referenced before assignment" error (See also
`GitLab!301`_, `GitLab503`_)


.. all links
.. _3.7.5 milestone:
 https://gitlab.com/pycqa/flake8/milestones/28

.. issue links
.. _GitLab503:
 https://gitlab.com/pycqa/flake8/issues/503

.. merge request links
.. _GitLab!301:
 https://gitlab.com/pycqa/flake8/merge_requests/301

3.7.4

-------------------

You can view the `3.7.4 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix performance regression with lots of ``per-file-ignores`` and errors
(See also `GitLab!299`_, `GitLab501`_)


.. all links
.. _3.7.4 milestone:
 https://gitlab.com/pycqa/flake8/milestones/27

.. issue links
.. _GitLab501:
 https://gitlab.com/pycqa/flake8/issues/501

.. merge request links
.. _GitLab!299:
 https://gitlab.com/pycqa/flake8/merge_requests/299

3.7.3

-------------------

You can view the `3.7.3 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix imports of ``typing`` in python 3.5.0 / 3.5.1 (See also `GitLab!294`_,
`GitLab498`_)

- Fix ``flake8 --statistics`` (See also `GitLab!295`_, `GitLab499`_)

- Gracefully ignore ``flake8-per-file-ignores`` plugin if installed (See also
`GitLab!297`_, `GitLab495`_)

- Improve error message for malformed ``per-file-ignores`` (See also
`GitLab!298`_, `GitLab489`_)


.. all links
.. _3.7.3 milestone:
 https://gitlab.com/pycqa/flake8/milestones/26

.. issue links
.. _GitLab489:
 https://gitlab.com/pycqa/flake8/issues/489
.. _GitLab495:
 https://gitlab.com/pycqa/flake8/issues/495
.. _GitLab498:
 https://gitlab.com/pycqa/flake8/issues/498
.. _GitLab499:
 https://gitlab.com/pycqa/flake8/issues/499

.. merge request links
.. _GitLab!294:
 https://gitlab.com/pycqa/flake8/merge_requests/294
.. _GitLab!295:
 https://gitlab.com/pycqa/flake8/merge_requests/295
.. _GitLab!297:
 https://gitlab.com/pycqa/flake8/merge_requests/297
.. _GitLab!298:
 https://gitlab.com/pycqa/flake8/merge_requests/298

3.7.2

-------------------

You can view the `3.7.2 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix broken ``flake8 --diff`` (regressed in 3.7.0) (See also `GitLab!292`_,
`GitLab490`_)

- Fix typo in plugin exception reporting (See also `GitLab!275`_,
`GitLab491`_)

- Fix ``AttributeError`` while attempting to use the legacy api (regressed in
3.7.0) (See also `GitLab!293`_, `GitLab497`_)

.. all links
.. _3.7.2 milestone:
 https://gitlab.com/pycqa/flake8/milestones/25

.. issue links
.. _GitLab490:
 https://gitlab.com/pycqa/flake8/issues/490
.. _GitLab491:
 https://gitlab.com/pycqa/flake8/issues/491
.. _GitLab497:
 https://gitlab.com/pycqa/flake8/issues/497

.. merge request links
.. _GitLab!292:
 https://gitlab.com/pycqa/flake8/merge_requests/292
.. _GitLab!275:
 https://gitlab.com/pycqa/flake8/merge_requests/275
.. _GitLab!293:
 https://gitlab.com/pycqa/flake8/merge_requests/293

3.7.1

-------------------

You can view the `3.7.1 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix capitalized filenames in ``per-file-ignores`` setting (See also
`GitLab!290`_, `GitLab488`_)

.. all links
.. _3.7.1 milestone:
 https://gitlab.com/pycqa/flake8/milestones/24

.. issue links
.. _GitLab488:
 https://gitlab.com/pycqa/flake8/issues/488

.. merge request links
.. _GitLab!290:
 https://gitlab.com/pycqa/flake8/merge_requests/290

3.7.0

-------------------

You can view the `3.7.0 milestone`_ on GitLab for more details.

New Dependency Information
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Add dependency on ``entrypoints`` >= 0.3, < 0.4 (See also `GitLab!264`_,
`GitLab!288`_)

- Pyflakes has been updated to >= 2.1.0, < 2.2.0 (See also `GitLab!283`_,
`GitLab!285`_)

- pycodestyle has been updated to >= 2.5.0, < 2.6.0 (See also `GitLab!287`_)

Features
~~~~~~~~

- Add support for ``per-file-ignores`` (See also `GitLab!259`_, `GitLab156`_,
`GitLab!281`_, `GitLab471`_)

- Enable use of ``float`` and ``complex`` option types (See also `GitLab!261`_,
`GitLab452`_)

- Improve startup performance by switching from ``pkg_resources`` to
``entrypoints`` (See also `GitLab!264`_)

- Add metadata for use through the `pre-commit`_ git hooks framework (See also
`GitLab!268`_, `GitLab!284`_)

- Allow physical line checks to return more than one result (See also
`GitLab!269`_)

- Allow `` noqa:X123`` comments without space between the colon and codes
list (See also `GitLab!273`_, `GitLab470`_)

- Remove broken and unused ``flake8.listen`` plugin type (See also
`GitLab!274`_, `GitLab480`_)

.. all links
.. _3.7.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/23
.. _pre-commit:
 https://pre-commit.com/

.. issue links
.. _GitLab156:
 https://gitlab.com/pycqa/flake8/issues/156
.. _GitLab452:
 https://gitlab.com/pycqa/flake8/issues/452
.. _GitLab470:
 https://gitlab.com/pycqa/flake8/issues/470
.. _GitLab471:
 https://gitlab.com/pycqa/flake8/issues/471
.. _GitLab480:
 https://gitlab.com/pycqa/flake8/issues/480

.. merge request links
.. _GitLab!259:
 https://gitlab.com/pycqa/flake8/merge_requests/259
.. _GitLab!261:
 https://gitlab.com/pycqa/flake8/merge_requests/261
.. _GitLab!264:
 https://gitlab.com/pycqa/flake8/merge_requests/264
.. _GitLab!268:
 https://gitlab.com/pycqa/flake8/merge_requests/268
.. _GitLab!269:
 https://gitlab.com/pycqa/flake8/merge_requests/269
.. _GitLab!273:
 https://gitlab.com/pycqa/flake8/merge_requests/273
.. _GitLab!274:
 https://gitlab.com/pycqa/flake8/merge_requests/274
.. _GitLab!281:
 https://gitlab.com/pycqa/flake8/merge_requests/281
.. _GitLab!283:
 https://gitlab.com/pycqa/flake8/merge_requests/283
.. _GitLab!284:
 https://gitlab.com/pycqa/flake8/merge_requests/284
.. _GitLab!285:
 https://gitlab.com/pycqa/flake8/merge_requests/285
.. _GitLab!287:
 https://gitlab.com/pycqa/flake8/merge_requests/287
.. _GitLab!288:
 https://gitlab.com/pycqa/flake8/merge_requests/288

3.6.0

-------------------

You can view the `3.6.0 milestone`_ on GitLab for more details.

New Dependency Information
~~~~~~~~~~~~~~~~~~~~~~~~~~

- pycodestyle has been updated to >= 2.4.0, < 2.5.0 (See also `GitLab381`_,
`GitLab415`_, `GitLab!212`_, `GitLab!230`_, `GitLab!231`_)

- Pyflakes has been updated to >= 2.0.0, < 2.1.0 (See also `GitLab422`_,
`GitLab!239`_)

- flake8 requires python 2.x >= 2.7 or python 3.x >= 3.4 (See also
`GitLab!225`_)

Features
~~~~~~~~

- Add ``paths`` to allow local plugins to exist outside of ``sys.path`` (See
also `GitLab379`_, `GitLab!211`_)

- Copy ``setup.cfg`` files to the temporary git hook execution directory (See
also `GitLab!215`_)

- Only skip a file if `` flake8: noqa`` is on a line by itself (See also
`GitLab453`_, `GitLab!219`_)

- Provide a better user experience for broken plugins (See also `GitLab!221`_)

- Report ``E902`` when a file passed on the command line does not exist (See
also `GitLab405`_, `GitLab!227`_)

- Add ``--extend-ignore`` for extending the default ``ignore`` instead of
overriding it (See also `GitLab365`_, `GitLab!233`_)

Bugs Fixed
~~~~~~~~~~

- Respect a formatter's newline setting when printing (See also `GitLab!222`_)

- Fix leaking of processes in the legacy api (See also `GitLab410`_,
`GitLab!228`_)

- Fix a ``SyntaxWarning`` for an invalid escape sequence (See also
`GitLab!244`_)

- Fix ``DeprecationWarning`` due to import of ``abc`` classes from the
``collections`` module (See also `GitLab!249`_)

- Defer ``setuptools`` import to improve flake8 startup time (See also
`GitLab!250`_)

- Fix inconsistent line endings in ``FileProcessor.lines`` when running under
python 3.x (See also `GitLab457`_, `GitLab!255`_)


.. all links
.. _3.6.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/21

.. issue links
.. _GitLab365:
 https://gitlab.com/pycqa/flake8/issues/365
.. _GitLab379:
 https://gitlab.com/pycqa/flake8/issues/379
.. _GitLab381:
 https://gitlab.com/pycqa/flake8/issues/381
.. _GitLab405:
 https://gitlab.com/pycqa/flake8/issues/405
.. _GitLab410:
 https://gitlab.com/pycqa/flake8/issues/410
.. _GitLab415:
 https://gitlab.com/pycqa/flake8/issues/415
.. _GitLab422:
 https://gitlab.com/pycqa/flake8/issues/422
.. _GitLab453:
 https://gitlab.com/pycqa/flake8/issues/453
.. _GitLab457:
 https://gitlab.com/pycqa/flake8/issues/457

.. merge request links
.. _GitLab!211:
 https://gitlab.com/pycqa/flake8/merge_requests/211
.. _GitLab!212:
 https://gitlab.com/pycqa/flake8/merge_requests/212
.. _GitLab!215:
 https://gitlab.com/pycqa/flake8/merge_requests/215
.. _GitLab!219:
 https://gitlab.com/pycqa/flake8/merge_requests/219
.. _GitLab!221:
 https://gitlab.com/pycqa/flake8/merge_requests/221
.. _GitLab!222:
 https://gitlab.com/pycqa/flake8/merge_requests/222
.. _GitLab!225:
 https://gitlab.com/pycqa/flake8/merge_requests/225
.. _GitLab!227:
 https://gitlab.com/pycqa/flake8/merge_requests/227
.. _GitLab!228:
 https://gitlab.com/pycqa/flake8/merge_requests/228
.. _GitLab!230:
 https://gitlab.com/pycqa/flake8/merge_requests/230
.. _GitLab!231:
 https://gitlab.com/pycqa/flake8/merge_requests/231
.. _GitLab!233:
 https://gitlab.com/pycqa/flake8/merge_requests/233
.. _GitLab!239:
 https://gitlab.com/pycqa/flake8/merge_requests/239
.. _GitLab!244:
 https://gitlab.com/pycqa/flake8/merge_requests/244
.. _GitLab!249:
 https://gitlab.com/pycqa/flake8/merge_requests/249
.. _GitLab!250:
 https://gitlab.com/pycqa/flake8/merge_requests/250
.. _GitLab!255:
 https://gitlab.com/pycqa/flake8/merge_requests/255

3.5.0

-------------------

You can view the `3.5.0 milestone`_ on GitLab for more details.

New Dependency Information
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Allow for PyFlakes 1.6.0 (See also `GitLab359`_)

- Start using new PyCodestyle checks for bare excepts and ambiguous identifier
(See also `GitLab361`_)

Features
~~~~~~~~

- Print out information about configuring VCS hooks (See also `GitLab335`_)

- Allow users to develop plugins "local" to a repository without using
setuptools. See our documentation on local plugins for more information.
(See also `GitLab357`_)

Bugs Fixed
~~~~~~~~~~

- Catch and helpfully report ``UnicodeDecodeError``\ s when parsing
configuration files. (See also `GitLab358`_)


.. all links
.. _3.5.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/20

.. issue links
.. _GitLab335:
 https://gitlab.com/pycqa/flake8/issues/335
.. _GitLab357:
 https://gitlab.com/pycqa/flake8/issues/357
.. _GitLab358:
 https://gitlab.com/pycqa/flake8/issues/358
.. _GitLab359:
 https://gitlab.com/pycqa/flake8/issues/359
.. _GitLab361:
 https://gitlab.com/pycqa/flake8/issues/361

.. merge request links

3.4.1

-------------------

You can view the `3.4.1 milestone`_ on GitLab for more details.

- Fix minor regression when users specify only a ``--select`` list with items
in the enabled/extended select list.  (See also `GitLab354`_)

.. all links
.. _3.4.1 milestone:
 https://gitlab.com/pycqa/flake8/milestones/19

.. issue links
.. _GitLab354:
 https://gitlab.com/pycqa/flake8/issues/354

.. merge request links

3.4.0

-------------------

You can view the `3.4.0 milestone`_ on GitLab for more details.

- Refine logic around ``--select`` and ``--ignore`` when combined with the
default values for each. (See also `GitLab318`_)

- Handle spaces as an alternate separate for error codes, e.g.,
``--ignore 'E123 E234'``. (See also `GitLab329`_)

- Filter out empty select and ignore codes, e.g., ``--ignore E123,,E234``.
(See also `GitLab330`_)

- Specify dependencies appropriately in ``setup.py`` (See also `Gitlab341_`)

- Fix bug in parsing ``--quiet`` and ``--verbose`` from config files.
(See also `GitLab!193`_)

- Remove unused import of ``os`` in the git hook template (See also
`GitLab!194`_)

.. all links
.. _3.4.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/18

.. issue links
.. _GitLab318:
 https://gitlab.com/pycqa/flake8/issues/318
.. _GitLab329:
 https://gitlab.com/pycqa/flake8/issues/329
.. _GitLab330:
 https://gitlab.com/pycqa/flake8/issues/330
.. _GitLab341:
 https://gitlab.com/pycqa/flake8/issues/341

.. merge request links
.. _GitLab!193:
 https://gitlab.com/pycqa/flake8/merge_requests/193
.. _GitLab!194:
 https://gitlab.com/pycqa/flake8/merge_requests/194

3.3.0

-------------------

You can view the `3.3.0 milestone`_ on GitLab for more details.

- Add support for Python 3.6 (via dependencies). **Note** Flake8 does not
guarantee that all plugins will support Python 3.6.

- Added unique error codes for all missing PyFlakes messages. (14 new
codes, see "Error / Violation Codes")

- Dramatically improve the performance of Flake8. (See also `GitLab!156`_)

- Display the local file path instead of the temporary file path when
using the git hook. (See also `GitLab244`_)

- Add methods to Report class that will be called when Flake8 starts and
finishes processing a file. (See also `GitLab251`_)

- Fix problem where hooks should only check \*.py files. (See also
`GitLab268`_)

- Fix handling of SyntaxErrors that do not include physical line information.
(See also `GitLab279`_)

- Update upper bound on PyFlakes to allow for PyFlakes 1.5.0.  (See also
`GitLab290`_)

- Update setuptools integration to less eagerly deduplicate packages.
(See also `GitLab295`_)

- Force ``flake8 --version`` to be repeatable between invocations. (See also
`GitLab297`_)

.. all links
.. _3.3.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/16

.. issue links
.. _GitLab244:
 https://gitlab.com/pycqa/flake8/issues/244
.. _GitLab251:
 https://gitlab.com/pycqa/flake8/issues/251
.. _GitLab268:
 https://gitlab.com/pycqa/flake8/issues/268
.. _GitLab279:
 https://gitlab.com/pycqa/flake8/issues/279
.. _GitLab290:
 https://gitlab.com/pycqa/flake8/issues/290
.. _GitLab295:
 https://gitlab.com/pycqa/flake8/issues/295
.. _GitLab297:
 https://gitlab.com/pycqa/flake8/issues/297

.. merge request links
.. _GitLab!156:
 https://gitlab.com/pycqa/flake8/merge_requests/156

3.2.1

-------------------

You can view the `3.2.1 milestone`_ on GitLab for more details.

- Fix subtle bug when deciding whether to report an on-by-default's violation
(See also `GitLab257`_)

- Fix another bug around SyntaxErrors not being reported at the right column
and row (See also `GitLab259`_ and `GitLab237`_ for a related, previously
fixed bug)

- Fix regression from 2.x where we run checks against explicitly provided
files, even if they don't match the filename patterns. (See also
`GitLab266`_)

.. links
.. _3.2.1 milestone:
 https://gitlab.com/pycqa/flake8/milestones/15
.. _GitLab237:
 https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab257:
 https://gitlab.com/pycqa/flake8/issues/257
.. _GitLab259:
 https://gitlab.com/pycqa/flake8/issues/259
.. _GitLab266:
 https://gitlab.com/pycqa/flake8/issues/266

3.2.0

-------------------

You can view the `3.2.0 milestone`_ on GitLab for more details.

- Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also
`GitLab256`_)

.. links
.. _3.2.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/14
.. _GitLab256:
 https://gitlab.com/pycqa/flake8/issues/256

3.1.1

-------------------

You can view the `3.1.1 milestone`_ on GitLab for more details.

- Do not attempt to install/distribute a ``man`` file with the Python package;
leave this for others to do. (See also `GitLab254`_)

- Fix packaging bug where wheel version constraints specified in setup.cfg did
not match the constraints in setup.py. (See also `GitLab255`_)

.. links
.. _3.1.1 milestone:
 https://gitlab.com/pycqa/flake8/milestones/13
.. _GitLab254:
 https://gitlab.com/pycqa/flake8/issues/254
.. _GitLab255:
 https://gitlab.com/pycqa/flake8/issues/255

3.1.0

-------------------

You can view the `3.1.0 milestone`_ on GitLab for more details.

- Add ``--bug-report`` flag to make issue reporters' lives easier.

- Collect configuration files from the current directory when using our Git
hook. (See also `GitLab210`_, `GitLab218`_, `GitLab223`_)

- Avoid unhandled exceptions when dealing with SyntaxErrors. (See also
`GitLab214`_, `GitLab238`_)

- Exit early if the value for ``--diff`` is empty. (See also `GitLab226`_)

- Handle empty ``--stdin-display-name`` values. (See also `GitLab235`_)

- Properly report the column number of Syntax Errors. We were assuming that
all reports of column numbers were 0-indexed, however, SyntaxErrors report
the column number as 1-indexed. This caused us to report a column number
that was 1 past the actual position. Further, when combined with
SyntaxErrors that occur at a newline, this caused the position to be
visually off by two. (See also `GitLab237`_)

- Fix the behaviour of ``--enable-extensions``. Previously, items specified
here were still ignored due to the fact that the off-by-default extension
codes were being left in the ``ignore`` list. (See also `GitLab239`_)

- Fix problems around ``--select`` and ``--ignore`` behaviour that prevented
codes that were neither explicitly selected nor explicitly ignored from
being reported. (See also `GitLab242`_)

- Truly be quiet when the user specifies ``-q`` one or more times. Previously,
we were showing the if the user specified ``-q`` and ``--show-source``. We
have fixed this bug. (See also `GitLab245`_)

- Add new File Processor attribute, ``previous_unindented_logical_line`` to
accommodate pycodestyle 2.1.0. (See also `GitLab246`_)

- When something goes wrong, exit non-zero. (See also `GitLab248`_,
`GitLab209`_)

- Add ``--tee`` as an option to allow use of ``--output-file`` and printing to
standard out.

- Allow the git plugin to actually be lazy when collecting files.

- Allow for pycodestyle 2.1 series and pyflakes 1.3 series.

.. links
.. _3.1.0 milestone:
 https://gitlab.com/pycqa/flake8/milestones/12
.. _GitLab209:
 https://gitlab.com/pycqa/flake8/issues/209
.. _GitLab210:
 https://gitlab.com/pycqa/flake8/issues/210
.. _GitLab214:
 https://gitlab.com/pycqa/flake8/issues/214
.. _GitLab218:
 https://gitlab.com/pycqa/flake8/issues/218
.. _GitLab223:
 https://gitlab.com/pycqa/flake8/issues/223
.. _GitLab226:
 https://gitlab.com/pycqa/flake8/issues/226
.. _GitLab235:
 https://gitlab.com/pycqa/flake8/issues/235
.. _GitLab237:
 https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab238:
 https://gitlab.com/pycqa/flake8/issues/238
.. _GitLab239:
 https://gitlab.com/pycqa/flake8/issues/239
.. _GitLab242:
 https://gitlab.com/pycqa/flake8/issues/242
.. _GitLab245:
 https://gitlab.com/pycqa/flake8/issues/245
.. _GitLab246:
 https://gitlab.com/pycqa/flake8/issues/246
.. _GitLab248:
 https://gitlab.com/pycqa/flake8/issues/248

3.0.4

-------------------

- Side-step a Pickling Error when using Flake8 with multiprocessing on Unix
systems. (See also `GitLab164`_)

- Fix an Attribute Error raised when dealing with Invalid Syntax. (See also
`GitLab203`_)

- Fix an unhandled Syntax Error when tokenizing files. (See also
`GitLab205`_)


.. links
.. _GitLab164:
 https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab203:
 https://gitlab.com/pycqa/flake8/issues/203
.. _GitLab205:
 https://gitlab.com/pycqa/flake8/issues/205

3.0.3

-------------------

- Disable ``--jobs`` for any version of Python on Windows.
(See also `this Python bug report`_)

- Raise exception when entry_point in plugin not callable.
This raises an informative error when a plugin fails to load because its
entry_point is not callable, which can happen with a plugin which is buggy or
not updated for the current version of flake8. This is nicer than raising a
`PicklingError` about failing to pickle a module (See also `GitLab164`_)

- Fix `` noqa`` comments followed by a ``:`` and explanation broken by
3.0.0 (See also `GitLab178`_)

- Always open our output file in append mode so we do not overwrite log
messages. (See also `GitLab193`_)

- When normalizing path values read from configuration, keep in context the
directory where the configuration was found so that relative paths work.
(See also `GitLab194`_)

- Fix issue where users were unable to ignore plugin errors that were on
by default. (See also `GitLab195`_)

- Fix our legacy API StyleGuide's ``init_report`` method to actually override
the previous formatter. (See also `GitLab200`_)


.. links
.. _GitLab164:
 https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab178:
 https://gitlab.com/pycqa/flake8/issues/178
.. _GitLab193:
 https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab194:
 https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab195:
 https://gitlab.com/pycqa/flake8/issues/195
.. _GitLab200:
 https://gitlab.com/pycqa/flake8/issues/200
.. _this Python bug report:
 https://bugs.python.org/issue27649

3.0.2

-------------------

- Fix local config file discovery.  (See also `GitLab181`_)

- Fix indexing of column numbers. We accidentally were starting column indices
at 0 instead of 1.

- Fix regression in handling of errors like E402 that rely on a combination of
attributes. (See also `GitLab186`_)


.. links
.. _GitLab181:
 https://gitlab.com/pycqa/flake8/issues/181
.. _GitLab186:
 https://gitlab.com/pycqa/flake8/issues/186

3.0.1

-------------------

- Fix regression in handling of `` noqa`` for multiline strings.
(See also `GitLab177`_)

- Fix regression in handling of ``--output-file`` when not also using
``--verbose``. (See also `GitLab180`_)

- Fix regression in handling of ``--quiet``. (See also `GitLab180`_)

- Fix regression in handling of ``--statistics``. (See also `GitLab180`_)


.. links
.. _GitLab177:
 https://gitlab.com/pycqa/flake8/issues/177
.. _GitLab180:
 https://gitlab.com/pycqa/flake8/issues/180

3.0.0

-------------------

- Rewrite our documentation from scratch! (http://flake8.pycqa.org)

- Drop explicit support for Pythons 2.6, 3.2, and 3.3.

- Remove dependence on pep8/pycodestyle for file processing, plugin
dispatching, and more. We now control all of this while keeping backwards
compatibility.

- ``--select`` and ``--ignore`` can now both be specified and try to find the
most specific rule from each. For example, if you do ``--select E --ignore
E123`` then we will report everything that starts with ``E`` except for
``E123``. Previously, you would have had to do ``--ignore E123,F,W`` which
will also still work, but the former should be far more intuitive.

- Add support for in-line `` noqa`` comments to specify **only** the error
codes to be ignored, e.g., `` noqa: E123,W503``

- Add entry-point for formatters as well as a base class that new formatters
can inherit from. See the documentation for more details.

- Add detailed verbose output using the standard library logging module.

- Enhance our usage of optparse for plugin developers by adding new parameters
to the ``add_option`` that plugins use to register new options.

- Update ``--install-hook`` to require the name of version control system hook
you wish to install a Flake8.

- Stop checking sub-directories more than once via the setuptools command

- When passing a file on standard-in, allow the caller to specify
``--stdin-display-name`` so the output is properly formatted

- The Git hook now uses ``sys.executable`` to format the shebang line.
This allows Flake8 to install a hook script from a virtualenv that points to
that virtualenv's Flake8 as opposed to a global one (without the virtualenv
being sourced).

- Print results in a deterministic and consistent ordering when used with
multiprocessing

- When using ``--count``, the output is no longer written to stderr.

- AST plugins can either be functions or classes and all plugins can now
register options so long as there are callable attributes named as we
expect.

- Stop forcibly re-adding ``.tox``, ``.eggs``, and ``*.eggs`` to
``--exclude``. Flake8 2.x started always appending those three patterns
to any exclude list (including the default and any user supplied list).
Flake8 3 has stopped adding these in, so you may see errors when upgrading
due to these patterns no longer being forcibly excluded by default if you
have your own exclude patterns specified.

To fix this, add the appropriate patterns to your exclude patterns list.

.. note::

   This item was added in November of 2016, as a result of a bug
   report.

2.6.2

------------------

- **Bug** Fix packaging error during release process.

2.6.1

------------------

- **Bug** Update the config files to search for to include ``setup.cfg`` and
``tox.ini``. This was broken in 2.5.5 when we stopped passing
``config_file`` to our Style Guide

2.6.0

------------------

- **Requirements Change** Switch to pycodestyle as all future pep8 releases
will use that package name

- **Improvement** Allow for Windows users on *select* versions of Python to
use ``--jobs`` and multiprocessing

- **Improvement** Update bounds on McCabe

- **Improvement** Update bounds on PyFlakes and blacklist known broken
versions

- **Improvement** Handle new PyFlakes warning with a new error code: F405

2.5.5

------------------

- **Bug** Fix setuptools integration when parsing config files

- **Bug** Don't pass the user's config path as the config_file when creating a
StyleGuide

2.5.4

------------------

- **Bug** Missed an attribute rename during the v2.5.3 release.

2.5.3

------------------

- **Bug** Actually parse ``output_file`` and ``enable_extensions`` from config
files

2.5.2

------------------

- **Bug** Parse ``output_file`` and ``enable_extensions`` from config files

- **Improvement** Raise upper bound on mccabe plugin to allow for version
0.4.0

2.5.1

------------------

- **Bug** Properly look for ``.flake8`` in current working directory
(`GitLab103`_)

- **Bug** Monkey-patch ``pep8.stdin_get_value`` to cache the actual value in
stdin. This helps plugins relying on the function when run with
multiprocessing. (`GitLab105`_, `GitLab107`_)

.. _GitLab103: https://gitlab.com/pycqa/flake8/issues/103
.. _GitLab105: https://gitlab.com/pycqa/flake8/issues/105
.. _GitLab107: https://gitlab.com/pycqa/flake8/issues/107

2.5.0

------------------

- **Improvement** Raise cap on PyFlakes for Python 3.5 support

- **Improvement** Avoid deprecation warnings when loading extensions
(`GitLab59`_, `GitLab90`_)

- **Improvement** Separate logic to enable "off-by-default" extensions
(`GitLab67`_)

- **Bug** Properly parse options to setuptools Flake8 command (`GitLab!41`_)

- **Bug** Fix exceptions when output on stdout is truncated before Flake8
finishes writing the output (`GitLab69`_)

- **Bug** Fix error on OS X where Flake8 can no longer acquire or create new
semaphores (`GitLab74`_)

.. _GitLab!41: https://gitlab.com/pycqa/flake8/merge_requests/41
.. _GitLab59: https://gitlab.com/pycqa/flake8/issues/59
.. _GitLab67: https://gitlab.com/pycqa/flake8/issues/67
.. _GitLab69: https://gitlab.com/pycqa/flake8/issues/69
.. _GitLab74: https://gitlab.com/pycqa/flake8/issues/74
.. _GitLab90: https://gitlab.com/pycqa/flake8/issues/90

2.4.1

------------------

- **Bug** Do not raise a ``SystemError`` unless there were errors in the
setuptools command. (`GitLab39`_, `GitLab!23`_)

- **Bug** Do not verify dependencies of extensions loaded via entry-points.

- **Improvement** Blacklist versions of pep8 we know are broken

.. _GitLab39: https://gitlab.com/pycqa/flake8/issues/39
.. _GitLab!23: https://gitlab.com/pycqa/flake8/merge_requests/23

2.4.0

------------------

- **Bug** Print filenames when using multiprocessing and ``-q`` option.
(`GitLab31`_)

- **Bug** Put upper cap on dependencies. The caps for 2.4.0 are:

- ``pep8 < 1.6`` (Related to `GitLab35`_)

- ``mccabe < 0.4``

- ``pyflakes < 0.9``

See also `GitLab32`_

- **Bug** Files excluded in a config file were not being excluded when flake8
was run from a git hook. (`GitHub2`_)

- **Improvement** Print warnings for users who are providing mutually
exclusive options to flake8. (`GitLab8`_, `GitLab!18`_)

- **Feature** Allow git hook configuration to live in ``.git/config``.
See the updated `VCS hooks docs`_ for more details. (`GitLab!20`_)

.. _GitHub2: https://github.com/pycqa/flake8/pull/2
.. _GitLab8: https://gitlab.com/pycqa/flake8/issues/8
.. _GitLab31: https://gitlab.com/pycqa/flake8/issues/31
.. _GitLab32: https://gitlab.com/pycqa/flake8/issues/32
.. _GitLab35: https://gitlab.com/pycqa/flake8/issues/35
.. _GitLab!18: https://gitlab.com/pycqa/flake8/merge_requests/18
.. _GitLab!20: https://gitlab.com/pycqa/flake8/merge_requests/20
.. _VCS hooks docs: https://flake8.readthedocs.io/en/latest/user/using-hooks.html

2.3.0

------------------

- **Feature**: Add ``--output-file`` option to specify a file to write to
instead of ``stdout``.

- **Bug** Fix interleaving of output while using multiprocessing
(`GitLab17`_)

.. _GitLab17: https://gitlab.com/pycqa/flake8/issues/17

2.2.5

------------------

- Flush standard out when using multiprocessing

- Make the check for " flake8: noqa" more strict

2.2.4

------------------

- Fix bugs triggered by turning multiprocessing on by default (again)

Multiprocessing is forcibly disabled in the following cases:

- Passing something in via stdin

- Analyzing a diff

- Using windows

- Fix --install-hook when there are no config files present for pep8 or
flake8.

- Fix how the setuptools command parses excludes in config files

- Fix how the git hook determines which files to analyze (Thanks Chris
Buccella!)

2.2.3

------------------

- Actually turn multiprocessing on by default

2.2.2

------------------

- Re-enable multiprocessing by default while fixing the issue Windows users
were seeing.

2.2.1

------------------

- Turn off multiple jobs by default. To enable automatic use of all CPUs, use
``--jobs=auto``. Fixes 155 and 154.

2.2.0

------------------

- New option ``doctests`` to run Pyflakes checks on doctests too
- New option ``jobs`` to launch multiple jobs in parallel
- Turn on using multiple jobs by default using the CPU count
- Add support for ``python -m flake8`` on Python 2.7 and Python 3
- Fix Git and Mercurial hooks: issues 88, 133, 148 and 149
- Fix crashes with Python 3.4 by upgrading dependencies
- Fix traceback when running tests with Python 2.6
- Fix the setuptools command ``python setup.py flake8`` to read
the project configuration

2.1.0

------------------

- Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
mercurial hooks
- Force git and mercurial hooks to repsect configuration in setup.cfg
- Only check staged files if that is specified
- Fix hook file permissions
- Fix the git hook on python 3
- Ignore non-python files when running the git hook
- Ignore .tox directories by default
- Flake8 now reports the column number for PyFlakes messages

2.0.0

------------------

- Pyflakes errors are prefixed by an ``F`` instead of an ``E``
- McCabe complexity warnings are prefixed by a ``C`` instead of a ``W``
- Flake8 supports extensions through entry points
- Due to the above support, we **require** setuptools
- We publish the `documentation <https://flake8.readthedocs.io/>`_
- Fixes 13: pep8, pyflakes and mccabe become external dependencies
- Split run.py into main.py, engine.py and hooks.py for better logic
- Expose our parser for our users
- New feature: Install git and hg hooks automagically
- By relying on pyflakes (0.6.1), we also fixed 45 and 35

1.7.0

------------------

- Fixes part of 35: Exception for no WITHITEM being an attribute of Checker
for Python 3.3
- Support stdin
- Incorporate phd's builtins pull request
- Fix the git hook
- Update pep8.py to the latest version

1.6.2

------------------

- fixed the NameError: global name 'message' is not defined (46)

1.6.1

------------------

- fixed the mercurial hook, a change from a previous patch was not properly
applied
- fixed an assumption about warnings/error messages that caused an exception
to be thrown when McCabe is used

1.6

----------------

- changed the signatures of the ``check_file`` function in flake8/run.py,
``skip_warning`` in flake8/util.py and the ``check``, ``checkPath``
functions in flake8/pyflakes.py.
- fix ``--exclude`` and ``--ignore`` command flags (14, 19)
- fix the git hook that wasn't catching files not already added to the index
(29)
- pre-emptively includes the addition to pep8 to ignore certain lines.
Add `` nopep8`` to the end of a line to ignore it. (37)
- ``check_file`` can now be used without any special prior setup (21)
- unpacking exceptions will no longer cause an exception (20)
- fixed crash on non-existent file (38)

1.5

----------------

- fixed the stdin
- make sure mccabe catches the syntax errors as warnings
- pep8 upgrade
- added max_line_length default value
- added Flake8Command and entry points if setuptools is around
- using the setuptools console wrapper when available

1.4

----------------

- git_hook: Only check staged changes for compliance
- use pep8 1.2

1.3.1

------------------

- fixed support for Python 2.5

1.3

----------------

- fixed false W402 warning on exception blocks.

1.2

----------------

- added a git hook
- now Python 3 compatible
- mccabe and pyflakes have warning codes like pep8 now

1.1

----------------

- fixed the value returned by --version
- allow the flake8: header to be more generic
- fixed the "hg hook raises 'physical lines'" bug
- allow three argument form of raise
- now uses setuptools if available, for 'develop' command

1.0

----------------

- Deactivates by default the complexity checker
- Introduces the complexity option in the HG hook and the command line.

0.9

----------------

- update pep8 version to 0.6.1
- mccabe check: gracefully handle compile failure

0.8

----------------

- fixed hg hook
- discard unexisting files on hook check

0.7

----------------

- Fix pep8 initialization when run through Hg
- Make pep8 short options work when run through the command line
- Skip duplicates when controlling files via Hg

0.6

----------------

- Fix the McCabe metric on some loops
Links

Update pylint from 1.9.4 to 2.3.1.

Changelog

2.3.0

===========================

Release date: 2019-02-27

* Protect against `NonDeducibleTypeHierarchy` when calling semi-private `is_subtype`

`astroid.helpers.is_subtype` raises `NonDeducibleTypeHierarchy` when it cannot infer
the base classes of the given types, but that makes sense in its context given that
the method is mostly used to inform the inference process about the hierarchy of classes.
Doesn't make that much sense for ``pylint`` itself, which is why we're handling the
exception here, rather than in ``astroid``

Close PyCQA/astroid644

* Added a new command line option ``list-groups`` for listing all the check groups ``pylint`` knows about.

* Allow ``BaseException`` for emitting ``broad-except``, just like ``Exception``.

Close 2741

* Fixed a crash that occurred for ``bad-str-strip-call`` when ``strip()`` received ``None``

Close 2743

* Don't emit ``*-not-iterating`` checks for builtins consumed by ``itertools``

Close 2731

* Fix a crash caused by iterating over ``Uninferable`` in a string formatting check.

Close 2727

* Fixed false positives for ``no-self-argument`` and ``unsubscriptable-object`` when using ``__class_getitem__`` (new in Python 3.7)

Close 2416

* Support ``Ellipsis`` as a synonym for ``pass`` statements.

Close 2718

* ``fixme`` gets triggered only on comments.

Close 2321

* Fixed a false positive for ``unused-variable`` and ``nonlocal`` assignments

Close 2671

* Added ``load_configuration()`` hook for plugins

New optional hook for plugins is added: ``load_configuration()``.
This hook is executed after configuration is loaded to prevent
overwriting plugin specific configuration via user-based
configuration.

Close 2635

* Fix missing-raises-doc false positive (W9006)

Close 1502

* Exempt starred unpacking from ``*-not-iterating`` Python 3 checks

Close 2651

* Make ``compare-to-zero`` less zealous by checking against equality and identity

Close 2645

* Add ``no-else-raise`` warning (R1720)

Close 2558

* Exempt ``yield from`` from ``*-not-iterating`` Python 3 checks.

Close 2643

* Fix incorrect generation of ``no-else-return`` warnings (R1705)

Fixed issue where ``if`` statements with nested ``if`` statements
were incorrectly being flagged as ``no-else-return`` in some cases and
not being flagged as ``no-else-return`` in other cases.  Added tests
for verification and updated pylint source files to eliminate newly
exposed warnings.

* Fix false positive with `not-async-context-manager` caused by not understanding `contextlib.asynccontextmanager`

Close 2440

* Refactor ``bad-reversed-sequence`` to account for more objects that can define ``__reversed__``

One such object would be an enum class, for which ``__reversed__`` yields each individual enum.
As such, the check for ``bad-reversed-sequence`` needs to not differentiate between classes
and instances when it comes for checking of ``__reversed__`` presence.

Close 2598

* Added ``wrong-exception-operation``

Used when an operation is done against an exception, but the operation
is not valid for the exception in question. Usually emitted when having
binary operations between exceptions in except handlers.

Close 2494

* ``no-member`` is emitted for enums when they lack a member

Previously we weren't doing this because we detected a
``__getattr__`` implementation on the ``Enum`` class
(and this check is skipped for classes with ``__getattr__``),
but that is fine for Enums, given that they are inferred in a customised
way in astroid.

Close 2565

* Generalize ``chained-comparison``

Previous version incorrectly detects `a < b < c and b < d` and fails to
detect `a < b < c and c < d`.

* Avoid popping __main__ when using multiple jobs

Close 2689

* Add a new option 'check-str-concat-over-line-jumps' to check 'implicit-str-concat-in-sequence'

* Fixes for the new style logging format linter.

The number of arguments was not handled properly, leading to an always
successful check.

* Fix false positive ``not-callable`` for uninferable properties.

* Fix false positive ``useless-else-on-loop`` if the break is deep in the else
of an inner loop.

2.2.2

===========================

Release date: 2018-11-28

* Change the ``logging-format-style`` to use name identifier instead of their
corresponding Python identifiers

This is to prevent users having to think about escaping the default value for
``logging-format-style`` in the generated config file. Also our config parsing
utilities don't quite support escaped values when it comes to ``choices`` detection,
so this would have needed various hacks around that.

Closes 2614

2.2.1

===========================

Release date: 2018-11-27

* Fix a crash caused by `implicit-str-concat-in-sequence` and multi-bytes characters.

Closes 2610

2.2

=========================

Release date: 2018-11-25

* Consider ``range()`` objects for ``undefined-loop-variable`` leaking from iteration.

  Close 2533

* ``deprecated-method`` can use the attribute name for identifying a deprecated method

  Previously we were using the fully qualified name, which we still do, but the fully
  qualified name for some ``unittest`` deprecated aliases leads to a generic
  deprecation function. Instead on relying on that, we now also rely on the attribute
  name, which should solve some false positives.

  Close 1653
  Close 1946

* Fix compatibility with changes to stdlib tokenizer.

* ``pylint`` is less eager to consume the whole line for pragmas

  Close 2485

* Obtain the correct number of CPUs for virtualized or containerized environments.

  Close 2519

* Change ``unbalanced-tuple-unpacking`` back to a warning.

  It used to be a warning until a couple of years ago, after it was promoted to
  an error. But the check might be suggesting the wrong thing in some cases,
  for instance when checking against ``sys.argv`` which cannot be known at static
  analysis time. Given it might rely on potential unknown data, it's best to
  have it as a warning.

  Close 2522

* Remove ``enumerate`` usage suggestion when defining ``__iter__`` (C0200)

  Close 2477

* Emit ``too-many-starred-assignment`` only when the number of Starred nodes is per assignment elements

  Close 2513

* `try-except-raise` checker now handles multilevel inheritance hirerachy for exceptions correctly.

  Close 2484

* Add a new check, ``simplifiable-if-expression`` for expressions like ``True if cond else False``.

  Close 2487

* ``too-few-public-methods`` is not reported for ``typing.NamedTuple``

  Close 2459

* too-few-public-methods`` is not reported for dataclasses created with options.

  Close 2488

* Remove wrong modules from 'bad-python3-import'.

  Close 2453

* The ``json`` reporter prints an empty list when no messages are emitted

  Close 2446

* Add a new check, ``duplicate-string-formatting-argument``

  This new check is emitted whenever a duplicate string formatting argument
  is found.

  Close 497

* ``assignment-from-no-return`` is not emitted for coroutines.

  Close 1715

* Report format string type mismatches.

* ``consider-using-ternary`` and ``simplified-boolean-expression`` no longer emit for sequence based checks

  Close 2473

* Handle ``AstroidSyntaxError`` when trying to import a module.

  Close 2313

* Allow ``__module__`` to be redefined at a class level. Close 2451

* ``pylint`` used to emit a ``unused-variable`` error if unused import was found in the function. Now instead of
  ``unused-variable``, ``unused-import`` is emitted.

  Close 2421

* Handle asyncio.coroutine when looking for ``not-an-iterable`` check.

  Close 996

* The ``locally-enabled`` check is gone.

  Close 2442

* Infer decorated methods when looking for method-hidden

  Close 2369

* Pick the latest value from the inferred values when looking for ``raising-non-exception``

  Close 2431

* Extend the TYPE_CHECKING guard to TYPE_CHECKING name as well, not just the attribute

  Close 2411

* Ignore import x.y.z as z cases for checker `useless-import-alias`.

  Close 2309

* Fix false positive ``undefined-variable`` and ``used-before-assignment`` with nonlocal keyword usage.

  Close 2049

* Stop ``protected-access`` exception for missing class attributes

* Don't emit `assignment-from-no-return` for decorated function nodes

  Close 2385

* `unnecessary-pass` is now also emitted when a function or class contains only docstring and pass statement.

   In Python, stubbed functions often have a body that contains just a single `pass` statement,
   indicating that the function doesn't do anything. However, a stubbed function can also have just a
   docstring, and function with a docstring and no body also does nothing.

   Close 2208

* ``duplicate-argument-name`` is emitted for more than one duplicate argument per function

   Close 1712

* Allow double indentation levels for more distinguishable indentations

  Close 741

* Consider tuples in exception handler for ``try-except-raise``.
  Close 2389

* Fix astroid.ClassDef check in checkers.utils.is_subclass_of

* Fix wildcard imports being ignored by the import checker

* Fix external/internal distinction being broken in the import graph

* Fix wildcard import check not skipping `__init__.py`

  Close 2430

* Add new option to logging checker, ``logging_format_style``

* Fix --ignore-imports to understand multi-line imports

  Close 1422
  Close 2019

* Add a new check 'implicit-str-concat-in-sequence' to spot string concatenation inside lists, sets & tuples.

* ``literal-comparison`` is now emitted for 0 and 1 literals.

2.1.1

===========================

Release date: 2018-08-07

* fix pylint crash due to ``misplaced-format-function`` not correctly handling class attribute.
  Close 2384

* Do not emit \*-builtin for Python 3 builtin checks when the builtin is used inside a try-except

  Close PyCQA/pylint2228

* ``simplifiable-if-statement`` not emitted when dealing with subscripts

2.1

=========================

Release date: 2018-08-01
* `trailing-comma-tuple` gets emitted for ``yield`` statements as well.

   Close 2363

* Get only the arguments of the scope function for `redefined-argument-from-local`

  Close 2364

* Add a check `misplaced-format-function` which is emitted if format function is used on
  non str object.

  Close 2200

* `chain.from_iterable` no longer emits `dict-{}-not-iterating` when dealing with dict values and keys

* Demote the `try-except-raise` message from an error to a warning (E0705 -> W0706)

   Close 2323

* Correctly handle the new name of the Python implementation of the `abc` module.

  Close PyCQA/astroid2288

 * Modules with `__getattr__` are exempted by default from `no-member`

   There's no easy way to figure out if a module has a particular member when
   the said module uses `__getattr__`, which is a new addition to Python 3.7.
   Instead we assume the safe thing to do, in the same way we do for classes,
   and skip those modules from checking.

   Close 2331

 * Fix a false positive `invalid name` message when method or attribute name is longer then 30 characters.

   Close 2047

 * Include the type of the next branch in `no-else-return`

   Close 2295

 * Fix inconsistent behaviour for bad-continuation on first line of file

   Close 2281

  * Fix not being able to disable certain messages on the last line through
    the global disable option

    Close 2278

 * Don't emit `useless-return` when we have a single statement that is the return itself

   We still want to be explicit when a function is supposed to return
   an optional value; even though `pass` could still work, it's not explicit
   enough and the function might look like it's missing an implementation.
   Close 2300

* Fix false-positive undefined-variable for self referential class name in lamdbas

   Close 704

 * Don't crash when `pylint` is unable to infer the value of an argument to `next()`

   Close 2316

 * Don't emit `not-an-iterable` when dealing with async iterators.

   But do emit it when using the usual iteration protocol against
   async iterators.

   Close 2311

* Can specify a default docstring type for when the check cannot guess the type

   Close 1169

2.0

=========================

Release date: 2018-07-15
 * `try-except-raise` should not be emitted if there are any parent exception class handlers.

    Close 2284

 * `trailing-comma-tuple` can be emitted for `return` statements as well.

    Close 2269

 * Fix a false positive ``inconsistent-return-statements`` message when exception is raised
   inside an else statement.

   Close 1782

 * `ImportFrom` nodes correctly use the full name for the import sorting checks.

   Close 2181

 * [].extend and similar builtin operations don't emit `dict-*-not-iterating` with the Python 3 porting checker

   Close 2187

 * Add a check `consider-using-dict-comprehension` which is emitted if for dict initialization
   the old style with list comprehensions is used.

 * Add a check `consider-using-set-comprehension` which is emitted if for set initialization
   the old style with list comprehensions is used.

 * `logging-not-lazy` is emitted whenever pylint infers that a string is built with addition

   Close 2193

 * Add a check `chained-comparison` which is emitted if a boolean operation can be simplified
   by chaining some of its operations.
   e.g "a < b and b < c", can be simplified as "a < b < c".

   Close 2032

 * Add a check `consider-using-in` for comparisons of a variable against
   multiple values with "==" and "or"s instead of checking if the variable
   is contained "in" a tuple of those values.

 * `in` is considered iterating context for some of the Python 3 porting checkers

   Close 2186

 * Add `--ignore-none` flag to control if pylint should warn about `no-member` where the owner is None

 * Fix a false positive related to `too-many-arguments` and bounded `__get__` methods

   Close 2172

 * `mcs` as the first parameter of metaclass's `__new__` method was replaced by `cls`

   Close 2028

 * `assignment-from-no-return` considers methods as well.

    Close 2081

 * Support typing.TYPE_CHECKING for *unused-import* errors

   Close 1948

 * Inferred classes at a function level no longer emit `invalid-name`
   when they don't respect the variable regular expression

   Close 1049

 * Added basic support for postponed evaluation of function annotations.

   Close 2069

 * Fix a bug with `missing-kwoa` and variadics parameters

   Close 1111

 * `simplifiable-if-statement` takes in account only when assigning to same targets

    Close 1984

 * Make ``len-as-condition`` test more cases, such as ``len() < 1`` or ``len <= 0``

 * Fix false-positive ``line-too-long`` message emission for
   commented line at the end of a module

   Close 1950

 * Fix false-positive ``bad-continuation`` for with statements

   Close 461

 * Don't warn about `stop-iteration-return` when using `next()` over `itertools.count`

   Close 2158

 * Add a check `consider-using-get` for unidiomatic usage of value/default-retrieval
   for a key from a dictionary

   Close 2076

 * invalid-slice-index is not emitted when the slice is used as index for a complex object.

   We only use a handful of known objects (list, set and friends) to figure out if
   we should emit invalid-slice-index when the slice is used to subscript an object.

 * Don't emit `unused-import` anymore for typing imports used in type comments.

 * Add a new check 'useless-import-alias'.

   Close 2052

 * Add `comparison-with-callable` to warn for comparison with bare callable, without calling it.

   Close 2082

 * Don't warn for ``missing-type-doc`` and/or ``missing-return-type-doc``, if type
   annotations exist on the function signature for a parameter and/or return type.
   Close 2083

 * Add `--exit-zero` option for continuous integration scripts to more
   easily call Pylint in environments that abort when a program returns a
   non-zero (error) status code.

   Close 2042

 * Warn if the first argument of an instance/ class method gets assigned

   Close 977

 * New check `comparison-with-itself` to check comparison between same value.

   Close 2051

 * Add a new warning, 'logging-fstring-interpolation', emitted when f-string
   is used within logging function calls.

   Close 1998

 * Don't show 'useless-super-delegation' if the subclass method has different type annotations.

   Close 1923

 * Add `unhashable-dict-key` check.

   Closes 586

 * Don't warn that a global variable is unused if it is defined by an import

   Close 1453

 * Skip wildcard import check for `__init__.py`.

   Close 2026

 * The Python 3 porting mode can now run with Python 3 as well.

 * `too-few-public-methods` is not emitted for dataclasses.

    Close 1793

 * New verbose mode option, enabled with `--verbose` command line flag, to
   display of extra non-checker-related output. It is disabled by default.

   Close 1863

 * `undefined-loop-variable` takes in consideration non-empty iterred objects before emitting

   Close 2039

 * Add support for numpydoc optional return value names.

   Close 2030

 * `singleton-comparison` accounts for negative checks

   Close 2037

 * Add a check `consider-using-in` for comparisons of a variable against
   multiple values with "==" and "or"s instead of checking if the variable
   is contained "in" a tuple of those values.

   Close 1977

 * defaultdict and subclasses of dict are now handled for dict-iter-* checks

   Close 2005

 * `logging-format-interpolation` also emits when f-strings are used instead of % synt

@palikar palikar force-pushed the master branch 4 times, most recently from 2256602 to c836b6e Compare June 20, 2019 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant