Repository :
http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
---------------------------------------------------------------
commit 1ff8f535da38a28068895d65230f74b34c6e29a1
Author: Peter Hatina <phatina(a)redhat.com>
Date: Thu Nov 29 15:10:05 2012 +0100
optimize methods and properties completion in _LmiCompleter
---------------------------------------------------------------
cli-tools/lmi-shell.py | 23 ++++++-----------------
1 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/cli-tools/lmi-shell.py b/cli-tools/lmi-shell.py
index a649b90..0b33d5e 100755
--- a/cli-tools/lmi-shell.py
+++ b/cli-tools/lmi-shell.py
@@ -114,27 +114,18 @@ class _LmiCompleter(rlcompleter.Completer):
cmd = ".".join(members[0:-1])
to_complete = members[-1]
expr = eval(cmd, self.namespace)
+ methods = self.__complete_object_methods(expr, to_complete)
+ properties = self.__complete_object_properties(expr, to_complete)
if isinstance(expr, LmiConnection):
namespaces = expr.namespaces()
for n in namespaces:
if n.lower().startswith(to_complete.lower()):
self._last_complete.append(cmd + "." + n)
- return self._last_complete[state]
+ methods = [x for x in methods if x not in namespaces]
elif isinstance(expr, _LmiNamespace):
for c in expr.classes():
if c.lower().startswith(to_complete.lower()):
self._last_complete.append(cmd + "." + c)
- methods = self.__complete_object_methods(expr, to_complete)
- self._last_complete.extend(cmd + "." + m + "(" for m
in methods)
- properties = self.__complete_object_properties(expr, to_complete)
- self._last_complete.extend(cmd + "." + p for p in properties)
- return self._last_complete[state]
- elif isinstance(expr, _LmiClass):
- methods = self.__complete_object_methods(expr, to_complete)
- self._last_complete= [cmd + "." + m + "(" for m in
methods]
- properties = self.__complete_object_properties(expr, to_complete)
- self._last_complete.extend(cmd + "." + p for p in properties)
- return self._last_complete[state]
elif isinstance(expr, _LmiInstance):
for m in expr.methods():
if m.lower().startswith(to_complete.lower()):
@@ -142,11 +133,9 @@ class _LmiCompleter(rlcompleter.Completer):
for p in expr.properties():
if p.lower().startswith(to_complete.lower()):
self._last_complete.append(cmd + "." + p)
- methods = self.__complete_object_methods(expr, to_complete)
- self._last_complete.extend(cmd + "." + m + "(" for m
in methods)
- properties = self.__complete_object_properties(expr, to_complete)
- self._last_complete.extend(cmd + "." + p for p in properties)
- return self._last_complete[state]
+ self._last_complete.extend(cmd + "." + m + "(" for m in
methods)
+ self._last_complete.extend(cmd + "." + p for p in properties)
+ return self._last_complete[state]
return rlcompleter.Completer.complete(self, text, state)
class LmiInteractiveShell(code.InteractiveConsole):