summaryrefslogtreecommitdiffstats
path: root/command_manager.py
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2014-09-04 22:28:52 +0200
committerJan Pokorný <jpokorny@redhat.com>2014-09-04 22:28:52 +0200
commit749603e2faa6f44c26883cac83c41faad6b81fd4 (patch)
tree30ced06bd655ebf8fc09ac32a26bf1c4ca4aa1bb /command_manager.py
parentc584b8dfa318fc409660b974671162a5af1f49ca (diff)
downloadclufter-749603e2faa6f44c26883cac83c41faad6b81fd4.tar.gz
clufter-749603e2faa6f44c26883cac83c41faad6b81fd4.tar.xz
clufter-749603e2faa6f44c26883cac83c41faad6b81fd4.zip
Solve a "read-only dict as API" question once forever
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Diffstat (limited to 'command_manager.py')
-rw-r--r--command_manager.py14
1 files changed, 4 insertions, 10 deletions
diff --git a/command_manager.py b/command_manager.py
index 2de9f1a..0de06a2 100644
--- a/command_manager.py
+++ b/command_manager.py
@@ -35,10 +35,7 @@ class CommandManager(PluginManager):
def _init_handle_plugins(self, commands, flt_mgr, *args):
log.debug("Commands before resolving: {0}".format(commands))
- self._commands = self._resolve(flt_mgr.filters, commands, *args)
-
- def __iter__(self):
- return self._commands.itervalues()
+ return self._resolve(flt_mgr.filters, commands, *args)
@classmethod
def implicit(cls, *args):
@@ -92,10 +89,7 @@ class CommandManager(PluginManager):
@property
def commands(self):
- return self._commands.copy()
-
- def completion(self, completion):
- return completion(self._commands.iteritems())
+ return self._plugins
def __call__(self, parser, args=None):
"""Follow up of the entry point, facade to particular commands"""
@@ -106,7 +100,7 @@ class CommandManager(PluginManager):
or args[0]
while isinstance(command, basestring):
canonical_cmd = command
- command = self._commands.get(command, None)
+ command = self._plugins.get(command, None)
if not command:
raise CommandNotFoundError(cmd)
@@ -152,7 +146,7 @@ class CommandManager(PluginManager):
max(tuple(len(name) for name, _ in cat)) if cat else 0)
for i, cat in enumerate(
bifilter(lambda (name, obj): not isinstance(obj, basestring),
- self._commands.iteritems())
+ self._plugins.iteritems())
)
]
width = max(i[1] for i in cmds_aliases) + linesep_width