code: def enumerate_method_calls(tokens, modules):
      
      out = []
      for index, tok in enumerate(tokens):
          token_type = tok[0]
          token_string = tok[1]
          if token_type == tokenize.NAME:
              next_tok_string = tokens[index+1][1]
              if next_tok_string == '(': # Method call
                  prev_tok_string = tokens[index-1][1]
                  # Check if we're attached to an object or module
                  if prev_tok_string == '.': # We're attached
                      prev_prev_tok_string = tokens[index-2][1]
                      if prev_prev_tok_string not in ['""',"''", ']', ')', '}']:
                          if prev_prev_tok_string not in modules:
                              to_replace = "%s.%s" % (
                                  prev_prev_tok_string, token_string)
                              if to_replace not in out:
                                  out.append(to_replace)
      return out
docs: Returns a list of all object (not module) method calls in the given tokens.
  
      *modules* is expected to be a list of all global modules imported into the
      source code we're working on.
  
      For example:
          >>> enumerate_method_calls(tokens)
          ['re.compile', 'sys.argv', 'f.write']