]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue 3396. Fixed the autocompletion of 'int.', and worked
authorFacundo Batista <facundobatista@gmail.com>
Mon, 21 Jul 2008 14:28:17 +0000 (14:28 +0000)
committerFacundo Batista <facundobatista@gmail.com>
Mon, 21 Jul 2008 14:28:17 +0000 (14:28 +0000)
a little that part of the code, fixing a detail and enhancing
a bit others.

Lib/rlcompleter.py

index a08b825708799404d289ad5d4163400715c86639..3784cdb35d1fd32aed62c55e258ae440d6fabf82 100644 (file)
@@ -134,18 +134,23 @@ class Completer:
             return []
         expr, attr = m.group(1, 3)
         try:
-            object = eval(expr, self.namespace)
+            thisobject = eval(expr, self.namespace)
         except Exception:
             return []
-        words = dir(object)
-        if hasattr(object,'__class__'):
+
+        # get the content of the object, except __builtins__
+        words = dir(thisobject)
+        if "__builtins__" in words:
+            words.remove("__builtins__")
+
+        if hasattr(thisobject, '__class__'):
             words.append('__class__')
-            words = words + get_class_members(object.__class__)
+            words.extend(get_class_members(thisobject.__class__))
         matches = []
         n = len(attr)
         for word in words:
-            if word[:n] == attr and word != "__builtins__":
-                val = getattr(object, word)
+            if word[:n] == attr and hasattr(thisobject, word):
+                val = getattr(thisobject, word)
                 word = self._callable_postfix(val, "%s.%s" % (expr, word))
                 matches.append(word)
         return matches