From 7ee2eff483a6bc515d483282bb5f899be998f725 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 15 Dec 2020 17:27:52 +0100 Subject: [PATCH] Improved publisher --- src/sh_edraft/coding/model/version_enum.py | 6 +++--- src/sh_edraft/console/console.py | 12 ++++++++++++ .../publishing/model/publish_settings_model.py | 12 ++++++++---- src/sh_edraft/publishing/model/template.py | 5 ++--- src/tests/services/publishing/publisher.py | 2 +- src/tests_dev/appsettings.edrafts-pc.json | 14 +++++++------- src/tests_dev/publisher.py | 11 ++++++++--- 7 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/sh_edraft/coding/model/version_enum.py b/src/sh_edraft/coding/model/version_enum.py index 446b6e16..8c294c1e 100644 --- a/src/sh_edraft/coding/model/version_enum.py +++ b/src/sh_edraft/coding/model/version_enum.py @@ -3,6 +3,6 @@ from enum import Enum class VersionEnum(Enum): - Major = 'major' - Minor = 'minor' - Micro = 'micro' + Major = 'Major' + Minor = 'Minor' + Micro = 'Micro' diff --git a/src/sh_edraft/console/console.py b/src/sh_edraft/console/console.py index fb4612d9..2418cf8a 100644 --- a/src/sh_edraft/console/console.py +++ b/src/sh_edraft/console/console.py @@ -11,6 +11,7 @@ class Console: _foreground_color: ForegroundColor = ForegroundColor.default _x: Optional[int] = None _y: Optional[int] = None + _disabled: bool = False """ Properties @@ -60,6 +61,9 @@ class Console: @classmethod def _output(cls, string: str, x: int = None, y: int = None, end='\n'): + if cls._disabled: + return + args = [] colored_args = [] @@ -95,6 +99,14 @@ class Console: Console.read_line() exit() + @classmethod + def disable(cls): + cls._disabled = True + + @classmethod + def enable(cls): + cls._disabled = False + @classmethod def read(cls, output: str = None) -> str: if output is not None: diff --git a/src/sh_edraft/publishing/model/publish_settings_model.py b/src/sh_edraft/publishing/model/publish_settings_model.py index 9412be5b..17b6b83c 100644 --- a/src/sh_edraft/publishing/model/publish_settings_model.py +++ b/src/sh_edraft/publishing/model/publish_settings_model.py @@ -15,10 +15,10 @@ class PublishSettings(ConfigurationModelBase): self._source_path: Optional[str] = None self._dist_path: Optional[str] = None - self._templates: Optional[list[Template]] = None + self._templates: list[Template] = [] - self._included_files: Optional[list[str]] = None - self._excluded_files: Optional[list[str]] = None + self._included_files: list[str] = [] + self._excluded_files: list[str] = [] self._template_ending: Optional[str] = None @@ -74,7 +74,11 @@ class PublishSettings(ConfigurationModelBase): try: self._source_path = settings[PublishSettingsName.source_path.value] self._dist_path = settings[PublishSettingsName.dist_path.value] - self._templates = Template().from_dict(settings[PublishSettingsName.templates.value]) + for template in settings[PublishSettingsName.templates.value]: + temp = Template() + temp.from_dict(template) + self._templates.append(temp) + self._included_files = settings[PublishSettingsName.included_files.value] self._excluded_files = settings[PublishSettingsName.excluded_files.value] self._template_ending = settings[PublishSettingsName.template_ending.value] diff --git a/src/sh_edraft/publishing/model/template.py b/src/sh_edraft/publishing/model/template.py index 91ba29e3..cea0f09c 100644 --- a/src/sh_edraft/publishing/model/template.py +++ b/src/sh_edraft/publishing/model/template.py @@ -19,7 +19,7 @@ class Template(ConfigurationModelBase): license_description: Optional[str] = None, title: Optional[str] = None, author: Optional[str] = None, - version: Optional[dict] = None + version: Optional[Version] = Version() ): ConfigurationModelBase.__init__(self) self._template_path: Optional[str] = template_path @@ -33,8 +33,7 @@ class Template(ConfigurationModelBase): self._title: Optional[str] = title self._author: Optional[str] = author - self._version: Optional[Version] = Version() - self._version.from_dict(version) + self._version: Optional[Version] = version self._file_content: Optional[str] = None diff --git a/src/tests/services/publishing/publisher.py b/src/tests/services/publishing/publisher.py index afb17eaa..9b75d13a 100644 --- a/src/tests/services/publishing/publisher.py +++ b/src/tests/services/publishing/publisher.py @@ -15,7 +15,7 @@ from sh_edraft.time.model import TimeFormatSettings class PublisherTest(unittest.TestCase): def _configure(self): - self._version = Version(2020, 12, 5).to_dict() + self._version = Version(2020, 12, 5) templates = [ Template( '../../publish_templates/all_template.txt', diff --git a/src/tests_dev/appsettings.edrafts-pc.json b/src/tests_dev/appsettings.edrafts-pc.json index e73add9f..3fb75c62 100644 --- a/src/tests_dev/appsettings.edrafts-pc.json +++ b/src/tests_dev/appsettings.edrafts-pc.json @@ -11,7 +11,7 @@ "ConsoleLogLevel": "TRACE", "FileLogLevel": "TRACE" }, - "PublisherSettings": { + "PublishSettings": { "SourcePath": "../", "DistPath": "../../dist", "Templates": [ @@ -27,9 +27,9 @@ "Title": "", "Author": "Sven Heidemann", "Version": { - "major": 2020, - "minor": 12, - "micro": 9 + "Major": 2020, + "Minor": 12, + "Micro": 9 } }, { @@ -44,9 +44,9 @@ "Title": "", "Author": "Sven Heidemann", "Version": { - "major": 2020, - "minor": 12, - "micro": 9 + "Major": 2020, + "Minor": 12, + "Micro": 9 } } ], diff --git a/src/tests_dev/publisher.py b/src/tests_dev/publisher.py index 842e1d86..78b8ddf4 100644 --- a/src/tests_dev/publisher.py +++ b/src/tests_dev/publisher.py @@ -1,6 +1,7 @@ from typing import Optional from sh_edraft.configuration.base import ConfigurationBase +from sh_edraft.console import Console from sh_edraft.hosting import ApplicationHost from sh_edraft.hosting.base import ApplicationBase from sh_edraft.logging import Logger @@ -20,6 +21,7 @@ class Program(ApplicationBase): self._configuration: Optional[ConfigurationBase] = None self._logger: Optional[LoggerBase] = None self._publisher: Optional[PublisherBase] = None + # Console.disable() def create_application_host(self): self._app_host = ApplicationHost() @@ -36,6 +38,7 @@ class Program(ApplicationBase): def create_services(self): # Add and create logger + Console.enable() self._services.add_singleton(LoggerBase, Logger) self._logger = self._services.get_service(LoggerBase) @@ -48,10 +51,12 @@ class Program(ApplicationBase): self._logger.debug(__name__, f'Host: {self._configuration.environment.host_name}') self._logger.debug(__name__, f'Environment: {self._configuration.environment.environment_name}') self._logger.debug(__name__, f'Customer: {self._configuration.environment.customer}') - #self._publisher.exclude() - #self._publisher.include() + self._publisher.exclude('../tests') + self._publisher.exclude('../tests_dev') + # self._publisher.include() # self._publisher.create() - print(self._publisher) + self._publisher.create() + self._publisher.publish() if __name__ == '__main__':