blob: c497e22834799ba85c92b392f1e2a4013768cb9b [file] [log] [blame]
from pypaimon.api.catalog import Catalog
class CatalogFactory:
@staticmethod
def create(catalog_options: dict) -> Catalog:
from pypaimon.pynative.catalog.catalog_option import CatalogOptions
from pypaimon.pynative.catalog.abstract_catalog import AbstractCatalog
from pypaimon.pynative.catalog.filesystem_catalog import FileSystemCatalog # noqa: F401
from pypaimon.pynative.catalog.hive_catalog import HiveCatalog # noqa: F401
identifier = catalog_options.get(CatalogOptions.METASTORE, "filesystem")
subclasses = AbstractCatalog.__subclasses__()
for subclass in subclasses:
if subclass.identifier() == identifier:
return subclass(catalog_options)
raise ValueError(f"Unknown catalog identifier: {identifier}")