mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-10 14:54:17 +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.
|
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.,
|
- Handle spaces as an alternate separate for error codes, e.g.,
|
||||||
``--ignore 'E123 E234'``. (See also `GitLab#329`_)
|
``--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
|
https://gitlab.com/pycqa/flake8/milestones/18
|
||||||
|
|
||||||
.. issue links
|
.. issue links
|
||||||
|
.. _GitLab#318:
|
||||||
|
https://gitlab.com/pycqa/flake8/issues/318
|
||||||
.. _GitLab#329:
|
.. _GitLab#329:
|
||||||
https://gitlab.com/pycqa/flake8/issues/329
|
https://gitlab.com/pycqa/flake8/issues/329
|
||||||
.. _GitLab#330:
|
.. _GitLab#330:
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,10 @@ class StyleGuide(object):
|
||||||
reverse=True,
|
reverse=True,
|
||||||
))
|
))
|
||||||
self._ignored = tuple(sorted(options.ignore, 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._decision_cache = {}
|
||||||
self._parsed_diff = {}
|
self._parsed_diff = {}
|
||||||
|
|
||||||
|
|
@ -135,14 +139,15 @@ class StyleGuide(object):
|
||||||
ignore = find_first_match(code, self._ignored)
|
ignore = find_first_match(code, self._ignored)
|
||||||
|
|
||||||
if select and ignore:
|
if select and ignore:
|
||||||
|
if self._using_default_ignore and not self._using_default_select:
|
||||||
|
return Decision.Selected
|
||||||
return find_more_specific(select, ignore)
|
return find_more_specific(select, ignore)
|
||||||
if extra_select and ignore:
|
if extra_select and ignore:
|
||||||
return find_more_specific(extra_select, 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
|
return Decision.Selected
|
||||||
if select is None and extra_select is None and ignore is not None:
|
if (select is None and
|
||||||
return Decision.Ignored
|
(extra_select is None or not self._using_default_ignore)):
|
||||||
if self._selected != defaults.SELECT and select is None:
|
|
||||||
return Decision.Ignored
|
return Decision.Ignored
|
||||||
return Decision.Selected
|
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),
|
(['E41'], ['E2', 'E12', 'E4'], 'E410', style_guide.Decision.Selected),
|
||||||
(['E'], ['F'], 'E410', style_guide.Decision.Selected),
|
(['E'], ['F'], 'E410', style_guide.Decision.Selected),
|
||||||
(['F'], [], 'E410', style_guide.Decision.Ignored),
|
(['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):
|
def test_should_report_error(select_list, ignore_list, error_code, expected):
|
||||||
"""Verify we decide when to report an error."""
|
"""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',
|
(defaults.SELECT, [], ['I1'], [], 'I100',
|
||||||
style_guide.Decision.Selected),
|
style_guide.Decision.Selected),
|
||||||
(defaults.SELECT, [], ['I1'], [], 'I201',
|
(defaults.SELECT, [], ['I1'], [], 'I201',
|
||||||
style_guide.Decision.Selected),
|
style_guide.Decision.Ignored),
|
||||||
(defaults.SELECT, ['I2'], ['I1'], [], 'I101',
|
(defaults.SELECT, ['I2'], ['I1'], [], 'I101',
|
||||||
style_guide.Decision.Selected),
|
style_guide.Decision.Selected),
|
||||||
(defaults.SELECT, ['I2'], ['I1'], [], 'I201',
|
(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),
|
style_guide.Decision.Ignored),
|
||||||
(defaults.SELECT, ['U401'], [], ['U4'], 'U402',
|
(defaults.SELECT, ['U401'], [], ['U4'], 'U402',
|
||||||
style_guide.Decision.Selected),
|
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'], [], [], 'E221', style_guide.Decision.Selected),
|
||||||
(['E2'], ['E21'], [], [], 'E212', style_guide.Decision.Ignored),
|
(['E2'], ['E21'], [], [], 'E212', style_guide.Decision.Ignored),
|
||||||
(['F', 'W'], ['C90'], ['I1'], [], 'C901',
|
(['F', 'W'], ['C90'], ['I1'], [], 'C901',
|
||||||
style_guide.Decision.Ignored),
|
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,
|
def test_decision_for_logic(select, ignore, extend_select, enabled_extensions,
|
||||||
|
|
|
||||||
2
tox.ini
2
tox.ini
|
|
@ -25,7 +25,7 @@ deps =
|
||||||
wheel
|
wheel
|
||||||
commands =
|
commands =
|
||||||
python setup.py -qq bdist_wheel
|
python setup.py -qq bdist_wheel
|
||||||
pip install --pre --find-links ./dist/ flake8
|
pip install -U --pre --find-links ./dist/ flake8
|
||||||
flake8 --version
|
flake8 --version
|
||||||
flake8 src/flake8/ tests/ setup.py
|
flake8 src/flake8/ tests/ setup.py
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue