Changelog
### 3.8.2
```
-------------------
You can view the `3.8.2 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Improve performance by eliminating unncessary sort (See also `GitLab!429`_)
- Improve messaging of ``--jobs`` argument by utilizing ``argparse`` (See also
`GitLab!428`_, `GitLab567`_)
- Fix file configuration options to be relative to the config passed on the
command line (See also `GitLab!431`_, `GitLab651`_)
- Fix incorrect handling of ``--extend-exclude`` by treating its values as
files (See also `GitLab!432`_, `GitLab653`_)
.. all links
.. _3.8.2 milestone:
https://gitlab.com/pycqa/flake8/-/milestones/35
.. issue links
.. _GitLab567:
https://gitlab.com/pycqa/flake8/issues/567
.. _GitLab651:
https://gitlab.com/pycqa/flake8/issues/651
.. _GitLab653:
https://gitlab.com/pycqa/flake8/issues/653
.. merge request links
.. _GitLab!428:
https://gitlab.com/pycqa/flake8/merge_requests/428
.. _GitLab!429:
https://gitlab.com/pycqa/flake8/merge_requests/429
.. _GitLab!431:
https://gitlab.com/pycqa/flake8/merge_requests/431
.. _GitLab!432:
https://gitlab.com/pycqa/flake8/merge_requests/432
```
### 3.8.1
```
-------------------
You can view the `3.8.1 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Fix ``--output-file`` (regression in 3.8.0) (See also `GitLab!427`_,
`GitLab637`_)
.. all links
.. _3.8.1 milestone:
https://gitlab.com/pycqa/flake8/-/milestones/34
.. issue links
.. _GitLab637:
https://gitlab.com/pycqa/flake8/issues/637
.. merge request links
.. _GitLab!427:
https://gitlab.com/pycqa/flake8/merge_requests/427
```
### 3.8.0
```
-------------------
You can view the `3.8.0 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Fix logical checks which report positions out of bounds (See also
`GitLab!422`_, `GitLab635`_)
- Fix ``--exclude=.*`` accidentally matching ``.`` and ``..`` (See also
`GitLab!424`_, `GitLab632`_)
Deprecations
~~~~~~~~~~~~
- Add deprecation message for vcs hooks (See also `GitLab!420`_,
`GitLab568`_)
```
### 3.8.0a2
```
---------------------
You can view the `3.8.0 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Fix ``type="str"`` optparse options (See also `GitLab!419`_)
```
### 3.8.0a1
```
---------------------
You can view the `3.8.0 milestone`_ on GitLab for more details.
New Dependency Information
~~~~~~~~~~~~~~~~~~~~~~~~~~
- Remove dependency on ``entrypoints`` and add dependency on
``importlib-metadata`` (only for ``python<3.8``) (See also `GitLab!388`_,
`GitLab569`_)
- Pyflakes has been updated to >= 2.2.0, < 2.3.0 (See also `GitLab!417`_)
- pycodestyle has been updated to >= 2.6.0a1, < 2.7.0 (See also `GitLab!418`_)
Features
~~~~~~~~
- Add ``--extend-exclude`` option to add to ``--exclude`` without overwriting
(See also `GitLab!315`_, `GitLab535`_)
- Move argument parsing from ``optparse`` to ``argparse`` (See also
`GitLab!341`_
- Group plugin options in ``--help`` (See also `GitLab!342`_, `GitLab565`_)
- Remove parsing of ``verbose`` from configuration files as it was not
consistently applied (See also `GitLab!360`_, `GitLab439`_)
- Remove parsing of ``output_file`` from configuration files as it was not
consistently applied (See also `GitLab!361`_)
- Resolve configuration files relative to ``cwd`` instead of common prefix of
passed filenames. You may need to change ``flake8 subproject`` to
``cd subproject && flake8 .`` (See also `GitLab!363`_)
- Officially support python3.8 (See also `GitLab!377`_)
- ``--disable-noqa`` now also disables `` flake8: noqa`` (See also
`GitLab!380`_, `GitLab590`_)
- Ensure that a missing file produces a ``E902`` error (See also `GitLab!404`_,
`GitLab600`_)
- `` noqa`` comments now apply to all of the lines in an explicit ``\``
continuation or in a line continued by a multi-line string (See also
`GitLab!413`_, `GitLab375`_)
Bugs Fixed
~~~~~~~~~~
- Fix ``--exclude=./t.py`` to only match ``t.py`` at the top level (See also
`GitLab!311`_, `GitLab382`_)
- Fix ``--show-source`` when a file is indented with tabs (See also
`GitLab!339`_, `GitLab563`_)
- Fix crash when ``--max-line-length`` is given a non-integer (See also
`GitLab!341`_, `GitLab541`_)
- Prevent flip-flopping of ``indent_char`` causing extra ``E101`` errors (See
also `GitLab!357`_, `pycodestyle886`_)
- Only enable multiprocessing when the method is ``fork`` fixing issues
on macos with python3.8+ (See also `GitLab!366`_, `GitLab587`_) (note: this
fix also landed in 3.7.9)
- ``noqa`` is now only handled by flake8 fixing specific-noqa. Plugins
requesting this parameter will always receive ``False`` (See also
`GitLab!331`_, `GitLab552`_)
- Fix duplicate loading of plugins when invoked via ``python -m flake8`` (See
also `GitLab!388`_)
- Fix early exit when ``--exit-zero`` and ``--diff`` are provided and the diff
is empty (See also `GitLab!391`_)
- Consistently split lines when ``\f`` is present when reading from stdin (See
also `GitLab!406`_, `GitLab270`_)
Deprecations
~~~~~~~~~~~~
- ``python setup.py flake8`` (setuptools integration) is now deprecated and
will be removed in a future version (See also `GitLab!330`_, `GitLab544`_)
- ``type='string'`` (optparse) types are deprecated, use
``type=callable`` (argparse) instead. Support for ``type='string'`` will
be removed in a future version (See also `GitLab!341`_)
- ``%default`` in plugin option help text is deprecated, use ``%(default)s``
instead. Support for ``%default`` will be removed in a future version (See
also `GitLab!341`_)
- optparse-style ``action='callback'`` setting for options is deprecated, use
argparse action classes instead. This will be removed in a future version
(See also `GitLab!341`_)
.. all links
.. _3.8.0 milestone:
https://gitlab.com/pycqa/flake8/-/milestones/32
.. merge request links
.. _GitLab270:
https://gitlab.com/pycqa/flake8/-/issues/270
.. _GitLab375:
https://gitlab.com/pycqa/flake8/-/issues/375
.. _GitLab382:
https://gitlab.com/pycqa/flake8/-/issues/382
.. _GitLab439:
https://gitlab.com/pycqa/flake8/-/issues/439
.. _GitLab535:
https://gitlab.com/pycqa/flake8/-/issues/535
.. _GitLab541:
https://gitlab.com/pycqa/flake8/-/issues/541
.. _GitLab544:
https://gitlab.com/pycqa/flake8/-/issues/544
.. _GitLab552:
https://gitlab.com/pycqa/flake8/-/issues/552
.. _GitLab563:
https://gitlab.com/pycqa/flake8/-/issues/563
.. _GitLab565:
https://gitlab.com/pycqa/flake8/-/issues/565
.. _GitLab568:
https://gitlab.com/pycqa/flake8/-/issues/568
.. _GitLab569:
https://gitlab.com/pycqa/flake8/-/issues/569
.. _GitLab587:
https://gitlab.com/pycqa/flake8/-/issues/587
.. _GitLab590:
https://gitlab.com/pycqa/flake8/-/issues/590
.. _GitLab600:
https://gitlab.com/pycqa/flake8/-/issues/600
.. _GitLab632:
https://gitlab.com/pycqa/flake8/-/issues/632
.. _GitLab635:
https://gitlab.com/pycqa/flake8/-/issues/635
.. _pycodestyle886:
https://github.com/PyCQA/pycodestyle/issues/886
.. issue links
.. _GitLab!311:
https://gitlab.com/pycqa/flake8/-/merge_requests/311
.. _GitLab!315:
https://gitlab.com/pycqa/flake8/-/merge_requests/315
.. _GitLab!330:
https://gitlab.com/pycqa/flake8/-/merge_requests/330
.. _GitLab!331:
https://gitlab.com/pycqa/flake8/-/merge_requests/331
.. _GitLab!339:
https://gitlab.com/pycqa/flake8/-/merge_requests/339
.. _GitLab!341:
https://gitlab.com/pycqa/flake8/-/merge_requests/341
.. _GitLab!342:
https://gitlab.com/pycqa/flake8/-/merge_requests/342
.. _GitLab!357:
https://gitlab.com/pycqa/flake8/-/merge_requests/357
.. _GitLab!360:
https://gitlab.com/pycqa/flake8/-/merge_requests/360
.. _GitLab!361:
https://gitlab.com/pycqa/flake8/-/merge_requests/361
.. _GitLab!363:
https://gitlab.com/pycqa/flake8/-/merge_requests/363
.. _GitLab!366:
https://gitlab.com/pycqa/flake8/-/merge_requests/366
.. _GitLab!377:
https://gitlab.com/pycqa/flake8/-/merge_requests/377
.. _GitLab!380:
https://gitlab.com/pycqa/flake8/-/merge_requests/380
.. _GitLab!388:
https://gitlab.com/pycqa/flake8/-/merge_requests/388
.. _GitLab!391:
https://gitlab.com/pycqa/flake8/-/merge_requests/391
.. _GitLab!404:
https://gitlab.com/pycqa/flake8/-/merge_requests/404
.. _GitLab!406:
https://gitlab.com/pycqa/flake8/-/merge_requests/406
.. _GitLab!413:
https://gitlab.com/pycqa/flake8/-/merge_requests/413
.. _GitLab!417:
https://gitlab.com/pycqa/flake8/-/merge_requests/417
.. _GitLab!418:
https://gitlab.com/pycqa/flake8/-/merge_requests/418
.. _GitLab!419:
https://gitlab.com/pycqa/flake8/-/merge_requests/419
.. _GitLab!420:
https://gitlab.com/pycqa/flake8/-/merge_requests/420
.. _GitLab!422:
https://gitlab.com/pycqa/flake8/-/merge_requests/422
.. _GitLab!424:
https://gitlab.com/pycqa/flake8/-/merge_requests/424
```
### 3.7.9
```
-------------------
You can view the `3.7.9 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Disable multiprocessing when the multiprocessing method is ``spawn`` (such
as on macos in python3.8) (See also `GitLab!367`_, `GitLab587`_)
.. all links
.. _3.7.9 milestone:
https://gitlab.com/pycqa/flake8/milestones/33
.. issue links
.. _GitLab587:
https://gitlab.com/pycqa/flake8/issues/587
.. merge request links
.. _GitLab!367:
https://gitlab.com/pycqa/flake8/merge_requests/367
```
### 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
```
Links
- PyPI: https://pypi.org/project/flake8
- Changelog: https://pyup.io/changelogs/flake8/
- Repo: https://gitlab.com/pycqa/flake8
This PR updates flake8 from 3.7.7 to 3.8.2.
Changelog
### 3.8.2 ``` ------------------- You can view the `3.8.2 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Improve performance by eliminating unncessary sort (See also `GitLab!429`_) - Improve messaging of ``--jobs`` argument by utilizing ``argparse`` (See also `GitLab!428`_, `GitLab567`_) - Fix file configuration options to be relative to the config passed on the command line (See also `GitLab!431`_, `GitLab651`_) - Fix incorrect handling of ``--extend-exclude`` by treating its values as files (See also `GitLab!432`_, `GitLab653`_) .. all links .. _3.8.2 milestone: https://gitlab.com/pycqa/flake8/-/milestones/35 .. issue links .. _GitLab567: https://gitlab.com/pycqa/flake8/issues/567 .. _GitLab651: https://gitlab.com/pycqa/flake8/issues/651 .. _GitLab653: https://gitlab.com/pycqa/flake8/issues/653 .. merge request links .. _GitLab!428: https://gitlab.com/pycqa/flake8/merge_requests/428 .. _GitLab!429: https://gitlab.com/pycqa/flake8/merge_requests/429 .. _GitLab!431: https://gitlab.com/pycqa/flake8/merge_requests/431 .. _GitLab!432: https://gitlab.com/pycqa/flake8/merge_requests/432 ``` ### 3.8.1 ``` ------------------- You can view the `3.8.1 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``--output-file`` (regression in 3.8.0) (See also `GitLab!427`_, `GitLab637`_) .. all links .. _3.8.1 milestone: https://gitlab.com/pycqa/flake8/-/milestones/34 .. issue links .. _GitLab637: https://gitlab.com/pycqa/flake8/issues/637 .. merge request links .. _GitLab!427: https://gitlab.com/pycqa/flake8/merge_requests/427 ``` ### 3.8.0 ``` ------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix logical checks which report positions out of bounds (See also `GitLab!422`_, `GitLab635`_) - Fix ``--exclude=.*`` accidentally matching ``.`` and ``..`` (See also `GitLab!424`_, `GitLab632`_) Deprecations ~~~~~~~~~~~~ - Add deprecation message for vcs hooks (See also `GitLab!420`_, `GitLab568`_) ``` ### 3.8.0a2 ``` --------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``type="str"`` optparse options (See also `GitLab!419`_) ``` ### 3.8.0a1 ``` --------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Remove dependency on ``entrypoints`` and add dependency on ``importlib-metadata`` (only for ``python<3.8``) (See also `GitLab!388`_, `GitLab569`_) - Pyflakes has been updated to >= 2.2.0, < 2.3.0 (See also `GitLab!417`_) - pycodestyle has been updated to >= 2.6.0a1, < 2.7.0 (See also `GitLab!418`_) Features ~~~~~~~~ - Add ``--extend-exclude`` option to add to ``--exclude`` without overwriting (See also `GitLab!315`_, `GitLab535`_) - Move argument parsing from ``optparse`` to ``argparse`` (See also `GitLab!341`_ - Group plugin options in ``--help`` (See also `GitLab!342`_, `GitLab565`_) - Remove parsing of ``verbose`` from configuration files as it was not consistently applied (See also `GitLab!360`_, `GitLab439`_) - Remove parsing of ``output_file`` from configuration files as it was not consistently applied (See also `GitLab!361`_) - Resolve configuration files relative to ``cwd`` instead of common prefix of passed filenames. You may need to change ``flake8 subproject`` to ``cd subproject && flake8 .`` (See also `GitLab!363`_) - Officially support python3.8 (See also `GitLab!377`_) - ``--disable-noqa`` now also disables `` flake8: noqa`` (See also `GitLab!380`_, `GitLab590`_) - Ensure that a missing file produces a ``E902`` error (See also `GitLab!404`_, `GitLab600`_) - `` noqa`` comments now apply to all of the lines in an explicit ``\`` continuation or in a line continued by a multi-line string (See also `GitLab!413`_, `GitLab375`_) Bugs Fixed ~~~~~~~~~~ - Fix ``--exclude=./t.py`` to only match ``t.py`` at the top level (See also `GitLab!311`_, `GitLab382`_) - Fix ``--show-source`` when a file is indented with tabs (See also `GitLab!339`_, `GitLab563`_) - Fix crash when ``--max-line-length`` is given a non-integer (See also `GitLab!341`_, `GitLab541`_) - Prevent flip-flopping of ``indent_char`` causing extra ``E101`` errors (See also `GitLab!357`_, `pycodestyle886`_) - Only enable multiprocessing when the method is ``fork`` fixing issues on macos with python3.8+ (See also `GitLab!366`_, `GitLab587`_) (note: this fix also landed in 3.7.9) - ``noqa`` is now only handled by flake8 fixing specific-noqa. Plugins requesting this parameter will always receive ``False`` (See also `GitLab!331`_, `GitLab552`_) - Fix duplicate loading of plugins when invoked via ``python -m flake8`` (See also `GitLab!388`_) - Fix early exit when ``--exit-zero`` and ``--diff`` are provided and the diff is empty (See also `GitLab!391`_) - Consistently split lines when ``\f`` is present when reading from stdin (See also `GitLab!406`_, `GitLab270`_) Deprecations ~~~~~~~~~~~~ - ``python setup.py flake8`` (setuptools integration) is now deprecated and will be removed in a future version (See also `GitLab!330`_, `GitLab544`_) - ``type='string'`` (optparse) types are deprecated, use ``type=callable`` (argparse) instead. Support for ``type='string'`` will be removed in a future version (See also `GitLab!341`_) - ``%default`` in plugin option help text is deprecated, use ``%(default)s`` instead. Support for ``%default`` will be removed in a future version (See also `GitLab!341`_) - optparse-style ``action='callback'`` setting for options is deprecated, use argparse action classes instead. This will be removed in a future version (See also `GitLab!341`_) .. all links .. _3.8.0 milestone: https://gitlab.com/pycqa/flake8/-/milestones/32 .. merge request links .. _GitLab270: https://gitlab.com/pycqa/flake8/-/issues/270 .. _GitLab375: https://gitlab.com/pycqa/flake8/-/issues/375 .. _GitLab382: https://gitlab.com/pycqa/flake8/-/issues/382 .. _GitLab439: https://gitlab.com/pycqa/flake8/-/issues/439 .. _GitLab535: https://gitlab.com/pycqa/flake8/-/issues/535 .. _GitLab541: https://gitlab.com/pycqa/flake8/-/issues/541 .. _GitLab544: https://gitlab.com/pycqa/flake8/-/issues/544 .. _GitLab552: https://gitlab.com/pycqa/flake8/-/issues/552 .. _GitLab563: https://gitlab.com/pycqa/flake8/-/issues/563 .. _GitLab565: https://gitlab.com/pycqa/flake8/-/issues/565 .. _GitLab568: https://gitlab.com/pycqa/flake8/-/issues/568 .. _GitLab569: https://gitlab.com/pycqa/flake8/-/issues/569 .. _GitLab587: https://gitlab.com/pycqa/flake8/-/issues/587 .. _GitLab590: https://gitlab.com/pycqa/flake8/-/issues/590 .. _GitLab600: https://gitlab.com/pycqa/flake8/-/issues/600 .. _GitLab632: https://gitlab.com/pycqa/flake8/-/issues/632 .. _GitLab635: https://gitlab.com/pycqa/flake8/-/issues/635 .. _pycodestyle886: https://github.com/PyCQA/pycodestyle/issues/886 .. issue links .. _GitLab!311: https://gitlab.com/pycqa/flake8/-/merge_requests/311 .. _GitLab!315: https://gitlab.com/pycqa/flake8/-/merge_requests/315 .. _GitLab!330: https://gitlab.com/pycqa/flake8/-/merge_requests/330 .. _GitLab!331: https://gitlab.com/pycqa/flake8/-/merge_requests/331 .. _GitLab!339: https://gitlab.com/pycqa/flake8/-/merge_requests/339 .. _GitLab!341: https://gitlab.com/pycqa/flake8/-/merge_requests/341 .. _GitLab!342: https://gitlab.com/pycqa/flake8/-/merge_requests/342 .. _GitLab!357: https://gitlab.com/pycqa/flake8/-/merge_requests/357 .. _GitLab!360: https://gitlab.com/pycqa/flake8/-/merge_requests/360 .. _GitLab!361: https://gitlab.com/pycqa/flake8/-/merge_requests/361 .. _GitLab!363: https://gitlab.com/pycqa/flake8/-/merge_requests/363 .. _GitLab!366: https://gitlab.com/pycqa/flake8/-/merge_requests/366 .. _GitLab!377: https://gitlab.com/pycqa/flake8/-/merge_requests/377 .. _GitLab!380: https://gitlab.com/pycqa/flake8/-/merge_requests/380 .. _GitLab!388: https://gitlab.com/pycqa/flake8/-/merge_requests/388 .. _GitLab!391: https://gitlab.com/pycqa/flake8/-/merge_requests/391 .. _GitLab!404: https://gitlab.com/pycqa/flake8/-/merge_requests/404 .. _GitLab!406: https://gitlab.com/pycqa/flake8/-/merge_requests/406 .. _GitLab!413: https://gitlab.com/pycqa/flake8/-/merge_requests/413 .. _GitLab!417: https://gitlab.com/pycqa/flake8/-/merge_requests/417 .. _GitLab!418: https://gitlab.com/pycqa/flake8/-/merge_requests/418 .. _GitLab!419: https://gitlab.com/pycqa/flake8/-/merge_requests/419 .. _GitLab!420: https://gitlab.com/pycqa/flake8/-/merge_requests/420 .. _GitLab!422: https://gitlab.com/pycqa/flake8/-/merge_requests/422 .. _GitLab!424: https://gitlab.com/pycqa/flake8/-/merge_requests/424 ``` ### 3.7.9 ``` ------------------- You can view the `3.7.9 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Disable multiprocessing when the multiprocessing method is ``spawn`` (such as on macos in python3.8) (See also `GitLab!367`_, `GitLab587`_) .. all links .. _3.7.9 milestone: https://gitlab.com/pycqa/flake8/milestones/33 .. issue links .. _GitLab587: https://gitlab.com/pycqa/flake8/issues/587 .. merge request links .. _GitLab!367: https://gitlab.com/pycqa/flake8/merge_requests/367 ``` ### 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 ```Links
- PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://gitlab.com/pycqa/flake8