Skip to content

service_registry

dev_tool.container.service_registry

log = logging.getLogger(__name__) module-attribute

ServiceRegistry

A registry class for service registration.

This class provides methods for creating and registering all services with the dependency injection container.

register_all_services staticmethod

A method that registers all services with the dependency container.

Parameters:

Source code in dev_tool/container/service_registry.py
@staticmethod
def register_all_services(container: DependencyContainer) -> None:
    """
    A method that registers all services with the dependency container.

    :param container: The dependency injection container to register with.
    """

    container.register_factory(
        RequestService,
        lambda: RequestService(),
        singleton=True
    )

    container.register_factory(
        SQLiteDatabase,
        lambda: SQLiteDatabase(),
        singleton=True
    )

    container.register(SchedulerService, singleton=True)

    container.register_factory(
        PostgresService,
        lambda: PostgresService(),
        singleton=True
    )

    container.register_factory(
        PythonService,
        lambda: PythonService(),
        singleton=True
    )

    container.register_factory(
        ScriptingService,
        lambda: ScriptingService(),
        singleton=True
    )

    container.register(UpdateService, singleton=True)

    container.register_factory(
        DjangoService,
        lambda: DjangoService(),
        singleton=True
    )

    container.register_factory(
        ProfilingService,
        lambda: ProfilingService(),
        singleton=True
    )

    # container.register_factory(
    #     AIService,
    #     ServiceRegistry._create_ai_service,
    #     singleton=True
    # )

    container.register_factory(
        DockerService,
        ServiceRegistry._create_docker_service,
        singleton=True
    )

    container.register_factory(
        CoverageService, ServiceRegistry._create_coverage_service, singleton=False
    )

    container.register_factory(
        UnitTestService, ServiceRegistry._create_unittest_service, singleton=False
    )

    container.register(APIClientService, singleton=True)
    container.register(PortalService, singleton=True)
    container.register(NgrokService, singleton=True)

    ServiceRegistry._setup_application_hook(container)