class_docstr: Dataclass representing an entry in the `FunctionCatalog`.
  This is done to ensure we don't expose the sqlalchemy dependencies beyond catalog service. Further, sqlalchemy does not allow sharing of objects across threads.
class_docstr_tok: ["Dataclass","representing","an","entry","in","the","`","FunctionCatalog","`",".","This","is","done","to","ensure","we","do","n't","expose","the","sqlalchemy","dependencies","beyond","catalog","service",".","Further",",","sqlalchemy","does","not","allow","sharing","of","objects","across","threads","."]
code: def display_format(self):
      def _to_str(col):
          col_display = col.display_format()
          return f"{col_display['name']} {col_display['data_type']}"
  
      return {
          "name": self.name,
          "inputs": [_to_str(col) for col in self.args],
          "outputs": [_to_str(col) for col in self.outputs],
          "type": self.type,
          "impl": self.impl_file_path,
          "metadata": self.metadata,
      }
  
imports: import contextlib
  import datetime
  import json
  from dataclasses import dataclass, field
  from typing import List, Tuple
  import sqlalchemy
  from sqlalchemy.engine import Engine
  from sqlalchemy.types import TypeDecorator
  from sqlalchemy_utils import create_database, database_exists
  from evadb.catalog.catalog_type import ColumnType, NdArrayType, TableType, VectorStoreType
  from evadb.catalog.models.base_model import BaseModel
  from evadb.catalog.sql_config import CATALOG_TABLES
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 1 for calling the FunctionCatalogEntry obj's underlying member method code with example usage: obj.display_format() and returns: dict, col_display, str, col_display