Skip to content
This repository was archived by the owner on Oct 3, 2019. It is now read-only.

Conversation

@pyup-bot
Copy link

@pyup-bot pyup-bot commented Jan 4, 2019

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 flake8 from 3.6.0 to 3.6.0.

Changelog

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 `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
`GitLab365`_, `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 flake8-isort from 2.6.0 to 2.6.0.

Changelog

2.6.0

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

- Use pytest to run tests.
[gforcada]

- New error code I005 isort foundan unexpected missing import.
[charettes]

- Add ``isort_show_traceback`` option to show verbose multi-line output
from ``isort``, turned off by default
[sobolevn]

2.5

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

- Now requires isort >= 4.3.0.
[jleclanche]

2.4

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

- Fix input handling with flake8's --stdin-display-name, and simplify it.
[blueyed]

- Remove flake8-polyfill dependency.  flake8 >= 3.2.1 is required already, and
stdin is not read directly anymore.
[blueyed]

2.3

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

- Fix typo.
[paltman]

- Add tox.ini and .editorconfig to config search.
[cas--]

- Make this plugin compatible with flake8 hook.
As the hook copies the files out of tree,
flake8-isort never finds the correct configuration.
[jaysonsantos]

2.2.2

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

- Workaround for isort bug when skipping files.
[danpalmer]

2.2.1

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

- Release as universal wheel.
[gforcada]

2.2

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

- Support flake8 git hook.
[sergio-alonso]

- Support python 3.6.
[gforcada]

- Search configuration on home folder.
[gforcada]

2.1.3

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

- Fix yet another corner case.
[gforcada]

2.1.2

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

- Fix another corner case: ignored files.
[cas--]

2.1.1

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

- Fix corner cases of isort: newlines and grouped imports.
[cas--]

2.1.0

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

- Show the exact line and kind of error,
rather than a generic message.
[cas--]

2.0.3

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

- Update trove classifiers.
[gforcada]

2.0.2

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

- Add flake8 classifier.
[sigmavirus24]

- Require flake8 3.2.1.
flake8 series 3.1.x and 3.2.0 where not reporting flake8-isort errors.
[gforcada]

- Test on pypy and pypy3.
[gforcada]

- Fix tests and formatting.
[gforcada]

2.0.1

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

- Fix standard input processing.
[carljm]

2.0

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

- Refactor code to handle flake8 version 3.
[danpalmer]

- Require flake8 version 3.0.
[gforcada]

1.3

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

- Make error messages clearer.
[do3cc]

- Use either pep8 or pycodestyle (new name for pep8).
[Maxim Novikov]

- Fix coveralls.
[gforcada]

1.2

----------------
- Allow stdin processing, this way text editor can pass input to flake8.
[mjacksonw]

1.1.1

------------------
- Silence isort messages.
[gforcada]

- Improve wording.
[gforcada]

1.1

----------------
- Check for isort configuration on setup.cfg as well.
[plumdog]

1.0

----------------
- Check for an isort configuration file.
[gforcada]

0.2

----------------
- Fix entry point.
[gforcada]

0.1.post0

----------------------
- Release wheels as well.
[gforcada]

0.1

----------------
- Initial release
[gforcada]

- Add all boilerplate files.
[gforcada]

- Create the flake8 plugin per se.
[gforcada]
Links

Update isort from 4.3.4 to 4.3.4.

Changelog

4.3.4

- Fixed issue 671: isort is corrupting CRLF files

4.3.3

- Fixed issue 665: Tabs turned into single spaces

4.3.2

- Fixed issue 651: Add imports option is broken
- Fixed issue 662: An error generated by rewriting `.imports` to `. imoprts`

4.3.1

- Fixed setup.py errors
- Fixed issue 654: Trailing comma count error
- Fixed issue 650: Wrong error message displayed

4.3.0

- Fixed 557: `force_alphabetical_sort` and `force_sort_within_sections` can now be utilized together without extra new lines
- Fix case-sensitive path existence check in Mac OS X
- Added `--no-lines-before` for more granular control over section output
- Fixed 493: Unwanted conversion to Windows line endings
- Fixed 590: Import `as` mucks with alphabetical sorting
- Implemented `--version-number` to retrieve just the version number without the isort logo
- Breaking changes
 - Python 2.7+ only (dropped 2.6) allowing various code simplifications and improvements.

4.2.15

IMPORTANT NOTE: This will be the last release with Python 2.6 support, subsequent releases will be 2.7+ only
- Fixed certain one line imports not being successfully wrapped

4.2.14

- Fixed 559 & 565: Added missing standard library imports

4.2.13

- Fixed 553: Check only and --diff now work together again

4.2.12

- Fixed wheel distribution bug

4.2.11

- Fixed 546: Can't select y/n/c after latest update
- Fixed 545: Incorrectly moves __future__ imports above encoding comments

4.2.9

- Fixed 428: Check only modifies sorting
- Fixed 540: Not correctly identifying stdlib modules

4.2.8

- Added `--virtual-env` switch command line option
- Added --enforce-whitespace option to go along with --check-only for more exact checks (issue 423)
- Fixed imports with a tailing '\' and no space in-between getting removed (issue 425)
- Fixed issue 299: long lines occasionally not wrapped
- Fixed issue 432: No longer add import inside class when class starts at top of file after encoding comment
- Fixed issue 440: Added missing `--use-parentheses` option to command line tool and documentation
- Fixed issue 496: import* imports now get successfully identified and reformatted instead of deleted
- Fixed issue 491: Non ending parentheses withing single line comments no longer cause formatting issues
- Fixed issue 471: Imports that wrap the maximum line length and contain comments on the last line are no longer rendered incorrectly
- Fixed issue 436: Force sort within section no longer rearranges comments
- Fixed issue 473: Force_to_top and force_sort_within_sections now work together
- Fixed issue 484 & 472: Consistent output with imports of same spelling but different case
- Fixed issue 433: No longer incorrectly add an extra new-line when comment between imports and function definition
- Fixed issue 419: Path specification for skipped paths is not Unix/Windows inter-operable.
Breaking Changes:
 - Fixed issue 511: All command line options with an underscore, have had the underscore replaced with a dash for consistency. This effects: multi-line, add-import, remove-import, force-adds, --force-single-line-imports, and length-sort.
 - Replaced the `--enforce-whitespace` option with `--ignore-whitespace` to restore original behavior of strict whitespace by default

4.2.5

- Fixed an issue that caused modules to inccorectly be matched as thirdparty when they simply had `src` in the leading path, even if they weren't withing $VIRTUALENV/src 414

4.2.4

- Fixed an issue that caused module that contained functions before doc strings, to incorrectly place imports
- Fixed regression in how `force_alphabetical_sort` was being interpretted (issue 409)
- Fixed stray print statement printing skipped files (issue 411)
- Added option for forcing imports into a single bucket: `no_sections`
- Added option for new lines between import types (from, straight): `lines_between_sections`

4.2.3

- Fixed a large number of priority bugs - bug fix only release

4.2.2

- Give an error message when isort is unable to determine where to place a module
- Allow imports to be sorted by module, independent of import_type, when `force_sort_within_sections` option is set
- Fixed an issue that caused Python files with 2 top comments not to be sorted

4.2.1

- Hot fix release to fix code error when skipping globs

4.2.0

- Added option "NOQA" Do not wrap lines, but add a noqa statement at the end
- Added support for running isort recursively, simply with a standalone `isort` command
- Added support to run isort library as a module
- Added compatibility for Python 3.5
- Fixed performance issue (338) when running on project with lots of skipped directories
- Fixed issue 328: extra new can occasionally occur when using alphabetical-only sort
- Fixed custom sections parsing from config file (unicode string -> list)
- Updated pylama extension to the correct entry point
- Skip files even when file_contents is provided if they are explicitly in skip list
- Removed always showing isort banner, keeping it for when the version is requested, verbose is used, or show_logo setting is set.

4.1.2

- Fixed issue 323: Accidental default configuration change introduced

4.1.1

- Added support for partial file match skips (thanks to Amwam)
- Added support for --quiet option to only show errors when running isort
- Fixed issue 316: isort added new lines incorrectly when a top-of line comment is present

4.1.0

- Started keeping a log of all changes between releases
- Added the isort logo to the command line interface
- Added example usage gif to README
- Implemented issue 292: skip setting now supports glob patterns
- Implemented issue 271: Add option to sort imports purely alphabetically
- Implemented issue 301: Readme is now natively in RST format, making it easier for Python tooling to pick up
- Implemented pylama isort extension
- Fixed issue 260:  encoding lines at the top of the file are now correctly supported
- Fixed issue 284: Sticky comments above first import are now supported
- Fixed issue 310: Ensure comments don't get duplicated when reformatting imports
- Fixed issue 289: Sections order not being respected
- Fixed issue 296: Made it more clear how to set arguments more then once

4.0.0

- Removed all external dependencies
Links

Update pip from 18.1 to 18.1.

Changelog

18.1

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

Features
--------

- Allow PEP 508 URL requirements to be used as dependencies.

As a security measure, pip will raise an exception when installing packages from
PyPI if those packages depend on packages not also hosted on PyPI.
In the future, PyPI will block uploading packages with such external URL dependencies directly. (`4187 <https://github.com/pypa/pip/issues/4187>`_)
- Upgrade pyparsing to 2.2.1. (`5013 <https://github.com/pypa/pip/issues/5013>`_)
- Allows dist options (--abi, --python-version, --platform, --implementation) when installing with --target (`5355 <https://github.com/pypa/pip/issues/5355>`_)
- Support passing ``svn+ssh`` URLs with a username to ``pip install -e``. (`5375 <https://github.com/pypa/pip/issues/5375>`_)
- pip now ensures that the RECORD file is sorted when installing from a wheel file. (`5525 <https://github.com/pypa/pip/issues/5525>`_)
- Add support for Python 3.7. (`5561 <https://github.com/pypa/pip/issues/5561>`_)
- Malformed configuration files now show helpful error messages, instead of tracebacks. (`5798 <https://github.com/pypa/pip/issues/5798>`_)

Bug Fixes
---------

- Checkout the correct branch when doing an editable Git install. (`2037 <https://github.com/pypa/pip/issues/2037>`_)
- Run self-version-check only on commands that may access the index, instead of
trying on every run and failing to do so due to missing options. (`5433 <https://github.com/pypa/pip/issues/5433>`_)
- Allow a Git ref to be installed over an existing installation. (`5624 <https://github.com/pypa/pip/issues/5624>`_)
- Show a better error message when a configuration option has an invalid value. (`5644 <https://github.com/pypa/pip/issues/5644>`_)
- Always revalidate cached simple API pages instead of blindly caching them for up to 10
minutes. (`5670 <https://github.com/pypa/pip/issues/5670>`_)
- Avoid caching self-version-check information when cache is disabled. (`5679 <https://github.com/pypa/pip/issues/5679>`_)
- Avoid traceback printing on autocomplete after flags in the CLI. (`5751 <https://github.com/pypa/pip/issues/5751>`_)
- Fix incorrect parsing of egg names if pip needs to guess the package name. (`5819 <https://github.com/pypa/pip/issues/5819>`_)

Vendored Libraries
------------------

- Upgrade certifi to 2018.8.24
- Upgrade packaging to 18.0
- Add pep517 version 0.2
- Upgrade pytoml to 0.1.19
- Upgrade pkg_resources to 40.4.3 (via setuptools)

Improved Documentation
----------------------

- Fix "Requirements Files" reference in User Guide (`user_guide_fix_requirements_file_ref <https://github.com/pypa/pip/issues/user_guide_fix_requirements_file_ref>`_)

18.0

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

Process
-------

- Switch to a Calendar based versioning scheme.
- Formally document our deprecation process as a minimum of 6 months of deprecation
warnings.
- Adopt and document NEWS fragment writing style.
- Switch to releasing a new, non bug fix version of pip every 3 months.

Deprecations and Removals
-------------------------

- Remove the legacy format from pip list. (3651, 3654)
- Dropped support for Python 3.3. (3796)
- Remove support for cleaning up egg fragment postfixes. (4174)
- Remove the shim for the old get-pip.py location. (5520)

For the past 2 years, it's only been redirecting users to use the newer
https://bootstrap.pypa.io/get-pip.py location.

Features
--------

- Introduce a new --prefer-binary flag, to prefer older wheels over newer source packages. (3785)
- Improve autocompletion function on file name completion after options
which have ``<file>``, ``<dir>`` or ``<path>`` as metavar. (4842, 5125)
- Add support for installing PEP 518 build dependencies from source. (5229)
- Improve status message when upgrade is skipped due to only-if-needed strategy. (5319)

Bug Fixes
---------

- Update pip's self-check logic to not use a virtualenv specific file and honor cache-dir. (3905)
- Remove compiled pyo files for wheel packages. (4471)
- Speed up printing of newly installed package versions. (5127)
- Restrict install time dependency warnings to directly-dependant packages. (5196, 5457)

Warning about the entire package set has resulted in users getting confused as
to why pip is printing these warnings.
- Improve handling of PEP 518 build requirements: support environment markers and extras. (5230, 5265)
- Remove username/password from log message when using index with basic auth. (5249)
- Remove trailing os.sep from PATH directories to avoid false negatives. (5293)
- Fix "pip wheel pip" being blocked by the "don't use pip to modify itself" check. (5311, 5312)
- Disable pip's version check (and upgrade message) when installed by a different package manager. (5346)

This works better with Linux distributions where pip's upgrade message may
result in users running pip in a manner that modifies files that should be
managed by the OS's package manager.
- Check for file existence and unlink first when clobbering existing files during a wheel install. (5366)
- Improve error message to be more specific when no files are found as listed in as listed in PKG-INFO. (5381)
- Always read ``pyproject.toml`` as UTF-8. This fixes Unicode handling on Windows and Python 2. (5482)
- Fix a crash that occurs when PATH not set, while generating script location warning. (5558)
- Disallow packages with ``pyproject.toml`` files that have an empty build-system table. (5627)

Vendored Libraries
------------------

- Update CacheControl to 0.12.5.
- Update certifi to 2018.4.16.
- Update distro to 1.3.0.
- Update idna to 2.7.
- Update ipaddress to 1.0.22.
- Update pkg_resources to 39.2.0 (via setuptools).
- Update progress to 1.4.
- Update pytoml to 0.1.16.
- Update requests to 2.19.1.
- Update urllib3 to 1.23.

Improved Documentation
----------------------

- Document how to use pip with a proxy server. (512, 5574)
- Document that the output of pip show is in RFC-compliant mail header format. (5261)

10.0.1

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

Features
--------

- Switch the default repository to the new "PyPI 2.0" running at
https://pypi.org/. (5214)

Bug Fixes
---------

- Fix a bug that made get-pip.py unusable on Windows without renaming. (5219)
- Fix a TypeError when loading the cache on older versions of Python 2.7.
(5231)
- Fix and improve error message when EnvironmentError occurs during
installation. (5237)
- A crash when reinstalling from VCS requirements has been fixed. (5251)
- Fix PEP 518 support when pip is installed in the user site. (5524)

Vendored Libraries
------------------

- Upgrade distlib to 0.2.7

10.0.0

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

Bug Fixes
---------

- Prevent false-positive installation warnings due to incomplete name
normalizaton. (5134)
- Fix issue where installing from Git with a short SHA would fail. (5140)
- Accept pre-release versions when checking for conflicts with pip check or pip
install. (5141)
- ``ioctl(fd, termios.TIOCGWINSZ, ...)`` needs 8 bytes of data (5150)
- Do not warn about script location when installing to the directory containing
sys.executable. This is the case when 'pip install'ing without activating a
virtualenv. (5157)
- Fix PEP 518 support. (5188)
- Don't warn about script locations if ``--target`` is specified. (5203)

10.0.0b2

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

Bug Fixes
---------

- Fixed line endings in CA Bundle - 10.0.0b1 was inadvertently released with Windows
line endings. (5131)

10.0.0b1

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

Deprecations and Removals
-------------------------

- Removed the deprecated ``--egg`` parameter to ``pip install``. (1749)
- Removed support for uninstalling projects which have been installed using
distutils. distutils installed projects do not include metadata indicating
what files belong to that install and thus it is impossible to *actually*
uninstall them rather than just remove the metadata saying they've been
installed while leaving all of the actual files behind. (2386)
- Removed the deprecated ``--download`` option to ``pip install``. (2643)
- Removed the deprecated --(no-)use-wheel flags to ``pip install`` and ``pip
wheel``. (2699)
- Removed the deprecated ``--allow-external``, ``--allow-all-external``, and
``--allow-unverified`` options. (3070)
- Switch the default for ``pip list`` to the columns format, and deprecate the
legacy format. (3654, 3686)
- Deprecate support for Python 3.3. (3796)
- Removed the deprecated ``--default-vcs`` option. (4052)
- Removed the ``setup.py test`` support from our sdist as it wasn't being
maintained as a supported means to run our tests. (4203)
- Dropped support for Python 2.6. (4343)
- Removed the --editable flag from pip download, as it did not make sense
(4362)
- Deprecate SVN detection based on dependency links in ``pip freeze``. (4449)
- Move all of pip's APIs into the pip._internal package, properly reflecting
the fact that pip does not currently have any public APIs. (4696, 4700)

Features
--------

- Add `--progress-bar <progress_bar>` to ``pip download``, ``pip install`` and
``pip wheel`` commands, to allow selecting a specific progress indicator or,
to completely suppress, (for example in a CI environment) use
``--progress-bar off. (2369, 2756)
- Add `--no-color` to `pip`. All colored output is disabled if this flag is
detected. (2449)
- pip uninstall now ignores the absence of a requirement and prints a warning.
(3016, 4642)
- Improved the memory and disk efficiency of the HTTP cache. (3515)
- Support for packages specifying build dependencies in pyproject.toml (see
`PEP 518 <https://www.python.org/dev/peps/pep-0518/>`__). Packages which
specify one or more build dependencies this way will be built into wheels in
an isolated environment with those dependencies installed. (3691)
- pip now supports environment variable expansion in requirement files using
only ``${VARIABLE}`` syntax on all platforms. (3728)
- Allowed combinations of -q and -v to act sanely. Then we don't need warnings
mentioned in the issue. (4008)
- Add `--exclude-editable` to ``pip freeze`` and ``pip list`` to exclude
editable packages from installed package list. (4015, 4016)
- Improve the error message for the common ``pip install ./requirements.txt``
case. (4127)
- Add support for the new `` url`` syntax from PEP 508. (4175)
- Add setuptools version to the statistics sent to BigQuery. (4209)
- Report the line which caused the hash error when using requirement files.
(4227)
- Add a pip config command for managing configuration files. (4240)
- Allow ``pip download`` to be used with a specific platform when ``--no-deps``
is set. (4289)
- Support build-numbers in wheel versions and support sorting with
build-numbers. (4299)
- Change pip outdated to use PackageFinder in order to do the version lookup so
that local mirrors in Environments that do not have Internet connections can
be used as the Source of Truth for latest version. (4336)
- pip now retries on more HTTP status codes, for intermittent failures.
Previously, it only retried on the standard 503. Now, it also retries on 500
(transient failures on AWS S3), 520 and 527 (transient failures on
Cloudflare). (4473)
- pip now displays where it is looking for packages, if non-default locations
are used. (4483)
- Display a message to run the right command for modifying pip on Windows
(4490)
- Add Man Pages for pip (4491)
- Make uninstall command less verbose by default (4493)
- Switch the default upgrade strategy to be 'only-if-needed' (4500)
- Installing from a local directory or a VCS URL now builds a wheel to install,
rather than running ``setup.py install``. Wheels from these sources are not
cached. (4501)
- Don't log a warning when installing a dependency from Git if the name looks
like a commit hash. (4507)
- pip now displays a warning when it installs scripts from a wheel outside the
PATH. These warnings can be suppressed using a new --no-warn-script-location
option. (4553)
- Local Packages can now be referenced using forward slashes on Windows.
(4563)
- pip show learnt a new Required-by field that lists currently installed
packages that depend on the shown package (4564)
- The command-line autocompletion engine ``pip show`` now autocompletes
installed distribution names. (4749)
- Change documentation theme to be in line with Python Documentation (4758)
- Add auto completion of short options. (4954)
- Run 'setup.py develop' inside pep518 build environment. (4999)
- pip install now prints an error message when it installs an incompatible
version of a dependency. (5000)
- Added a way to distinguish between pip installed packages and those from the
system package manager in 'pip list'. Specifically, 'pip list -v' also shows
the installer of package if it has that meta data. (949)
- Show install locations when list command ran with "-v" option. (979)

Bug Fixes
---------

- Allow pip to work if the ``GIT_DIR`` and ``GIT_WORK_TREE`` environment
variables are set. (1130)
- Make ``pip install --force-reinstall`` not require passing ``--upgrade``.
(1139)
- Return a failing exit status when `pip install`, `pip download`, or `pip
wheel` is called with no requirements. (2720)
- Interactive setup.py files will no longer hang indefinitely. (2732, 4982)
- Correctly reset the terminal if an exception occurs while a progress bar is
being shown. (3015)
- "Support URL-encoded characters in URL credentials." (3236)
- Don't assume sys.__stderr__.encoding exists (3356)
- Fix ``pip uninstall`` when ``easy-install.pth`` lacks a trailing newline.
(3741)
- Keep install options in requirements.txt from leaking. (3763)
- pip no longer passes global options from one package to later packages in the
same requirement file. (3830)
- Support installing from Git refs (3876)
- Use pkg_resources to parse the entry points file to allow names with colons.
(3901)
- ``-q`` specified once correctly sets logging level to WARNING, instead of
CRITICAL. Use `-qqq` to have the previous behavior back. (3994)
- Shell completion scripts now use correct executable names (e.g., ``pip3``
instead of ``pip``) (3997)
- Changed vendored encodings from ``utf8`` to ``utf-8``. (4076)
- Fixes destination directory of data_files when ``pip install --target`` is
used. (4092)
- Limit the disabling of requests' pyopenssl to Windows only. Fixes
"SNIMissingWarning / InsecurePlatformWarning not fixable with pip 9.0 /
9.0.1" (for non-Windows) (4098)
- Support the installation of wheels with non-PEP 440 version in their
filenames. (4169)
- Fall back to sys.getdefaultencoding() if locale.getpreferredencoding()
returns None in `pip.utils.encoding.auto_decode`. (4184)
- Fix a bug where `SETUPTOOLS_SHIM` got called incorrectly for relative path
requirements by converting relative paths to absolute paths prior to calling
the shim. (4208)
- Return the latest version number in search results. (4219)
- Improve error message on permission errors (4233)
- Fail gracefully when ``/etc/image_version`` (or another distro version file)
appears to exists but is not readable. (4249)
- Avoid importing setuptools in the parent pip process, to avoid a race
condition when upgrading one of setuptools dependencies. (4264)
- Fix for an incorrect ``freeze`` warning message due to a package being
included in multiple requirements files that were passed to ``freeze``.
Instead of warning incorrectly that the package is not installed, pip now
warns that the package was declared multiple times and lists the name of each
requirements file that contains the package in question. (4293)
- Generalize help text for ``compile``/``no-compile`` flags. (4316)
- Handle the case when ``/etc`` is not readable by the current user by using a
hardcoded list of possible names of release files. (4320)
- Fixed a ``NameError`` when attempting to catch ``FileNotFoundError`` on
Python 2.7. (4322)
- Ensure USER_SITE is correctly initialised. (4437)
- Reinstalling an editable package from Git no longer assumes that the
``master`` branch exists. (4448)
- This fixes an issue where when someone who tries to use git with pip but pip
can't because git is not in the path environment variable. This clarifies the
error given to suggest to the user what might be wrong. (4461)
- Improve handling of text output from build tools (avoid Unicode errors)
(4486)
- Fix a "No such file or directory" error when using --prefix. (4495)
- Allow commands to opt out of --require-venv. This allows pip help to work
even when the environment variable PIP_REQUIRE_VIRTUALENV is set. (4496)
- Fix warning message on mismatched versions during installation. (4655)
- pip now records installed files in a deterministic manner improving
reproducibility. (4667)
- Fix an issue where ``pip install -e`` on a Git url would fail to update if a
branch or tag name is specified that happens to match the prefix of the
current ``HEAD`` commit hash. (4675)
- Fix an issue where a variable assigned in a try clause was accessed in the
except clause, resulting in an undefined variable error in the except clause.
(4811)
- Use log level `info` instead of `warning` when ignoring packages due to
environment markers. (4876)
- Replaced typo mistake in subversion support. (4908)
- Terminal size is now correctly inferred when using Python 3 on Windows.
(4966)
- Abort if reading configuration causes encoding errors. (4976)
- Add a ``--no-user`` option and use it when installing build dependencies.
(5085)

Vendored Libraries
------------------

- Upgraded appdirs to 1.4.3.
- Upgraded CacheControl to 0.12.3.
- Vendored certifi at 2017.7.27.1.
- Vendored chardet at 3.0.4.
- Upgraded colorama to 0.3.9.
- Upgraded distlib to 0.2.6.
- Upgraded distro to 1.2.0.
- Vendored idna at idna==2.6.
- Upgraded ipaddress to 1.0.18.
- Vendored msgpack-python at 0.4.8.
- Removed the vendored ordereddict.
- Upgraded progress to 1.3.
- Upgraded pyparsing to 2.2.0.
- Upgraded pytoml to 0.1.14.
- Upgraded requests to 2.18.4.
- Upgraded pkg_resources (via setuptools) to 36.6.0.
- Upgraded six to 1.11.0.
- Vendored urllib3 at 1.22.
- Upgraded webencodings to 0.5.1.

Improved Documentation
----------------------

- Added documentation on usage of --build command line option (4262)
-  (4358)
- Document how to call pip from your code, including the fact that we do not
provide a Python API. (4743)

9.0.3

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

- Fix an error where the vendored requests was not correctly containing itself
to only the internal vendored prefix.
- Restore compatibility with 2.6.

9.0.2

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

- Fallback to using SecureTransport on macOS when the linked OpenSSL is too old
to support TLSv1.2.

9.0.1

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

- Correct the deprecation message when not specifying a --format so that it
uses the correct setting name (``format``) rather than the incorrect one
(``list_format``). (4058)
- Fix ``pip check`` to check all available distributions and not just the
local ones. (4083)
- Fix a crash on non ASCII characters from `lsb_release`. (4062)
- Fix an SyntaxError in an unused module of a vendored dependency. (4059)
- Fix UNC paths on Windows. (4064)

9.0.0

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

- **BACKWARD INCOMPATIBLE** Remove the attempted autodetection of requirement
names from URLs, URLs must include a name via ``egg=``.
- **DEPRECATION** ``pip install --egg`` have been deprecated and will be
removed in the future. This "feature" has a long list of drawbacks which
break nearly all of pip's other features in subtle and hard-to-diagnose
ways.
- **DEPRECATION** ``--default-vcs`` option. (4052)
- **WARNING** pip 9 cache can break forward compatibility with previous pip
versions if your package repository allows chunked responses. (4078)
- Add an ``--upgrade-strategy`` option to ``pip install``, to control how
dependency upgrades are managed. (3972)
- Add a ``pip check`` command to check installed packages dependencies. (3750)
- Add option allowing user to abort pip operation if file/directory exists
- Add Appveyor CI
- Uninstall existing packages when performing an editable installation of
the same packages. (1548)
- ``pip show`` is less verbose by default. ``--verbose`` prints multiline
fields. (3858)
- Add optional column formatting to ``pip list``. (3651)
- Add ``--not-required`` option to ``pip list``, which lists packages that are
not dependencies of other packages.
- Fix builds on systems with symlinked ``/tmp`` directory for custom
builds such as numpy. (3701)
- Fix regression in ``pip freeze``: when there is more than one git remote,
priority is given to the remote named ``origin``. (3708, 3616).
- Fix crash when calling ``pip freeze`` with invalid requirement installed.
(3704, 3681)
- Allow multiple ``--requirement`` files in ``pip freeze``. (3703)
- Implementation of pep-503 ``data-requires-python``. When this field is
present for a release link, pip will ignore the download when
installing to a Python version that doesn't satisfy the requirement.
- ``pip wheel`` now works on editable packages too (it was only working on
editable dependencies before); this allows running ``pip wheel`` on the result
of ``pip freeze`` in presence of editable requirements. (3695, 3291)
- Load credentials from ``.netrc`` files. (3715, 3569)
- Add ``--platform``, ``--python-version``, ``--implementation`` and ``--abi``
parameters to ``pip download``. These allow utilities and advanced users to
gather distributions for interpreters other than the one pip is being run on.
(3760)
- Skip scanning virtual environments, even when venv/bin/python is a dangling
symlink.
- Added ``pip completion`` support for the ``fish`` shell.
- Fix problems on Windows on Python 2 when username or hostname contains
non-ASCII characters. (3463, 3970, 4000)
- Use ``git fetch --tags`` to fetch tags in addition to everything else that
is normally fetched; this is necessary in case a git requirement url
points to a tag or commit that is not on a branch. (3791)
- Normalize package names before using in ``pip show`` (3976)
- Raise when Requires-Python do not match the running version and add
``--ignore-requires-python`` option as escape hatch. (3846)
- Report the correct installed version when performing an upgrade in some
corner cases. (2382
- Add ``-i`` shorthand for ``--index`` flag in ``pip search``.
- Do not optionally load C dependencies in requests. (1840, 2930, 3024)
- Strip authentication from SVN url prior to passing it to ``svn``.
(3697, 3209)
- Also install in platlib with ``--target`` option. (3694, 3682)
- Restore the ability to use inline comments in requirements files passed to
``pip freeze``. (3680)

8.1.2

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

- Fix a regression on systems with uninitialized local

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants