mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-05 12:36:54 +00:00
Allow plugins that are on by default to be ignored
Previously, to ensure that plugins on by default were reported, we added them to the select list. This means that ignoring them became impossible. To accomodate our reporting logic and a user's ability to ignore, we need to keep our select and extended select lists separated. This allows us to have a better understanding of who is selecting what, where, and how and make our decision as to whether or not an error should be reported more wisely. Closes #195
This commit is contained in:
parent
c0e5066577
commit
c670217c24
4 changed files with 15 additions and 4 deletions
|
|
@ -53,14 +53,12 @@ def aggregate_options(manager, arglist=None, values=None):
|
|||
list(extended_default_ignore))
|
||||
extended_default_ignore.update(default_values.ignore)
|
||||
default_values.ignore = list(extended_default_ignore)
|
||||
LOG.debug('Merged default ignore list: %s', default_values.ignore)
|
||||
|
||||
extended_default_select = manager.extended_default_select.copy()
|
||||
LOG.debug('Extended default select list: %s',
|
||||
list(extended_default_select))
|
||||
extended_default_select.update(default_values.select)
|
||||
default_values.select = list(extended_default_select)
|
||||
LOG.debug('Merged default ignore list: %s', default_values.ignore)
|
||||
LOG.debug('Merged default select list: %s', default_values.select)
|
||||
default_values.extended_default_select = extended_default_select
|
||||
|
||||
# Merge values parsed from config onto the default values returned
|
||||
for config_name, value in parsed_config.items():
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ class StyleGuide(object):
|
|||
self.formatter = formatter
|
||||
self.stats = statistics.Statistics()
|
||||
self._selected = tuple(options.select)
|
||||
self._extended_selected = tuple(options.extended_default_select)
|
||||
self._ignored = tuple(options.ignore)
|
||||
self._decision_cache = {}
|
||||
self._parsed_diff = {}
|
||||
|
|
@ -86,6 +87,13 @@ class StyleGuide(object):
|
|||
if code.startswith(self._selected):
|
||||
return Selected.Explicitly
|
||||
|
||||
# If it was not explicitly selected, it may have been implicitly
|
||||
# selected because the check comes from a plugin that is enabled by
|
||||
# default
|
||||
if (self._extended_selected and
|
||||
code.startswith(self._extended_selected)):
|
||||
return Selected.Implicitly
|
||||
|
||||
return Ignored.Implicitly
|
||||
|
||||
def is_user_ignored(self, code):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue