diff options
| author | Ian Cordasco <graffatcolmingov@gmail.com> | 2016-06-28 07:42:51 -0500 |
|---|---|---|
| committer | Ian Cordasco <graffatcolmingov@gmail.com> | 2016-06-28 07:42:51 -0500 |
| commit | ec2e601cbf9a56c9bee2ee3cc22999c795c1c824 (patch) | |
| tree | 5f9535dcd61d6c9925ccbb90acf9347733fab549 /src/flake8 | |
| parent | 31c32e3327c50ff713445280c061bf2c255feb19 (diff) | |
| download | flake8-ec2e601cbf9a56c9bee2ee3cc22999c795c1c824.tar.gz | |
Enable plugins automatically during registration
Previously the --select was only ever populated to E,F,W,C and so
plugins would not be reported when not off-by-default. This adds a
tiny shim so that we enable plugins that are not off-by-default and
:x
:x
Diffstat (limited to 'src/flake8')
| -rw-r--r-- | src/flake8/options/aggregator.py | 7 | ||||
| -rw-r--r-- | src/flake8/options/manager.py | 15 | ||||
| -rw-r--r-- | src/flake8/plugins/manager.py | 11 |
3 files changed, 31 insertions, 2 deletions
diff --git a/src/flake8/options/aggregator.py b/src/flake8/options/aggregator.py index 99d0cfe..a0ad535 100644 --- a/src/flake8/options/aggregator.py +++ b/src/flake8/options/aggregator.py @@ -53,7 +53,14 @@ 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) + + 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) # Merge values parsed from config onto the default values returned for config_name, value in parsed_config.items(): diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py index 8c3b6bb..fe3b13b 100644 --- a/src/flake8/options/manager.py +++ b/src/flake8/options/manager.py @@ -163,6 +163,7 @@ class OptionManager(object): self.version = version self.registered_plugins = set() self.extended_default_ignore = set() + self.extended_default_select = set() @staticmethod def format_plugin(plugin_tuple): @@ -201,8 +202,8 @@ class OptionManager(object): LOG.debug('Removing %r from the default ignore list', error_codes) for error_code in error_codes: try: - self.extend_default_ignore.remove(error_code) - except ValueError: + self.extended_default_ignore.remove(error_code) + except (ValueError, KeyError): LOG.debug('Attempted to remove %s from default ignore' ' but it was not a member of the list.', error_code) @@ -216,6 +217,16 @@ class OptionManager(object): LOG.debug('Extending default ignore list with %r', error_codes) self.extended_default_ignore.update(error_codes) + def extend_default_select(self, error_codes): + """Extend the default select list with the error codes provided. + + :param list error_codes: + List of strings that are the error/warning codes with which + to extend the default select list. + """ + LOG.debug('Extending default select list with %r', error_codes) + self.extended_default_select.update(error_codes) + def generate_versions(self, format_str='%(name)s: %(version)s'): """Generate a comma-separated list of versions of plugins.""" return ', '.join( diff --git a/src/flake8/plugins/manager.py b/src/flake8/plugins/manager.py index d08d542..697b35f 100644 --- a/src/flake8/plugins/manager.py +++ b/src/flake8/plugins/manager.py @@ -161,6 +161,7 @@ class Plugin(object): def enable(self, optmanager): """Remove plugin name from the default ignore list.""" optmanager.remove_from_default_ignore([self.name]) + optmanager.extend_default_select([self.name]) def disable(self, optmanager): """Add the plugin name to the default ignore list.""" @@ -418,6 +419,16 @@ class Checkers(PluginTypeManager): if argument_name == plugin.parameters[0]: yield plugin + def register_options(self, optmanager): + """Register all of the checkers' options to the OptionManager.""" + super(Checkers, self).register_options(optmanager) + + def conditionally_enable(plugin): + if plugin.group() is None and not plugin.off_by_default: + plugin.enable(optmanager) + + list(self.manager.map(conditionally_enable)) + @property def ast_plugins(self): """List of plugins that expect the AST tree.""" |
