from djagitit.db import SnowflakeDB, ReportingDB, S3 from loguru import logger _snw_instance: dict[str, SnowflakeDB] = {} _rdb_instance: ReportingDB | None = None _s3_instance: S3 | None = None def get_snw(warehouse: str) -> SnowflakeDB: if warehouse not in _snw_instance: logger.debug(f"Creating SnowflakeDB connection with warehouse {warehouse}") _snw_instance[warehouse] = SnowflakeDB(account="delphi.us-east-1", warehouse=warehouse) return _snw_instance[warehouse] def get_rdb() -> ReportingDB: global _rdb_instance if _rdb_instance is None: logger.debug("Creating ReportingDB connection") _rdb_instance = ReportingDB() return _rdb_instance def get_s3() -> S3: global _s3_instance if _s3_instance is None: logger.debug("Creating S3 connection") _s3_instance = S3() return _s3_instance