code: def _get_names(node, result):
      
      if isinstance(node, ast.Name):
          return node.id + result
      elif isinstance(node, ast.Subscript):
          return result
      elif isinstance(node, ast.Starred):
          return _get_names(node.value, result)
      else:
          return _get_names(node.value, result + '.' + node.attr)
docs: Recursively finds all names.