docstr: Auto generate sync function calls from async
  Sync function calls should not be used in an async environment.
docstr_tok: ["Auto","generate","sync","function","calls","from","async","Sync","function","calls","should","not","be","used","in","an","async","environment","."]
code: def __getattr__(self, name):
      """
      Auto generate sync function calls from async
      Sync function calls should not be used in an async environment.
      """
      function_name_list = [
          "table",
          "load",
          "execute",
          "query",
          "create_function",
          "create_table",
          "create_vector_index",
          "drop_table",
          "drop_function",
          "drop_index",
          "df",
          "show",
          "insert" "explain",
          "rename",
          "fetch_one",
      ]
  
      if name not in function_name_list:
          nearest_function = find_nearest_word(name, function_name_list)
          raise AttributeError(
              f"EvaDBCursor does not contain a function named: '{name}'. Did you mean to run: '{nearest_function}()'?"
          )
  
      try:
          func = object.__getattribute__(self, "%s_async" % name)
      except Exception as e:
          raise e
  
      def func_sync(*args, **kwargs):
          loop = asyncio.get_event_loop()
          res = loop.run_until_complete(func(*args, **kwargs))
          return res
  
      return func_sync
  
imports: import asyncio
  import multiprocessing
  import pandas
  from evadb.configuration.constants import EvaDB_DATABASE_DIR
  from evadb.database import EvaDBDatabase, init_evadb_instance
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.functions.function_bootstrap_queries import init_builtin_functions
  from evadb.interfaces.relational.relation import EvaDBQuery
  from evadb.interfaces.relational.utils import try_binding
  from evadb.models.server.response import Response
  from evadb.models.storage.batch import Batch
  from evadb.parser.alias import Alias
  from evadb.parser.select_statement import SelectStatement
  from evadb.parser.utils import parse_create_function, parse_create_table, parse_create_vector_index, parse_drop_function, parse_drop_index, parse_drop_table, parse_explain, parse_insert, parse_load, parse_query, parse_rename, parse_show, parse_table_clause
  from evadb.server.command_handler import execute_statement
  from evadb.utils.generic_utils import find_nearest_word, is_ray_enabled_and_installed
  from evadb.utils.job_scheduler import JobScheduler
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 4 for calling the EvaDBCursor obj's underlying member method code with example usage: obj.__getattr__(name) and returns: func_sync, res