Source code for darca_repository.registry.factory

# registry/factory.py
# License: MIT

import os

from darca_repository.registry.base import RepositoryRegistry

# from darca_repository.registry.mysql_registry import MySQLRepositoryRegistry
from darca_repository.registry.yaml_registry import YamlRepositoryRegistry


[docs] def get_repository_registry() -> RepositoryRegistry: """ Factory to instantiate the appropriate RepositoryRegistry backend based on the DARCA_REPOSITORY_MODE environment variable. """ mode = os.getenv("DARCA_REPOSITORY_MODE", "yaml").lower() if mode == "yaml": profile_dir = os.getenv( "DARCA_REPOSITORY_PROFILE_DIR", os.path.expanduser("~/.local/share/darca_repository/profiles"), ) return YamlRepositoryRegistry(profile_dir) if mode == "mysql": raise NotImplementedError("MySQL registry is not implemented.") # return MySQLRepositoryRegistry( # connection_url=os.getenv("DARCA_REPOSITORY_DB_URL"), # user=os.getenv("DARCA_REPOSITORY_DB_USER"), # password=os.getenv("DARCA_REPOSITORY_DB_PASSWORD"), # ) raise ValueError(f"Unsupported DARCA_REPOSITORY_MODE: {mode}")