parameters: (self, text)
return_statement: return matches
docstring: Compute matches when text contains a dot.
  
          Assuming the text is of the form NAME.NAME....[NAME], and is
          evaluatable in self.namespace, it will be evaluated and its attributes
          (as revealed by dir()) are used as possible completions.  (For class
          instances, class members are also considered.)
  
          WARNING: this can still invoke arbitrary C code, if an object
          with a __getattr__ hook is evaluated.
docstring_summary: Compute matches when text contains a dot.
docstring_tokens: Compute matches when text contains a dot .
function: def attr_matches(self, text):
          """Compute matches when text contains a dot.
  
          Assuming the text is of the form NAME.NAME....[NAME], and is
          evaluatable in self.namespace, it will be evaluated and its attributes
          (as revealed by dir()) are used as possible completions.  (For class
          instances, class members are also considered.)
  
          WARNING: this can still invoke arbitrary C code, if an object
          with a __getattr__ hook is evaluated.
  
          """
          import re
          m = re.match(r"(\w+(\.\w+)*)\.(\w*)", text)
          if not m:
              return []
          expr, attr = m.group(1, 3)
          try:
              thisobject = eval(expr, self.namespace)
          except Exception:
              return []
  
          # 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.extend(get_class_members(thisobject.__class__))
          matches = []
          n = len(attr)
          for word in words:
              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
function_tokens: def attr_matches ( self , text ) : import re m = re . match ( r"(\w+(\.\w+)*)\.(\w*)" , text ) if not m : return [ ] expr , attr = m . group ( 1 , 3 ) try : thisobject = eval ( expr , self . namespace ) except Exception : return [ ] # 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 . extend ( get_class_members ( thisobject . __class__ ) ) matches = [ ] n = len ( attr ) for word in words : 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