class_docstr: The `FunctionCatalog` catalog stores information about the user-defined functions (Functions) in the system. It maintains the following information for each Function
  `_row_id:` an autogenerated identifier
  `_impl_file_path: ` the path to the implementation script for the Function
  `_type:` an optional tag associated with the function (useful for grouping similar Functions, such as multiple object detection Functions)
code: def __init__(
      self, name: str, impl_file_path: str, type: str, checksum: str
  ):
      self._name = name
      self._impl_file_path = impl_file_path
      self._type = type
      self._checksum = checksum
  
file_path: evadb/evadb/catalog/models/function_catalog.py
imports: from __future__ import annotations
  from sqlalchemy import Column, String
  from sqlalchemy.orm import relationship
  from evadb.catalog.models.association_models import depend_function_and_function_cache
  from evadb.catalog.models.base_model import BaseModel
  from evadb.catalog.models.utils import FunctionCatalogEntry
label_desc: Use image node_id 1 to create a new FunctionCatalog object from inherited base classes: BaseModel with example: obj = FunctionCatalog(name, impl_file_path, type, checksum)