mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-30 02:46:52 +00:00
Merge branch 'bug/318' into 'master'
Further improve our handling of --select and --ignore Closes #318 See merge request !187
This commit is contained in:
commit
fec980a856
4 changed files with 35 additions and 6 deletions
|
|
@ -3,6 +3,9 @@
|
|||
|
||||
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 `GitLab#318`_)
|
||||
|
||||
- Handle spaces as an alternate separate for error codes, e.g.,
|
||||
``--ignore 'E123 E234'``. (See also `GitLab#329`_)
|
||||
|
||||
|
|
@ -14,6 +17,8 @@ You can view the `3.4.0 milestone`_ on GitLab for more details.
|
|||
https://gitlab.com/pycqa/flake8/milestones/18
|
||||
|
||||
.. issue links
|
||||
.. _GitLab#318:
|
||||
https://gitlab.com/pycqa/flake8/issues/318
|
||||
.. _GitLab#329:
|
||||
https://gitlab.com/pycqa/flake8/issues/329
|
||||
.. _GitLab#330:
|
||||
|
|
|
|||
|
|
@ -74,6 +74,10 @@ class StyleGuide(object):
|
|||
reverse=True,
|
||||
))
|
||||
self._ignored = tuple(sorted(options.ignore, reverse=True))
|
||||
self._using_default_ignore = set(self._ignored) == set(defaults.IGNORE)
|
||||
self._using_default_select = (
|
||||
set(self._selected) == set(defaults.SELECT)
|
||||
)
|
||||
self._decision_cache = {}
|
||||
self._parsed_diff = {}
|
||||
|
||||
|
|
@ -135,14 +139,15 @@ class StyleGuide(object):
|
|||
ignore = find_first_match(code, self._ignored)
|
||||
|
||||
if select and ignore:
|
||||
if self._using_default_ignore and not self._using_default_select:
|
||||
return Decision.Selected
|
||||
return find_more_specific(select, ignore)
|
||||
if extra_select and ignore:
|
||||
return find_more_specific(extra_select, ignore)
|
||||
if select or (extra_select and self._selected == defaults.SELECT):
|
||||
if select or (extra_select and self._using_default_select):
|
||||
return Decision.Selected
|
||||
if select is None and extra_select is None and ignore is not None:
|
||||
return Decision.Ignored
|
||||
if self._selected != defaults.SELECT and select is None:
|
||||
if (select is None and
|
||||
(extra_select is None or not self._using_default_ignore)):
|
||||
return Decision.Ignored
|
||||
return Decision.Selected
|
||||
|
||||
|
|
|
|||
|
|
@ -125,6 +125,13 @@ def test_is_user_selected_excludes_errors(select_list, error_code):
|
|||
(['E41'], ['E2', 'E12', 'E4'], 'E410', style_guide.Decision.Selected),
|
||||
(['E'], ['F'], 'E410', style_guide.Decision.Selected),
|
||||
(['F'], [], 'E410', style_guide.Decision.Ignored),
|
||||
(['E'], defaults.IGNORE, 'E126', style_guide.Decision.Selected),
|
||||
(['W'], defaults.IGNORE, 'E126', style_guide.Decision.Ignored),
|
||||
(['E'], defaults.IGNORE, 'W391', style_guide.Decision.Ignored),
|
||||
(['E', 'W'], ['E13'], 'E131', style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, ['E13'], 'E131', style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, defaults.IGNORE, 'E126', style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, defaults.IGNORE, 'W391', style_guide.Decision.Selected),
|
||||
])
|
||||
def test_should_report_error(select_list, ignore_list, error_code, expected):
|
||||
"""Verify we decide when to report an error."""
|
||||
|
|
@ -141,7 +148,7 @@ def test_should_report_error(select_list, ignore_list, error_code, expected):
|
|||
(defaults.SELECT, [], ['I1'], [], 'I100',
|
||||
style_guide.Decision.Selected),
|
||||
(defaults.SELECT, [], ['I1'], [], 'I201',
|
||||
style_guide.Decision.Selected),
|
||||
style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, ['I2'], ['I1'], [], 'I101',
|
||||
style_guide.Decision.Selected),
|
||||
(defaults.SELECT, ['I2'], ['I1'], [], 'I201',
|
||||
|
|
@ -156,10 +163,22 @@ def test_should_report_error(select_list, ignore_list, error_code, expected):
|
|||
style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, ['U401'], [], ['U4'], 'U402',
|
||||
style_guide.Decision.Selected),
|
||||
(['E', 'W'], ['E13'], [], [], 'E131', style_guide.Decision.Ignored),
|
||||
(['E', 'W'], ['E13'], [], [], 'E126', style_guide.Decision.Selected),
|
||||
(['E2'], ['E21'], [], [], 'E221', style_guide.Decision.Selected),
|
||||
(['E2'], ['E21'], [], [], 'E212', style_guide.Decision.Ignored),
|
||||
(['F', 'W'], ['C90'], ['I1'], [], 'C901',
|
||||
style_guide.Decision.Ignored),
|
||||
(['E', 'W'], ['C'], [], [], 'E131',
|
||||
style_guide.Decision.Selected),
|
||||
(defaults.SELECT, defaults.IGNORE, [], ['I'], 'I101',
|
||||
style_guide.Decision.Selected),
|
||||
(defaults.SELECT, defaults.IGNORE, ['G'], ['I'], 'G101',
|
||||
style_guide.Decision.Selected),
|
||||
(defaults.SELECT, ['G1'], ['G'], ['I'], 'G101',
|
||||
style_guide.Decision.Ignored),
|
||||
(defaults.SELECT, ['E126'], [], ['I'], 'I101',
|
||||
style_guide.Decision.Selected),
|
||||
]
|
||||
)
|
||||
def test_decision_for_logic(select, ignore, extend_select, enabled_extensions,
|
||||
|
|
|
|||
2
tox.ini
2
tox.ini
|
|
@ -25,7 +25,7 @@ deps =
|
|||
wheel
|
||||
commands =
|
||||
python setup.py -qq bdist_wheel
|
||||
pip install --pre --find-links ./dist/ flake8
|
||||
pip install -U --pre --find-links ./dist/ flake8
|
||||
flake8 --version
|
||||
flake8 src/flake8/ tests/ setup.py
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue