diff options
author | Facundo Batista <facundobatista@gmail.com> | 2008-07-02 16:52:55 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2008-07-02 16:52:55 (GMT) |
commit | 66c527755d0f751e4239328558082bf22f52d361 (patch) | |
tree | 3baf2dd3b7dc2aa79c29bda4e0a7e29d24f2353b /Lib | |
parent | 146b7ab818cadccf91ad98e64cfefb77705da0ca (diff) | |
download | cpython-66c527755d0f751e4239328558082bf22f52d361.zip cpython-66c527755d0f751e4239328558082bf22f52d361.tar.gz cpython-66c527755d0f751e4239328558082bf22f52d361.tar.bz2 |
Issue #449227: Now with the rlcompleter module, callable objects are
added a '(' when completed.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/rlcompleter.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py index 36965e6..a08b825 100644 --- a/Lib/rlcompleter.py +++ b/Lib/rlcompleter.py @@ -92,6 +92,11 @@ class Completer: except IndexError: return None + def _callable_postfix(self, val, word): + if callable(val): + word = word + "(" + return word + def global_matches(self, text): """Compute matches when text is a simple name. @@ -102,12 +107,13 @@ class Completer: import keyword matches = [] n = len(text) - for list in [keyword.kwlist, - __builtin__.__dict__, - self.namespace]: - for word in list: + for word in keyword.kwlist: + if word[:n] == text: + matches.append(word) + for nspace in [__builtin__.__dict__, self.namespace]: + for word, val in nspace.items(): if word[:n] == text and word != "__builtins__": - matches.append(word) + matches.append(self._callable_postfix(val, word)) return matches def attr_matches(self, text): @@ -139,7 +145,9 @@ class Completer: n = len(attr) for word in words: if word[:n] == attr and word != "__builtins__": - matches.append("%s.%s" % (expr, word)) + val = getattr(object, word) + word = self._callable_postfix(val, "%s.%s" % (expr, word)) + matches.append(word) return matches def get_class_members(klass): |