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

Correctly handle exclude patterns in git_hook (now with unit tests) #2

Merged
merged 2 commits into from
Mar 7, 2015
Merged

Conversation

mpenkov
Copy link
Contributor

@mpenkov mpenkov commented Feb 7, 2015

The git hook wasn't handling exclude patterns correctly. These two commits fix that problem and add unit tests to demonstrate it.

@sigmavirus24
Copy link
Member

Hey @mpenkov !

Thanks for the tests! It seems like they aren't working exactly like you intended. If you look at the pull request you can see that Travis CI ran the tests and they failed. I wonder if you can write a test (without the fix_exclude function) that shows that it behaves correctly now. If you could just explain the old behaviour as a comment here, that would be helpful.

Also, for what it is worth, you don't need to keep opening new pull requests. If you look at #1 you'll see that it has your new commit d39fd7d there too. So just keep pushing to master and the new code will just appear here without having to close old PRs and open new ones.

Thanks,
Ian

@mpenkov
Copy link
Contributor Author

mpenkov commented Feb 8, 2015

Hi Ian,

Yes, you're right. It's behaving completely the opposite of what I intended - it's actually breaking the hook. I'm not sure why this happens - perhaps a difference in the environment (I'm on a Mac) is contributing to the cause. Both tests are passing on my side.

Is there a way I can run this in the same environment as Travis CI without pushing commits?

The old behavior, as I'm observing on my machine, is as follows. Assume we have a project with two files: myproject/main.py and myproject/test/test.py. Given an exclude pattern myproject/test/test.py, the flake8 style returned by get_style_guide has the exclude pattern (accessible through flake8_style.options.exclude) /Users/misha/git/flake8/myproject/test/test.py (the absolute path to the actual existing test.py file). When we run the git hook, it will copy myproject/main.py and myproject/test/test.py to some temporary directory (e.g. /tmp/Users/misha/git/flake8/myproject/main.py and /tmp/Users/misha/git/flake8/myproject/test/test.py, respectively), and then attempt to match those paths to the exclude pattern. For test.py, the match will fail, since the path /tmp/Users/misha/... does not match the pattern /Users/misha/...). Since the match fails, test.py won't be excluded, contrary to our intentions.

@sigmavirus24 sigmavirus24 merged commit de9fd7d into PyCQA:master Mar 7, 2015
@sigmavirus24
Copy link
Member

@mpenkov ✨ 🍰 ✨ Thank you!

Please feel free to send another Pull Request to add yourself to CONTRIBUTORS.txt

bors bot added a commit to duckinator/bork that referenced this pull request Sep 23, 2019
25: Initial Update r=duckinator a=pyup-bot



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 [twine](https://pypi.org/project/twine) from **1.13** to **1.15.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 1.15.0
   ```
   * :feature:`488` Improved output on ``check`` command:
  Prints a message when there are no distributions given to check.
  Improved handling of errors in a distribution&#39;s markup, avoiding
  messages flowing through to the next distribution&#39;s errors.
   ```
   
  
  
   ### 1.14.0
   ```
   * :feature:`456` Better error handling and gpg2 fallback if gpg not available.
* :bug:`341` Fail more gracefully when encountering bad metadata
* :feature:`459` Show Warehouse URL after uploading a package
* :feature:`310` Now provide a more meaningful error on redirect during upload.
   ```
   
  
  
   ### 1.13.0
   ```
   * :bug:`452 major` Restore prompts while retaining support for suppressing
  prompts.
* :bug:`447 major` Avoid requests-toolbelt to 0.9.0 to prevent attempting to
  use
  openssl when it isn&#39;t available.
* :feature:`427` Add disable_progress_bar option to disable tqdm.
* :feature:`426` Allow defining an empty username and password in .pypirc.
* :bug:`441 major` Only install pyblake2 if needed.
* :bug:`444 major` Use io.StringIO instead of StringIO.
* :bug:`436 major` Use modern Python language features.
* :support:`439` Refactor tox env and travis config.
* :bug:`435 major` Specify python_requires in setup.py
* :bug:`432 major` Use https URLs everywhere.
* :bug:`428 major` Fix --skip-existing for Nexus Repos.
* :feature:`419` Support keyring.get_credential.
* :feature:`418` Support keyring.get_username_and_password.
* :bug:`421 major` Remove unnecessary usage of readme_render.markdown.
* :feature:`416` Add Python 3.7 to classifiers.
* :bug:`412 major` Don&#39;t crash if there&#39;s no package description.
* :bug:`408 major` Fix keyring support.
   ```
   
  
  
   ### 1.12.1
   ```
   * :bug:`404` Fix regression with upload exit code
   ```
   
  
  
   ### 1.12.0
   ```
   * :feature:`395 major` Add ``twine check`` command to check long description
* :feature:`392 major` Drop support for Python 3.3
* :feature:`363` Empower ``--skip-existing`` for Artifactory repositories
* :bug:`367 major` Avoid MD5 when Python is compiled in FIPS mode
   ```
   
  
  
   ### 1.11.0
   ```
   * :bug:`269 major` Avoid uploading to PyPI when given alternate
  repository URL, and require ``http://`` or ``https://`` in
  ``repository_url``.
* :support:`277` Add instructions on how to use keyring.
* :support:`314` Add new maintainer, release checklists.
* :bug:`322 major` Raise exception if attempting upload to deprecated legacy
  PyPI URLs.
* :feature:`320` Remove PyPI as default ``register`` package index.
* :feature:`319` Support Metadata 2.1 (:pep:`566`), including Markdown
  for ``description`` fields.
* :support:`318` `Update PyPI URLs
  &lt;https://packaging.python.org/guides/migrating-to-pypi-org/&gt;`_.
   ```
   
  
  
   ### 1.10.0
   ```
   * :bug:`315 major` Degrade gracefully when keyring is unavailable
* :feature:`304` Reorganize &amp; improve user &amp; developer documentation.
* :feature:`46` Link to changelog from ``README``
* :feature:`295` Add doc building instructions
* :feature:`296` Add architecture overview to docs
* :feature:`303` Revise docs predicting future of ``twine``
* :bug:`298 major` Fix syntax highlighting in ``README``
* :bug:`299 major` Fix changelog formatting
* :bug:`200 major` Remove obsolete registration guidance
* :bug:`286 major` Fix Travis CI and test configuration
* :feature:`257` Declare support for Python 3.6
* :bug:`297 major` Fix Read the Docs, tox, Travis configuration
* :bug:`268 major` Print progress to ``stdout``, not ``stderr``
* :bug:`265 major` Fix ``--repository[-url]`` help text
* :feature:`256` Improve progressbar
   ```
   
  
  
   ### 1.9.1
   ```
   * :bug:`-` Blacklist known bad versions of Requests. See also :bug:`253`
   ```
   
  
  
   ### 1.9.0
   ```
   * :support:`-` Twine will now resolve passwords using the
  `keyring &lt;https://pypi.org/project/keyring/&gt;`_ if available.
  Module can be required with the ``keyring`` extra.
* :support:`-` Twine will use ``hashlib.blake2b`` on Python 3.6+
  instead of using pyblake2 for Blake2 hashes 256 bit hashes.
* :support:`-` Twine sends less information about the user&#39;s system in
  the User-Agent string. See also :bug:`229`
* :support:`-` Fix ``--skip-existing`` when used to upload a package
  for the first time.  See also :bug:`220`
* :support:`-` Fix precedence of ``--repository-url`` over
  ``--repository``. See also :bug:`206`
   ```
   
  
  
   ### 1.8.1
   ```
   * :support:`-` Check if a package exists if the URL is one of:

    * ``https://pypi.python.org/pypi/``
    * ``https://upload.pypi.org/``
    * ``https://upload.pypi.io/``

    This helps people with ``https://upload.pypi.io`` still in their
    :file:`.pypirc` file.
   ```
   
  
  
   ### 1.8.0
   ```
   * :feature:`201` Switch from upload.pypi.io to upload.pypi.org.
* :feature:`144` Retrieve configuration from the environment as a default.

    * Repository URL will default to ``TWINE_REPOSITORY``
    * Username will default to ``TWINE_USERNAME``
    * Password will default to ``TWINE_PASSWORD``

* :feature:`166` Allow the Repository URL to be provided on the
  command-line (``--repository-url``) or via an environment variable
  (``TWINE_REPOSITORY_URL``).
* :support:`-` Generate SHA256 digest for all packages
  by default.
* :feature:`171` Generate Blake2b 256 digests for packages *if* ``pyblake2``
  is installed. Users can use ``python -m pip install twine[with-blake2]``
  to have ``pyblake2`` installed with Twine.
* :support:`-` Stop testing on Python 2.6. 2.6 support will be &quot;best
  effort&quot; until 2.0.0
* :support:`-` Warn users if they receive a 500 error when uploading
  to ``*pypi.python.org``
   ```
   
  
  
   ### 1.7.4
   ```
   * :bug:`-` Correct a packaging error.
   ```
   
  
  
   ### 1.7.3
   ```
   * :bug:`195` Fix uploads to instances of pypiserver using
  ``--skip-existing``. We were not properly checking the return
  status code on the response after attempting an upload.
* :support:`-` Do not generate traffic to Legacy PyPI unless we&#39;re
  uploading to it or uploading to Warehouse (e.g., pypi.io). This
  avoids the attempt to upload a package to the index if we can find
  it on Legacy PyPI already.
   ```
   
  
  
   ### 1.7.2
   ```
   * :bug:`189`, :bug:`191` Fix issue where we were checking the existence of
  packages even if the user didn&#39;t specify ``--skip-existing``.
   ```
   
  
  
   ### 1.7.1
   ```
   * :bug:`187` Clint was not specified in the wheel metadata as a dependency.
   ```
   
  
  
   ### 1.7.0
   ```
   * :feature:`142` Support ``--cert`` and ``--client-cert`` command-line flags
  and config file options for feature parity with pip. This allows users to
  verify connections to servers other than PyPI (e.g., local package
  repositories) with different certificates.
* :feature:`152` Add progress bar to uploads.
* :feature:`162` Allow ``--skip-existing`` to work for 409 status codes.
* :feature:`167` Implement retries when the CDN in front of PyPI gives us a
  5xx error.
* :feature:`177` Switch Twine to upload to pypi.io instead of
  pypi.python.org.
* :bug:`186 major` Allow passwords to have ``%``\ s in them.
   ```
   
  
  
   ### 1.6.5
   ```
   * :bug:`155` Bump requests-toolbelt version to ensure we avoid
  ConnectionErrors
   ```
   
  
  
   ### 1.6.4
   ```
   * :bug:`145` Paths with hyphens in them break the Wheel regular expression.
* :bug:`146` Exception while accessing the ``repository`` key (sic)
  when raising a redirect exception.
   ```
   
  
  
   ### 1.6.3
   ```
   * :bug:`137`, :bug:`140` Uploading signatures was broken due to the pull
  request that added large file support via ``requests-toolbelt``. This
  caused a 500 error on PyPI and prevented package and signature upload in
  twine 1.6.0
   ```
   
  
  
   ### 1.6.2
   ```
   * :bug:`132` Upload signatures with packages appropriately

    As part of the refactor for the 1.6.0 release, we were using the wrong
    name to find the signature file.

    This also uncovered a bug where if you&#39;re using twine in a situation where
    ``*`` is not expanded by your shell, we might also miss uploading
    signatures to PyPI. Both were fixed as part of this.
   ```
   
  
  
   ### 1.6.1
   ```
   * :bug:`130` Fix signing support for uploads
   ```
   
  
  
   ### 1.6.0
   ```
   * :feature:`106` Upload wheels first to PyPI
* :feature:`104` Large file support via the ``requests-toolbelt``
* :bug:`92 major` Raise an exception on redirects
* :feature:`97` Allow the user to specify the location of their
  :file:`.pypirc`
* :feature:`115` Add the ``--skip-existing`` flag to ``twine upload`` to
  allow users to skip releases that already exist on PyPI.
* :bug:`114 major` Warnings triggered by pkginfo searching for
  ``PKG-INFO`` files should no longer be user visible.
* :bug:`116 major` Work around problems with Windows when using
  ``getpass.getpass``
* :bug:`111 major` Provide more helpful messages if :file:`.pypirc` is
  out of date.
* :feature:`8` Support registering new packages with ``twine register``
   ```
   
  
  
   ### 1.5.0
   ```
   * :bug:`85 major` Display information about the version of setuptools installed
* :bug:`61 major` Support deprecated pypirc file format
* :feature:`29` Support commands not named &quot;gpg&quot; for signing
* :support:`-` Add lower-limit to requests dependency
   ```
   
  
  
   ### 1.4.0
   ```
   * :bug:`28 major` Prevent ResourceWarning from being shown
* :bug:`34 major` List registered commands in help text
* :bug:`32 major` Use ``pkg_resources`` to load registered commands
* :bug:`47 major` Fix issue uploading packages with ``_``\ s in the name
* :bug:`26 major` Add support for uploading Windows installers
* :bug:`65 major` Expand globs and check for existence of dists to upload
* :feature:`13` Parse :file:`~/.pypirc` ourselves and use
  ``subprocess`` instead of the ``distutils.spawn`` module.
* :feature:`6` Switch to a git style dispatching for the commands to enable
  simpler commands and programmatic invocation.
   ```
   
  
  
   ### 1.3.0
   ```
   * :feature:`-` Additional functionality.
   ```
   
  
  
   ### 1.2.2
   ```
   * :feature:`0` Basic functionality.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/twine
  - Changelog: https://pyup.io/changelogs/twine/
  - Docs: https://twine.readthedocs.io/
</details>





### Update [wheel](https://pypi.org/project/wheel) from **0.33.6** to **0.33.6**.


<details>
  <summary>Changelog</summary>
  
  
   ### 0.33.6
   ```
   - Fixed regression from 0.33.5 that broke building binary wheels against the
  limited ABI
- Fixed egg2wheel compatibility with the future release of Python 3.10
  (PR by Anthony Sottile)
   ```
   
  
  
   ### 0.33.5
   ```
   - Don&#39;t add the ``m`` ABI flag to wheel names on Python 3.8 (PR by rdb)
- Updated ``MANIFEST.in`` to include many previously omitted files in the sdist
   ```
   
  
  
   ### 0.33.4
   ```
   - Reverted PR 289 (adding directory entries to the wheel file) due to
  incompatibility with ``distlib.wheel``
   ```
   
  
  
   ### 0.33.3
   ```
   - Fixed wheel build failures on some systems due to all attributes being
  preserved (PR by Matt Wozniski)
   ```
   
  
  
   ### 0.33.2
   ```
   - Fixed empty directories missing from the wheel (PR by Jason R. Coombs)
   ```
   
  
  
   ### 0.33.1
   ```
   - Fixed the ``--build-number`` option for ``wheel pack`` not being applied
   ```
   
  
  
   ### 0.33.0
   ```
   - Added the ``--build-number`` option to the ``wheel pack`` command
- Fixed bad shebangs sneaking into wheels
- Fixed documentation issue with ``wheel pack`` erroneously being called
  ``wheel repack``
- Fixed filenames with &quot;bad&quot; characters (like commas) not being quoted in
  ``RECORD`` (PR by Paul Moore)
- Sort requirements extras to ensure deterministic builds
  (PR by PoncinMatthieu)
- Forced ``inplace = False`` when building a C extension for the wheel
   ```
   
  
  
   ### 0.32.3
   ```
   - Fixed compatibility with Python 2.7.0 – 2.7.3
- Fixed handling of direct URL requirements with markers (PR by Benoit Pierre)
   ```
   
  
  
   ### 0.32.2
   ```
   - Fixed build number appearing in the ``.dist-info`` directory name
- Made wheel file name parsing more permissive
- Fixed wrong Python tag in wheels converted from eggs
  (PR by John T. Wodder II)
   ```
   
  
  
   ### 0.32.1
   ```
   - Fixed ``AttributeError: &#39;Requirement&#39; object has no attribute &#39;url&#39;`` on
  setuptools/pkg_resources versions older than 18.8 (PR by Benoit Pierre)
- Fixed ``AttributeError: &#39;module&#39; object has no attribute
  &#39;algorithms_available&#39;`` on Python &lt; 2.7.9 (PR by Benoit Pierre)
- Fixed permissions on the generated ``.dist-info/RECORD`` file
   ```
   
  
  
   ### 0.32.0
   ```
   - Removed wheel signing and verifying features
- Removed the &quot;wheel install&quot; and &quot;wheel installscripts&quot; commands
- Added the ``wheel pack`` command
- Allowed multiple license files to be specified using the ``license_files``
  option
- Deprecated the ``license_file`` option
- Eliminated duplicate lines from generated requirements in
  ``.dist-info/METADATA`` (thanks to Wim Glenn for the contribution)
- Fixed handling of direct URL specifiers in requirements
  (PR by Benoit Pierre)
- Fixed canonicalization of extras (PR by Benoit Pierre)
- Warn when the deprecated ``[wheel]`` section is used in ``setup.cfg``
  (PR by Jon Dufresne)
   ```
   
  
  
   ### 0.31.1
   ```
   - Fixed arch as ``None`` when converting eggs to wheels
   ```
   
  
  
   ### 0.31.0
   ```
   - Fixed displaying of errors on Python 3
- Fixed single digit versions in wheel files not being properly recognized
- Fixed wrong character encodings being used (instead of UTF-8) to read and
  write ``RECORD`` (this sometimes crashed bdist_wheel too)
- Enabled Zip64 support in wheels by default
- Metadata-Version is now 2.1
- Dropped DESCRIPTION.rst and metadata.json from the list of generated files
- Dropped support for the non-standard, undocumented ``provides-extra`` and
  ``requires-dist`` keywords in setup.cfg metadata
- Deprecated all wheel signing and signature verification commands
- Removed the (already defunct) ``tool`` extras from setup.py
   ```
   
  
  
   ### 0.30.0
   ```
   - Added py-limited-api {cp32|cp33|cp34|...} flag to produce cpNN.abi3.{arch}
  tags on CPython 3.
- Documented the ``license_file`` metadata key
- Improved Python, abi tagging for ``wheel convert``. Thanks Ales Erjavec.
- Fixed ``&gt;`` being prepended to lines starting with &quot;From&quot; in the long
  description
- Added support for specifying a build number (as per PEP 427).
  Thanks Ian Cordasco.
- Made the order of files in generated ZIP files deterministic.
  Thanks Matthias Bach.
- Made the order of requirements in metadata deterministic. Thanks Chris Lamb.
- Fixed ``wheel install`` clobbering existing files
- Improved the error message when trying to verify an unsigned wheel file
- Removed support for Python 2.6, 3.2 and 3.3.
   ```
   
  
  
   ### 0.29.0
   ```
   - Fix compression type of files in archive (Issue 155, Pull Request 62,
  thanks Xavier Fernandez)
   ```
   
  
  
   ### 0.28.0
   ```
   - Fix file modes in archive (Issue 154)
   ```
   
  
  
   ### 0.27.0
   ```
   - Support forcing a platform tag using ``--plat-name`` on pure-Python wheels,
  as well as nonstandard platform tags on non-pure wheels (Pull Request 60,
  Issue 144, thanks Andrés Díaz)
- Add SOABI tags to platform-specific wheels built for Python 2.X (Pull Request
  55, Issue 63, Issue 101)
- Support reproducible wheel files, wheels that can be rebuilt and will hash to
  the same values as previous builds (Pull Request 52, Issue 143, thanks
  Barry Warsaw)
- Support for changes in keyring &gt;= 8.0 (Pull Request 61, thanks Jason R.
  Coombs)
- Use the file context manager when checking if dependency_links.txt is empty,
  fixes problems building wheels under PyPy on Windows  (Issue 150, thanks
  Cosimo Lupo)
- Don&#39;t attempt to (recursively) create a build directory ending with ``..``
  (invalid on all platforms, but code was only executed on Windows) (Issue 91)
- Added the PyPA Code of Conduct (Pull Request 56)
   ```
   
  
  
   ### 0.26.0
   ```
   - Fix multiple entrypoint comparison failure on Python 3 (Issue 148)
   ```
   
  
  
   ### 0.25.0
   ```
   - Add Python 3.5 to tox configuration
- Deterministic (sorted) metadata
- Fix tagging for Python 3.5 compatibility
- Support py2-none-&#39;arch&#39; and py3-none-&#39;arch&#39; tags
- Treat data-only wheels as pure
- Write to temporary file and rename when using wheel install --force
   ```
   
  
  
   ### 0.24.0
   ```
   - The python tag used for pure-python packages is now .pyN (major version
  only). This change actually occurred in 0.23.0 when the --python-tag
  option was added, but was not explicitly mentioned in the changelog then.
- wininst2wheel and egg2wheel removed. Use &quot;wheel convert [archive]&quot;
  instead.
- Wheel now supports setuptools style conditional requirements via the
  extras_require={} syntax. Separate &#39;extra&#39; names from conditions using
  the : character. Wheel&#39;s own setup.py does this. (The empty-string
  extra is the same as install_requires.) These conditional requirements
  should work the same whether the package is installed by wheel or
  by setup.py.
   ```
   
  
  
   ### 0.23.0
   ```
   - Compatibility tag flags added to the bdist_wheel command
- sdist should include files necessary for tests
- &#39;wheel convert&#39; can now also convert unpacked eggs to wheel
- Rename pydist.json to metadata.json to avoid stepping on the PEP
- The --skip-scripts option has been removed, and not generating scripts is now
  the default. The option was a temporary approach until installers could
  generate scripts themselves. That is now the case with pip 1.5 and later.
  Note that using pip 1.4 to install a wheel without scripts will leave the
  installation without entry-point wrappers. The &quot;wheel install-scripts&quot;
  command can be used to generate the scripts in such cases.
- Thank you contributors
   ```
   
  
  
   ### 0.22.0
   ```
   - Include entry_points.txt, scripts a.k.a. commands, in experimental
  pydist.json
- Improved test_requires parsing
- Python 2.6 fixes, &quot;wheel version&quot; command courtesy pombredanne
   ```
   
  
  
   ### 0.21.0
   ```
   - Pregenerated scripts are the default again.
- &quot;setup.py bdist_wheel --skip-scripts&quot; turns them off.
- setuptools is no longer a listed requirement for the &#39;wheel&#39;
  package. It is of course still required in order for bdist_wheel
  to work.
- &quot;python -m wheel&quot; avoids importing pkg_resources until it&#39;s necessary.
   ```
   
  
  
   ### 0.20.0
   ```
   - No longer include console_scripts in wheels. Ordinary scripts (shell files,
  standalone Python files) are included as usual.
- Include new command &quot;python -m wheel install-scripts [distribution
  [distribution ...]]&quot; to install the console_scripts (setuptools-style
  scripts using pkg_resources) for a distribution.
   ```
   
  
  
   ### 0.19.0
   ```
   - pymeta.json becomes pydist.json
   ```
   
  
  
   ### 0.18.0
   ```
   - Python 3 Unicode improvements
   ```
   
  
  
   ### 0.17.0
   ```
   - Support latest PEP-426 &quot;pymeta.json&quot; (json-format metadata)
   ```
   
  
  
   ### 0.16.0
   ```
   - Python 2.6 compatibility bugfix (thanks John McFarlane)
- Bugfix for C-extension tags for CPython 3.3 (using SOABI)
- Bugfix for bdist_wininst converter &quot;wheel convert&quot;
- Bugfix for dists where &quot;is pure&quot; is None instead of True or False
- Python 3 fix for moving Unicode Description to metadata body
- Include rudimentary API documentation in Sphinx (thanks Kevin Horn)
   ```
   
  
  
   ### 0.15.0
   ```
   - Various improvements
   ```
   
  
  
   ### 0.14.0
   ```
   - Changed the signature format to better comply with the current JWS spec.
  Breaks all existing signatures.
- Include ``wheel unsign`` command to remove RECORD.jws from an archive.
- Put the description in the newly allowed payload section of PKG-INFO
  (METADATA) files.
   ```
   
  
  
   ### 0.13.0
   ```
   - Use distutils instead of sysconfig to get installation paths; can install
  headers.
- Improve WheelFile() sort.
- Allow bootstrap installs without any pkg_resources.
   ```
   
  
  
   ### 0.12.0
   ```
   - Unit test for wheel.tool.install
   ```
   
  
  
   ### 0.11.0
   ```
   - API cleanup
   ```
   
  
  
   ### 0.10.3
   ```
   - Scripts fixer fix
   ```
   
  
  
   ### 0.10.2
   ```
   - Fix keygen
   ```
   
  
  
   ### 0.10.1
   ```
   - Preserve attributes on install.
   ```
   
  
  
   ### 0.10.0
   ```
   - Include a copy of pkg_resources. Wheel can now install into a virtualenv
  that does not have distribute (though most packages still require
  pkg_resources to actually work; wheel install distribute)
- Define a new setup.cfg section [wheel]. universal=1 will
  apply the py2.py3-none-any tag for pure python wheels.
   ```
   
  
  
   ### 0.9.7
   ```
   - Only import dirspec when needed. dirspec is only needed to find the
  configuration for keygen/signing operations.
   ```
   
  
  
   ### 0.9.6
   ```
   - requires-dist from setup.cfg overwrites any requirements from setup.py
  Care must be taken that the requirements are the same in both cases,
  or just always install from wheel.
- drop dirspec requirement on win32
- improved command line utility, adds &#39;wheel convert [egg or wininst]&#39; to
  convert legacy binary formats to wheel
   ```
   
  
  
   ### 0.9.5
   ```
   - Wheel&#39;s own wheel file can be executed by Python, and can install itself:
  ``python wheel-0.9.5-py27-none-any/wheel install ...``
- Use argparse; basic ``wheel install`` command should run with only stdlib
  dependencies.
- Allow requires_dist in setup.cfg&#39;s [metadata] section. In addition to
  dependencies in setup.py, but will only be interpreted when installing
  from wheel, not from sdist. Can be qualified with environment markers.
   ```
   
  
  
   ### 0.9.4
   ```
   - Fix wheel.signatures in sdist
   ```
   
  
  
   ### 0.9.3
   ```
   - Integrated digital signatures support without C extensions.
- Integrated &quot;wheel install&quot; command (single package, no dependency
  resolution) including compatibility check.
- Support Python 3.3
- Use Metadata 1.3 (PEP 426)
   ```
   
  
  
   ### 0.9.2
   ```
   - Automatic signing if WHEEL_TOOL points to the wheel binary
- Even more Python 3 fixes
   ```
   
  
  
   ### 0.9.1
   ```
   - &#39;wheel sign&#39; uses the keys generated by &#39;wheel keygen&#39; (instead of generating
  a new key at random each time)
- Python 2/3 encoding/decoding fixes
- Run tests on Python 2.6 (without signature verification)
   ```
   
  
  
   ### 0.9
   ```
   - Updated digital signatures scheme
- Python 3 support for digital signatures
- Always verify RECORD hashes on extract
- &quot;wheel&quot; command line tool to sign, verify, unpack wheel files
   ```
   
  
  
   ### 0.8
   ```
   - none/any draft pep tags update
- improved wininst2wheel script
- doc changes and other improvements
   ```
   
  
  
   ### 0.7
   ```
   - sort .dist-info at end of wheel archive
- Windows &amp; Python 3 fixes from Paul Moore
- pep8
- scripts to convert wininst &amp; egg to wheel
   ```
   
  
  
   ### 0.6
   ```
   - require distribute &gt;= 0.6.28
- stop using verlib
   ```
   
  
  
   ### 0.5
   ```
   - working pretty well
   ```
   
  
  
   ### 0.4.2
   ```
   - hyphenated name fix
   ```
   
  
  
   ### 0.4
   ```
   - improve test coverage
- improve Windows compatibility
- include tox.ini courtesy of Marc Abramowitz
- draft hmac sha-256 signing function
   ```
   
  
  
   ### 0.3
   ```
   - prototype egg2wheel conversion script
   ```
   
  
  
   ### 0.2
   ```
   - Python 3 compatibility
   ```
   
  
  
   ### 0.1
   ```
   - Initial version
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/wheel
  - Changelog: https://pyup.io/changelogs/wheel/
  - Repo: https://github.com/pypa/wheel
</details>





### Update [flake8](https://pypi.org/project/flake8) from **3.5** to **3.7.8**.


<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.8
   ```
   -------------------

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

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

- Fix handling of ``Application.parse_preliminary_options_and_args`` when
  argv is an empty list (See also `GitLab!310`_, `GitLab518`_)

- Fix crash when a file parses but fails to tokenize (See also `GitLab!314`_,
  `GitLab532`_)

- Log the full traceback on plugin exceptions (See also `GitLab!317`_)

- Fix `` noqa: ...`` comments with multi-letter codes (See also `GitLab!326`_,
  `GitLab549`_)


.. all links
.. _3.7.8 milestone:
    https://gitlab.com/pycqa/flake8/milestones/31

.. issue links
.. _GitLab518:
    https://gitlab.com/pycqa/flake8/issues/518
.. _GitLab532:
    https://gitlab.com/pycqa/flake8/issues/532
.. _GitLab549:
    https://gitlab.com/pycqa/flake8/issues/549

.. merge request links
.. _GitLab!310:
    https://gitlab.com/pycqa/flake8/merge_requests/310
.. _GitLab!314:
    https://gitlab.com/pycqa/flake8/merge_requests/314
.. _GitLab!317:
    https://gitlab.com/pycqa/flake8/merge_requests/317
.. _GitLab!326:
    https://gitlab.com/pycqa/flake8/merge_requests/326
   ```
   
  
  
   ### 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 &quot;referenced before assignment&quot; 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`` &gt;= 0.3, &lt; 0.4 (See also `GitLab!264`_,
  `GitLab!288`_)

- Pyflakes has been updated to &gt;= 2.1.0, &lt; 2.2.0 (See also `GitLab!283`_,
  `GitLab!285`_)

- pycodestyle has been updated to &gt;= 2.5.0, &lt; 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 &gt;= 2.4.0, &lt; 2.5.0 (See also `GitLab381`_,
  `GitLab415`_, `GitLab!212`_, `GitLab!230`_, `GitLab!231`_)

- Pyflakes has been updated to &gt;= 2.0.0, &lt; 2.1.0 (See also `GitLab422`_,
  `GitLab!239`_)

- flake8 requires python 2.x &gt;= 2.7 or python 3.x &gt;= 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&#39;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 &quot;local&quot; 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 &#39;E123 E234&#39;``. (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 &quot;Error / Violation Codes&quot;)

- 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&#39;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&#39;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&#39; 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&#39;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&#39;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&#39;t pass the user&#39;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 &quot;off-by-default&quot; 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 &lt; 1.6`` (Related to `GitLab35`_)

  - ``mccabe &lt; 0.4``

  - ``pyflakes &lt; 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 &quot; flake8: noqa&quot; 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 &lt;https://flake8.readthedocs.io/&gt;`_
- 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&#39;s builtins pull request
- Fix the git hook
- Update pep8.py to the latest version
   ```
   
  
  
   ### 1.6.2
   ```
   ------------------

- fixed the NameError: global name &#39;message&#39; 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&#39;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 &quot;hg hook raises &#39;physical lines&#39;&quot; bug
- allow three argument form of raise
- now uses setuptools if available, for &#39;develop&#39; 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
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/flake8
  - Changelog: https://pyup.io/changelogs/flake8/
  - Repo: https://gitlab.com/pycqa/flake8
</details>





### Update [flake8-bugbear](https://pypi.org/project/flake8-bugbear) from **19.8.0** to **19.8.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 19.3.0
   ```
   Refer to README.md for changes.
   ```
   
  
  
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/flake8-bugbear
  - Changelog: https://pyup.io/changelogs/flake8-bugbear/
  - Repo: https://github.com/PyCQA/flake8-bugbear
</details>





### Update [flake8-commas](https://pypi.org/project/flake8-commas) from **2.0.0** to **2.0.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 2.0.0
   ```
   ------------------

- Hide ._base from flake8 --version.
  (`Issue 45 &lt;https://github.com/PyCQA/flake8-commas/issue/45&gt;`_)
- Update URL to https://github.com/PyCQA/flake8-commas/.
  (`Issue 51 &lt;https://github.com/PyCQA/flake8-commas/pull/51&gt;`_)
- Add check for trailing commas on bare tuples - C818, thanks to
  `Chris AtLee &lt;https://github.com/catlee&gt;`_ and
  `Arkadiusz Adamski &lt;https://github.com/ar4s/flake8_tuple&gt;`_
  (`PR 52 &lt;https://github.com/PyCQA/flake8-commas/pull/52&gt;`_)
   ```
   
  
  
   ### 1.0.0
   ```
   ------------------

- No changes from 0.5.1, just releasing the first major version.
   ```
   
  
  
   ### 0.5.1
   ```
   ------------------

- Refactor single/multi tuple/subscript to simply count commas in all cases.
- Prohibit trailing commas in lambda parameter lists.
- Fix a missing trailing comma false positive in subcripts with slices.
- Fix a prohibited trailing comma false positve in subscripts with slices.
- All (`Issue 48 &lt;https://github.com/flake8-commas/flake8-commas/pull/4…
bors bot added a commit to duckinator/emanate that referenced this pull request Jan 9, 2020
77: Pin flake8 to latest version 3.7.9 r=duckinator a=pyup-bot


This PR pins [flake8](https://pypi.org/project/flake8) to the latest release **3.7.9**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.8
   ```
   -------------------

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

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

- Fix handling of ``Application.parse_preliminary_options_and_args`` when
  argv is an empty list (See also `GitLab!310`_, `GitLab518`_)

- Fix crash when a file parses but fails to tokenize (See also `GitLab!314`_,
  `GitLab532`_)

- Log the full traceback on plugin exceptions (See also `GitLab!317`_)

- Fix `` noqa: ...`` comments with multi-letter codes (See also `GitLab!326`_,
  `GitLab549`_)


.. all links
.. _3.7.8 milestone:
    https://gitlab.com/pycqa/flake8/milestones/31

.. issue links
.. _GitLab518:
    https://gitlab.com/pycqa/flake8/issues/518
.. _GitLab532:
    https://gitlab.com/pycqa/flake8/issues/532
.. _GitLab549:
    https://gitlab.com/pycqa/flake8/issues/549

.. merge request links
.. _GitLab!310:
    https://gitlab.com/pycqa/flake8/merge_requests/310
.. _GitLab!314:
    https://gitlab.com/pycqa/flake8/merge_requests/314
.. _GitLab!317:
    https://gitlab.com/pycqa/flake8/merge_requests/317
.. _GitLab!326:
    https://gitlab.com/pycqa/flake8/merge_requests/326
   ```
   
  
  
   ### 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 &quot;referenced before assignment&quot; 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`` &gt;= 0.3, &lt; 0.4 (See also `GitLab!264`_,
  `GitLab!288`_)

- Pyflakes has been updated to &gt;= 2.1.0, &lt; 2.2.0 (See also `GitLab!283`_,
  `GitLab!285`_)

- pycodestyle has been updated to &gt;= 2.5.0, &lt; 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 &gt;= 2.4.0, &lt; 2.5.0 (See also `GitLab381`_,
  `GitLab415`_, `GitLab!212`_, `GitLab!230`_, `GitLab!231`_)

- Pyflakes has been updated to &gt;= 2.0.0, &lt; 2.1.0 (See also `GitLab422`_,
  `GitLab!239`_)

- flake8 requires python 2.x &gt;= 2.7 or python 3.x &gt;= 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&#39;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 &quot;local&quot; 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 &#39;E123 E234&#39;``. (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 &quot;Error / Violation Codes&quot;)

- 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&#39;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&#39;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&#39; 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&#39;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&#39;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&#39;t pass the user&#39;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 &quot;off-by-default&quot; 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 &lt; 1.6`` (Related to `GitLab35`_)

  - ``mccabe &lt; 0.4``

  - ``pyflakes &lt; 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: PyCQA/flake8#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 &quot; flake8: noqa&quot; 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 &lt;https://flake8.readthedocs.io/&gt;`_
- 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&#39;s builtins pull request
- Fix the git hook
- Update pep8.py to the latest version
   ```
   
  
  
   ### 1.6.2
   ```
   ------------------

- fixed the NameError: global name &#39;message&#39; 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&#39;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 &quot;hg hook raises &#39;physical lines&#39;&quot; bug
- allow three argument form of raise
- now uses setuptools if available, for &#39;develop&#39; 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
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/flake8
  - Changelog: https://pyup.io/changelogs/flake8/
  - Repo: https://gitlab.com/pycqa/flake8
</details>



Co-authored-by: pyup-bot <[email protected]>
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.

2 participants