summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--command_manager.py9
-rw-r--r--filter_manager.py5
-rw-r--r--plugin_registry.py10
3 files changed, 13 insertions, 11 deletions
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