diff options
| author | Ian Stapleton Cordasco <graffatcolmingov@gmail.com> | 2017-08-08 08:54:40 -0500 |
|---|---|---|
| committer | Ian Stapleton Cordasco <graffatcolmingov@gmail.com> | 2017-08-08 08:54:40 -0500 |
| commit | 156f90369f007928f26c6a4980b1ac0cc0691e53 (patch) | |
| tree | 4e0b91dc8dfffa1966fcaf770921adbf4d44d2b8 /src/flake8/options | |
| parent | d5dfd1180dffa5f479b286a40fad9a0b704ef62e (diff) | |
| download | flake8-156f90369f007928f26c6a4980b1ac0cc0691e53.tar.gz | |
Update our plugin registration for debugging
This allows us to report whether or not a plugin is local when users
provide `flake8 --bug-report` output.
Diffstat (limited to 'src/flake8/options')
| -rw-r--r-- | src/flake8/options/manager.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py index 7b23732..5b4796f 100644 --- a/src/flake8/options/manager.py +++ b/src/flake8/options/manager.py @@ -1,4 +1,5 @@ """Option handling and Option management logic.""" +import collections import logging import optparse # pylint: disable=deprecated-module @@ -153,6 +154,10 @@ class Option(object): return self._opt +PluginVersion = collections.namedtuple("PluginVersion", + ["name", "version", "local"]) + + class OptionManager(object): """Manage Options and OptionParser while adding post-processing.""" @@ -178,9 +183,9 @@ class OptionManager(object): self.extended_default_select = set() @staticmethod - def format_plugin(plugin_tuple): - """Convert a plugin tuple into a dictionary mapping name to value.""" - return dict(zip(["name", "version"], plugin_tuple)) + def format_plugin(plugin): + """Convert a PluginVersion into a dictionary mapping name to value.""" + return {attr: getattr(plugin, attr) for attr in ["name", "version"]} def add_option(self, *args, **kwargs): """Create and register a new option. @@ -306,7 +311,7 @@ class OptionManager(object): self._normalize(options) return options, xargs - def register_plugin(self, name, version): + def register_plugin(self, name, version, local=False): """Register a plugin relying on the OptionManager. :param str name: @@ -314,5 +319,7 @@ class OptionManager(object): attribute of the class or function loaded from the entry-point. :param str version: The version of the checker that we're using. + :param bool local: + Whether the plugin is local to the project/repository or not. """ - self.registered_plugins.add((name, version)) + self.registered_plugins.add(PluginVersion(name, version, local)) |
