Implement --extend-ignore

Refs #365
This commit is contained in:
Ville Skyttä 2018-05-13 22:54:47 +02:00 committed by Ville Skyttä
parent 5221014947
commit e520c2d936
6 changed files with 52 additions and 1 deletions

View file

@ -107,6 +107,10 @@ And you should see something like:
--ignore=errors Comma-separated list of errors and warnings to ignore --ignore=errors Comma-separated list of errors and warnings to ignore
(or skip). For example, ``--ignore=E4,E51,W234``. (or skip). For example, ``--ignore=E4,E51,W234``.
(Default: E121,E123,E126,E226,E24,E704) (Default: E121,E123,E126,E226,E24,E704)
--extend-ignore=errors
Comma-separated list of errors and warnings to add to
the list of ignored ones. For example, ``--extend-
ignore=E4,E51,W234``.
--max-line-length=n Maximum allowed line length for the entirety of this --max-line-length=n Maximum allowed line length for the entirety of this
run. (Default: 79) run. (Default: 79)
--select=errors Comma-separated list of errors and warnings to enable. --select=errors Comma-separated list of errors and warnings to enable.

View file

@ -56,6 +56,8 @@ Index of Options
- :option:`flake8 --ignore` - :option:`flake8 --ignore`
- :option:`flake8 --extend-ignore`
- :option:`flake8 --max-line-length` - :option:`flake8 --max-line-length`
- :option:`flake8 --select` - :option:`flake8 --select`
@ -416,6 +418,37 @@ Options and their Descriptions
ignore = E121,E123 ignore = E121,E123
.. option:: --extend-ignore=<errors>
:ref:`Go back to index <top>`
Specify a list of codes to add to the list of ignored ones. Similar
considerations as in :option:`--ignore` apply here with regard to the
value.
The difference to the :option:`--ignore` option is, that this option can be
used to selectively add individual codes without overriding the default
list entirely.
Command-line example:
.. prompt:: bash
flake8 --extend-ignore=E4,E51,W234 dir/
This **can** be specified in config files.
Example config file usage:
.. code-block:: ini
extend-ignore =
E4,
E51,
W234
extend-ignore = E4,E51,W234
.. option:: --max-line-length=<n> .. option:: --max-line-length=<n>
:ref:`Go back to index <top>` :ref:`Go back to index <top>`

View file

@ -18,6 +18,7 @@ def register_default_options(option_manager):
- ``--format`` - ``--format``
- ``--hang-closing`` - ``--hang-closing``
- ``--ignore`` - ``--ignore``
- ``--extend-ignore``
- ``--max-line-length`` - ``--max-line-length``
- ``--select`` - ``--select``
- ``--disable-noqa`` - ``--disable-noqa``
@ -108,6 +109,13 @@ def register_default_options(option_manager):
' For example, ``--ignore=E4,E51,W234``. (Default: %default)', ' For example, ``--ignore=E4,E51,W234``. (Default: %default)',
) )
add_option(
'--extend-ignore', metavar='errors', default='',
parse_from_config=True, comma_separated_list=True,
help='Comma-separated list of errors and warnings to add to the list'
' of ignored ones. For example, ``--extend-ignore=E4,E51,W234``.',
)
add_option( add_option(
'--max-line-length', type='int', metavar='n', '--max-line-length', type='int', metavar='n',
default=defaults.MAX_LINE_LENGTH, parse_from_config=True, default=defaults.MAX_LINE_LENGTH, parse_from_config=True,

View file

@ -3,6 +3,7 @@ import collections
import contextlib import contextlib
import enum import enum
import functools import functools
import itertools
import linecache import linecache
import logging import logging
@ -166,7 +167,10 @@ class DecisionEngine(object):
self.selected + self.enabled_extensions, self.selected + self.enabled_extensions,
reverse=True, reverse=True,
)) ))
self.ignored = tuple(sorted(options.ignore, reverse=True)) self.ignored = tuple(sorted(
itertools.chain(options.ignore, options.extend_ignore),
reverse=True,
))
self.using_default_ignore = set(self.ignored) == set(defaults.IGNORE) self.using_default_ignore = set(self.ignored) == set(defaults.IGNORE)
self.using_default_select = ( self.using_default_select = (
set(self.selected) == set(defaults.SELECT) set(self.selected) == set(defaults.SELECT)

View file

@ -12,6 +12,7 @@ def create_options(**kwargs):
kwargs.setdefault('select', []) kwargs.setdefault('select', [])
kwargs.setdefault('extended_default_select', []) kwargs.setdefault('extended_default_select', [])
kwargs.setdefault('ignore', []) kwargs.setdefault('ignore', [])
kwargs.setdefault('extend_ignore', [])
kwargs.setdefault('disable_noqa', False) kwargs.setdefault('disable_noqa', False)
kwargs.setdefault('enable_extensions', []) kwargs.setdefault('enable_extensions', [])
return optparse.Values(kwargs) return optparse.Values(kwargs)

View file

@ -14,6 +14,7 @@ def create_options(**kwargs):
kwargs.setdefault('select', []) kwargs.setdefault('select', [])
kwargs.setdefault('extended_default_select', []) kwargs.setdefault('extended_default_select', [])
kwargs.setdefault('ignore', []) kwargs.setdefault('ignore', [])
kwargs.setdefault('extend_ignore', [])
kwargs.setdefault('disable_noqa', False) kwargs.setdefault('disable_noqa', False)
kwargs.setdefault('enable_extensions', []) kwargs.setdefault('enable_extensions', [])
return optparse.Values(kwargs) return optparse.Values(kwargs)