from functools import lru_cache from packages.adapters.in_memory import ( InMemoryAssetLibraryRepository, InMemoryAssetRepository, InMemoryIngestJobRepository, InMemoryProjectRepository, ) @lru_cache(maxsize=1) def get_project_repository() -> InMemoryProjectRepository: return InMemoryProjectRepository() @lru_cache(maxsize=1) def get_asset_library_repository() -> InMemoryAssetLibraryRepository: return InMemoryAssetLibraryRepository() @lru_cache(maxsize=1) def get_asset_repository() -> InMemoryAssetRepository: return InMemoryAssetRepository() @lru_cache(maxsize=1) def get_ingest_job_repository() -> InMemoryIngestJobRepository: return InMemoryIngestJobRepository()