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 | |
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.
-rw-r--r-- | Doc/library/rlcompleter.rst | 6 | ||||
-rw-r--r-- | Lib/rlcompleter.py | 20 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 20 insertions, 9 deletions
diff --git a/Doc/library/rlcompleter.rst b/Doc/library/rlcompleter.rst index 6816d39..060f296 100644 --- a/Doc/library/rlcompleter.rst +++ b/Doc/library/rlcompleter.rst @@ -20,9 +20,9 @@ Example:: >>> import readline >>> readline.parse_and_bind("tab: complete") >>> readline. <TAB PRESSED> - readline.__doc__ readline.get_line_buffer readline.read_init_file - readline.__file__ readline.insert_text readline.set_completer - readline.__name__ readline.parse_and_bind + readline.__doc__ readline.get_line_buffer( readline.read_init_file( + readline.__file__ readline.insert_text( readline.set_completer( + readline.__name__ readline.parse_and_bind( >>> readline. The :mod:`rlcompleter` module is designed for use with Python's interactive 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): @@ -33,6 +33,9 @@ Core and Builtins Library ------- +- Issue #449227: Now with the rlcompleter module, callable objects are added + "(" when completed. + - Issue #3190: Pydoc now hides the automatic module attribute __package__ (the handling is now the same as that of other special attributes like __name__). |