diff --git a/src/cpl_cli/_templates/build/init_template.py b/src/cpl_cli/_templates/build/init_template.py index b6947e22..2e3911bc 100644 --- a/src/cpl_cli/_templates/build/init_template.py +++ b/src/cpl_cli/_templates/build/init_template.py @@ -27,6 +27,7 @@ class InitTemplate: from collections import namedtuple + $Imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') diff --git a/src/cpl_cli/publish/publisher_service.py b/src/cpl_cli/publish/publisher_service.py index 64988545..f08881d9 100644 --- a/src/cpl_cli/publish/publisher_service.py +++ b/src/cpl_cli/publish/publisher_service.py @@ -227,11 +227,19 @@ class PublisherService(PublisherABC): imports = '# imports:' else: is_started = False + build_ignore = False for line in module_file_lines: if line.__contains__('# imports'): is_started = True - if ((line.__contains__('from') or line.__contains__('import')) and is_started) or line.startswith('__cli_startup_extension__'): + if line.__contains__('# build-ignore'): + build_ignore = True + + if line.__contains__('# build-ignore-end') and is_started: + module_py_lines.append('# build-ignore-end'.replace('\n', '')) + build_ignore = False + + if ((line.__contains__('from') or line.__contains__('import')) and is_started) or line.startswith('__cli_startup_extension__') or build_ignore: module_py_lines.append(line.replace('\n', '')) if len(module_py_lines) > 0: diff --git a/src/cpl_core/dependency_injection/service_collection.py b/src/cpl_core/dependency_injection/service_collection.py index 24d4699d..8be84578 100644 --- a/src/cpl_core/dependency_injection/service_collection.py +++ b/src/cpl_core/dependency_injection/service_collection.py @@ -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 diff --git a/src/cpl_core/dependency_injection/service_collection_abc.py b/src/cpl_core/dependency_injection/service_collection_abc.py index d55390ef..604b6ac3 100644 --- a/src/cpl_core/dependency_injection/service_collection_abc.py +++ b/src/cpl_core/dependency_injection/service_collection_abc.py @@ -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 diff --git a/src/cpl_translation/__init__.py b/src/cpl_translation/__init__.py index ad5eca30..bcc2c35b 100644 --- a/src/cpl_translation/__init__.py +++ b/src/cpl_translation/__init__.py @@ -1 +1,49 @@ -# imports: +# -*- coding: utf-8 -*- + +""" +cpl-translation sh-edraft Common Python library Translation +~~~~~~~~~~~~~~~~~~~ + +sh-edraft Common Python library Python Translation + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'cpl_translation' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '2022.8.1.dev7' + +from collections import namedtuple + +# imports: +# build-ignore + + +def add_translation(self): + from cpl_core.console import Console + from cpl_core.pipes import PipeABC + from cpl_translation.translate_pipe import TranslatePipe + from cpl_translation.translation_service import TranslationService + from cpl_translation.translation_service_abc import TranslationServiceABC + + try: + self.add_singleton(TranslationServiceABC, TranslationService) + self.add_transient(PipeABC, TranslatePipe) + except ImportError as e: + Console.error('cpl-translation is not installed', str(e)) + + +def init(): + from cpl_core.dependency_injection import ServiceCollection + ServiceCollection.add_translation = add_translation + + +init() +# build-ignore-end + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='2022', minor='8', micro='1.dev7')