code: def _get_call_names_helper(node):
      
      if isinstance(node, ast.Name):
          if node.id not in BLACK_LISTED_CALL_NAMES:
              yield node.id
      elif isinstance(node, ast.Subscript):
          yield from _get_call_names_helper(node.value)
      elif isinstance(node, ast.Str):
          yield node.s
      elif isinstance(node, ast.Attribute):
          yield node.attr
          yield from _get_call_names_helper(node.value)
docs: Recursively finds all function names.