From 45f915dc77d8f0631dbddc4c809b0ff479414d89 Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Sep 05 2014 17:26:40 +0000 Subject: plugin_registry: s/_init_handle_plugins/_init_plugins + add a note that we could somehow initialize plugins earlier Signed-off-by: Jan Pokorný --- diff --git a/command_manager.py b/command_manager.py index 0de06a2..3579260 100644 --- a/command_manager.py +++ b/command_manager.py @@ -33,10 +33,6 @@ class CommandManager(PluginManager): _default_registry = commands _implicit = None - def _init_handle_plugins(self, commands, flt_mgr, *args): - log.debug("Commands before resolving: {0}".format(commands)) - return self._resolve(flt_mgr.filters, commands, *args) - @classmethod def implicit(cls, *args): """Ad-hoc simply-cached construction of "implicit" manager's chain""" @@ -50,6 +46,11 @@ class CommandManager(PluginManager): cls._implicit = implicit return implicit + @classmethod + def _init_plugins(cls, commands, flt_mgr, *args): + log.debug("Commands before resolving: {0}".format(commands)) + return cls._resolve(flt_mgr.filters, commands, *args) + @staticmethod def _resolve(filters, commands, system='', system_extra=''): # name -> (cmd obj if not alias or resolvable name) diff --git a/filter_manager.py b/filter_manager.py index 7d96113..629a19f 100644 --- a/filter_manager.py +++ b/filter_manager.py @@ -23,9 +23,10 @@ class FilterManager(PluginManager): """Class responsible to manage filters and filtering itself""" _default_registry = filters - def _init_handle_plugins(self, filters, fmt_mgr): + @classmethod + def _init_plugins(cls, filters, fmt_mgr): log.debug("Filters before resolving: {0}".format(filters)) - return self._resolve(fmt_mgr.formats, filters) + return cls._resolve(fmt_mgr.formats, filters) @staticmethod def _resolve(formats, filters): diff --git a/plugin_registry.py b/plugin_registry.py index 40a1403..df5ce08 100644 --- a/plugin_registry.py +++ b/plugin_registry.py @@ -91,6 +91,7 @@ class PluginRegistry(type): ret = bases if not tuplist(bases) else \ super(PluginRegistry, registry).__new__(registry, name, bases, attrs) + # XXX init plugin here? registry._plugins[name] = ret finally: if registry._path_context is not None: @@ -220,13 +221,12 @@ class PluginManager(object): plugins = registry.discover(paths) plugins.update(kwargs.pop(registry.name if registry else '', {})) self._plugins = ProtectedDict( - self._init_handle_plugins(plugins, *args, **kwargs), + self._init_plugins(plugins, *args, **kwargs), ) - def _init_handle_plugins(self, plugins, *args, **kwargs): - log.info("Plugins under `{0}' manager left intact".format(self - ._registry - .name)) + @classmethod + def _init_plugins(cls, plugins, *args, **kwargs): + log.info("Plugins under `{0}' left intact".format(cls.__name__)) return plugins @property