code: def init_evadb_instance(
      db_dir: str,
      host: str = None,
      port: int = None,
      custom_db_uri: str = None,
  ):
      if db_dir is None:
          db_dir = EvaDB_DATABASE_DIR
  
      config_obj = bootstrap_environment(
          Path(db_dir),
          evadb_installation_dir=Path(EvaDB_INSTALLATION_DIR),
      )
  
      catalog_uri = custom_db_uri or get_default_db_uri(Path(db_dir))
  
      # load all the config into the configuration_catalog table
      bootstrap_configs(get_catalog_instance(catalog_uri), config_obj)
  
      return EvaDBDatabase(db_dir, catalog_uri, get_catalog_instance)
  
file_path: evadb/evadb/database.py
imports: from dataclasses import dataclass
  from pathlib import Path
  from typing import TYPE_CHECKING, Callable
  from evadb.catalog.catalog_utils import bootstrap_configs, get_catalog_instance
  from evadb.configuration.bootstrap_environment import bootstrap_environment
  from evadb.configuration.constants import DB_DEFAULT_NAME, EvaDB_DATABASE_DIR, EvaDB_INSTALLATION_DIR
label_desc: Use image node_id 2 for calling a global function with example usage: init_evadb_instance(db_dir, host, port, custom_db_uri) and returns: EvaDBDatabase