Injected add_translation function from translation package

This commit is contained in:
2022-07-10 17:17:45 +02:00
parent e4f843829f
commit 6995b25518
5 changed files with 60 additions and 15 deletions

View File

@@ -1,7 +1,6 @@
from typing import Union, Type, Callable, Optional
from cpl_core.configuration.configuration_abc import ConfigurationABC
from cpl_core.console import Console
from cpl_core.database.context.database_context_abc import DatabaseContextABC
from cpl_core.database.database_settings import DatabaseSettings
from cpl_core.dependency_injection.service_collection_abc import ServiceCollectionABC
@@ -59,17 +58,6 @@ class ServiceCollection(ServiceCollectionABC):
for pipe in PipeABC.__subclasses__():
self.add_transient(PipeABC, pipe)
def add_translation(self):
try:
from cpl_translation.translation_service_abc import TranslationServiceABC
from cpl_translation.translation_service import TranslationService
from cpl_translation.translate_pipe import TranslatePipe
from cpl_translation.translation_settings import TranslationSettings
self.add_singleton(TranslationServiceABC, TranslationService)
self.add_transient(PipeABC, TranslatePipe)
except ImportError as e:
Console.error('cpl-translation is not installed', str(e))
def add_singleton(self, service_type: Union[type, object], service: Union[type, object] = None):
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service)
return self

View File

@@ -35,9 +35,9 @@ class ServiceCollectionABC(ABC):
r"""Adds the CPL internal pipes as transient"""
pass
@abstractmethod
def add_translation(self):
r"""Adds the CPL translation"""
raise NotImplementedError('You should install and use the cpl-translation package')
pass
@abstractmethod