code: def find_function_calls(
      self, node: ast.AST, context: CodeExecutionContext
  ):
      if (
          isinstance(node, ast.Expr)
          and isinstance(node.value, ast.Call)
          and hasattr(node.value.func, "id")
          and context.skills_manager.skill_exists(node.value.func.id)
      ):
          function_name = node.value.func.id
          context.skills_manager.add_used_skill(function_name)
      for child_node in ast.iter_child_nodes(node):
          self.find_function_calls(child_node, context)
  
imports: import re
  import ast
  import uuid
  from collections import defaultdict
  import astor
  import pandas
  from pandasai.helpers.path import find_project_root
  from pandasai.helpers.skills_manager import SkillsManager
  from pandasai.helpers.sql import extract_table_names
  from .node_visitors import AssignmentVisitor, CallVisitor
  from .save_chart import add_save_chart
  from .optional import import_dependency
  from ..exceptions import BadImportError, MaliciousQueryError, NoResultFoundError, InvalidConfigError
  from ..constants import WHITELISTED_BUILTINS, WHITELISTED_LIBRARIES
  from typing import Union, List, Generator, Any
  from ..helpers.logger import Logger
  from ..schemas.df_config import Config
  import logging
  import traceback
label_desc: Use image node_id 10 for calling the CodeManager obj's underlying member method code with example usage: obj.find_function_calls(node, context) without return types