From 266f9945f4d8eb7247200d81ca5b9e825c672527 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 4 Mar 2021 17:29:04 +0100 Subject: [PATCH] Improved ServiceProvider --- src/cpl/dependency_injection/service_provider.py | 8 ++++---- src/cpl/dependency_injection/service_provider_base.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cpl/dependency_injection/service_provider.py b/src/cpl/dependency_injection/service_provider.py index e521c45a..bc030417 100644 --- a/src/cpl/dependency_injection/service_provider.py +++ b/src/cpl/dependency_injection/service_provider.py @@ -19,8 +19,8 @@ class ServiceProvider(ServiceProviderABC): self._app_runtime: ApplicationRuntimeABC = app_runtime self._database_context: Optional[DatabaseContextABC] = None - self._transient_services: dict[Type[ServiceABC], Type[ServiceABC]] = {} - self._scoped_services: dict[Type[ServiceABC], Type[ServiceABC]] = {} + self._transient_services: dict[Type[ServiceABC], Callable[ServiceABC]] = {} + self._scoped_services: dict[Type[ServiceABC], Callable[ServiceABC]] = {} self._singleton_services: dict[Type[ServiceABC], Callable[ServiceABC], ServiceABC] = {} def _create_instance(self, service: Union[Callable[ServiceABC], ServiceABC]) -> Callable[ServiceABC]: @@ -52,10 +52,10 @@ class ServiceProvider(ServiceProviderABC): def get_db_context(self) -> Callable[DatabaseContextABC]: return self._database_context - def add_transient(self, service_type: Type[ServiceABC], service: Type[ServiceABC]): + def add_transient(self, service_type: Type[ServiceABC], service: Callable[ServiceABC]): self._transient_services[service_type] = service - def add_scoped(self, service_type: Type[ServiceABC], service: Type[ServiceABC]): + def add_scoped(self, service_type: Type[ServiceABC], service: Callable[ServiceABC]): self._scoped_services[service_type] = service def add_singleton(self, service_type: Type[ServiceABC], service: Callable[ServiceABC]): diff --git a/src/cpl/dependency_injection/service_provider_base.py b/src/cpl/dependency_injection/service_provider_base.py index 90fbe700..f14e6cd9 100644 --- a/src/cpl/dependency_injection/service_provider_base.py +++ b/src/cpl/dependency_injection/service_provider_base.py @@ -18,10 +18,10 @@ class ServiceProviderABC(ABC): def get_db_context(self) -> Callable[DatabaseContextABC]: pass @abstractmethod - def add_transient(self, service_type: Type, service: Type): pass + def add_transient(self, service_type: Type, service: Callable): pass @abstractmethod - def add_scoped(self, service_type: Type, service: Type): pass + def add_scoped(self, service_type: Type, service: Callable): pass @abstractmethod def add_singleton(self, service_type: Type, service: Callable): pass