code: def create_table_catalog_entry_for_data_source(
      table_name: str, database_name: str, column_info: pd.DataFrame
  ):
      column_name_list = list(column_info["name"])
      column_type_list = [
          ColumnType.python_type_to_evadb_type(dtype)
          for dtype in list(column_info["dtype"])
      ]
      column_list = []
      for name, dtype in zip(column_name_list, column_type_list):
          column_list.append(ColumnCatalogEntry(name.lower(), dtype))
  
      # Assemble table.
      table_catalog_entry = TableCatalogEntry(
          name=table_name,
          file_url=None,
          table_type=TableType.NATIVE_DATA,
          columns=column_list,
          database_name=database_name,
      )
      return table_catalog_entry
  
imports: from __future__ import annotations
  import re
  from typing import TYPE_CHECKING, List
  import pandas
  from evadb.catalog.catalog_type import ColumnType, TableType
  from evadb.catalog.catalog_utils import get_video_table_column_definitions, is_document_table, is_pdf_table, is_string_col, is_video_table
  from evadb.catalog.models.column_catalog import ColumnCatalogEntry
  from evadb.catalog.models.table_catalog import TableCatalogEntry
  from evadb.catalog.sql_config import IDENTIFIER_COLUMN
  from evadb.catalog.sql_config import ROW_NUM_COLUMN
  from evadb.expression.abstract_expression import AbstractExpression, ExpressionType
  from evadb.expression.function_expression import FunctionExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.alias import Alias
  from evadb.parser.create_statement import ColumnDefinition
  from evadb.parser.table_ref import TableInfo, TableRef
  from evadb.third_party.databases.interface import get_database_handler
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 2 for calling a global function with example usage: create_table_catalog_entry_for_data_source(table_name, database_name, column_info) and returns: table_catalog_entry