julee.api.dependencies ====================== .. py:module:: julee.api.dependencies .. autoapi-nested-parse:: Dependency injection for julee FastAPI endpoints. This module provides dependency injection for the julee API endpoints, following the same patterns established in the sample project. It manages singleton lifecycle for expensive resources and provides clean separation between infrastructure concerns and business logic. The dependencies focus on real Minio implementations for production use, with test overrides available through FastAPI's dependency override system. Attributes ---------- .. autoapisummary:: julee.api.dependencies.logger Classes ------- .. autoapisummary:: julee.api.dependencies.DependencyContainer julee.api.dependencies.StartupDependenciesProvider Functions --------- .. autoapisummary:: julee.api.dependencies.get_assembly_specification_repository julee.api.dependencies.get_document_repository julee.api.dependencies.get_knowledge_service_config_repository julee.api.dependencies.get_knowledge_service_query_repository julee.api.dependencies.get_minio_client julee.api.dependencies.get_startup_dependencies julee.api.dependencies.get_temporal_client Module Contents --------------- .. py:class:: DependencyContainer Dependency injection container with singleton lifecycle management. Always creates real clients; mocks are provided by test overrides. .. py:method:: get_minio_client() :async: Get or create Minio client. .. py:method:: get_or_create(key, factory) :async: Get or create a singleton instance. .. py:method:: get_temporal_client() :async: Get or create Temporal client. .. py:class:: StartupDependenciesProvider(container) Provider for dependencies needed during application startup. This class provides clean access to repositories and services needed during the lifespan startup phase, without exposing internal container details or requiring FastAPI's dependency injection system. .. py:method:: get_assembly_specification_repository() :async: Get assembly specification repository for startup dependencies. .. py:method:: get_document_repository() :async: Get document repository for startup dependencies. .. py:method:: get_knowledge_service_config_repository() :async: Get knowledge service config repository for startup. .. py:method:: get_knowledge_service_query_repository() :async: Get knowledge service query repository for startup dependencies. .. py:method:: get_system_initialization_service() :async: Get fully configured system initialization service. .. py:attribute:: container .. py:attribute:: logger .. py:function:: get_assembly_specification_repository(minio_client = Depends(get_minio_client)) :async: FastAPI dependency for AssemblySpecificationRepository. .. py:function:: get_document_repository(minio_client = Depends(get_minio_client)) :async: FastAPI dependency for DocumentRepository. .. py:function:: get_knowledge_service_config_repository(minio_client = Depends(get_minio_client)) :async: FastAPI dependency for KnowledgeServiceConfigRepository. .. py:function:: get_knowledge_service_query_repository(minio_client = Depends(get_minio_client)) :async: FastAPI dependency for KnowledgeServiceQueryRepository. .. py:function:: get_minio_client() :async: FastAPI dependency for Minio client. .. py:function:: get_startup_dependencies() :async: Get startup dependencies provider for lifespan contexts. .. py:function:: get_temporal_client() :async: FastAPI dependency for Temporal client. .. py:data:: logger