From 9a6ce704b7c5b2adbbe7188ba634ea405b9c4840 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 5 Apr 2023 16:30:02 +0200 Subject: [PATCH] Removed from_dict from build and project settings --- src/cpl_cli/command/new_service.py | 35 ++++++++++++- src/cpl_cli/configuration/build_settings.py | 41 --------------- src/cpl_cli/configuration/project_settings.py | 51 ------------------- .../configuration/project_type_enum.py | 1 + 4 files changed, 34 insertions(+), 94 deletions(-) diff --git a/src/cpl_cli/command/new_service.py b/src/cpl_cli/command/new_service.py index 82f76f88..b367a7b8 100644 --- a/src/cpl_cli/command/new_service.py +++ b/src/cpl_cli/command/new_service.py @@ -11,13 +11,13 @@ import cpl_cli import cpl_core from cpl_cli.abc.project_type_abc import ProjectTypeABC from cpl_cli.command_abc import CommandABC +from cpl_cli.configuration import VersionSettings, VersionSettingsNameEnum from cpl_cli.configuration.build_settings import BuildSettings from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum from cpl_cli.configuration.project_settings import ProjectSettings from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum from cpl_cli.configuration.project_type_enum import ProjectTypeEnum from cpl_cli.configuration.venv_helper_service import VenvHelper -from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum from cpl_cli.configuration.workspace_settings import WorkspaceSettings from cpl_cli.helper.dependencies import Dependencies from cpl_cli.source_creator.template_builder import TemplateBuilder @@ -101,6 +101,25 @@ class NewService(CommandABC): } self._project.from_dict(self._project_dict) + self._project = ProjectSettings( + os.path.basename(self._name), + VersionSettings("0", "0", "0"), + "", + "", + "", + "", + "", + "", + "", + "", + "", + [f"cpl-core>={version.parse(cpl_core.__version__)}"], + [f"cpl-cli>={version.parse(cpl_cli.__version__)}"], + f'>={sys.version.split(" ")[0]}', + {sys.platform: "../../venv/" if self._use_venv else ""}, + None, + [], + ) def _create_build_settings(self, project_type: str): self._build_dict = { @@ -115,7 +134,19 @@ class NewService(CommandABC): BuildSettingsNameEnum.package_data.value: {}, BuildSettingsNameEnum.project_references.value: [], } - self._build.from_dict(self._build_dict) + # self._build.from_dict(self._build_dict) + self._build = BuildSettings( + ProjectTypeEnum[project_type], + "", + "../../dist", + f"{String.convert_to_snake_case(self._project.name)}.main", + self._project.name, + False, + [], + ["*/__pycache__", "*/logs", "*/tests"], + {}, + [], + ) def _create_project_json(self): """ diff --git a/src/cpl_cli/configuration/build_settings.py b/src/cpl_cli/configuration/build_settings.py index d493810a..bc97721f 100644 --- a/src/cpl_cli/configuration/build_settings.py +++ b/src/cpl_cli/configuration/build_settings.py @@ -93,44 +93,3 @@ class BuildSettings(ConfigurationModelABC): @property def project_references(self) -> list[str]: return self._project_references - - def from_dict(self, settings: dict): - try: - self._project_type = settings[BuildSettingsNameEnum.project_type.value] - self._source_path = settings[BuildSettingsNameEnum.source_path.value] - self._output_path = settings[BuildSettingsNameEnum.output_path.value] - self._include_package_data = bool(settings[BuildSettingsNameEnum.include_package_data.value]) - self._main = settings[BuildSettingsNameEnum.main.value] - self._entry_point = settings[BuildSettingsNameEnum.entry_point.value] - self._included = settings[BuildSettingsNameEnum.included.value] - self._excluded = settings[BuildSettingsNameEnum.excluded.value] - self._package_data = settings[BuildSettingsNameEnum.package_data.value] - - if BuildSettingsNameEnum.project_references.value in settings: - self._project_references = settings[BuildSettingsNameEnum.project_references.value] - else: - self._project_references = [] - - if sys.platform == "win32": - self._source_path = str(self._source_path).replace("/", "\\") - self._output_path = str(self._output_path).replace("/", "\\") - - # windows paths for excluded files - excluded = [] - for ex in self._excluded: - excluded.append(str(ex).replace("/", "\\")) - - self._excluded = excluded - - # windows paths for included files - included = [] - for inc in self._included: - included.append(str(inc).replace("/", "\\")) - - self._included = included - - except Exception as e: - Console.set_foreground_color(ForegroundColorEnum.red) - Console.write_line(f"[ ERROR ] [ {__name__} ]: Reading error in {BuildSettings.__name__} settings") - Console.write_line(f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}") - Console.set_foreground_color(ForegroundColorEnum.default) diff --git a/src/cpl_cli/configuration/project_settings.py b/src/cpl_cli/configuration/project_settings.py index 16a6dcbc..bcb27654 100644 --- a/src/cpl_cli/configuration/project_settings.py +++ b/src/cpl_cli/configuration/project_settings.py @@ -1,14 +1,11 @@ import os import sys -import traceback from typing import Optional from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum from cpl_cli.configuration.version_settings import VersionSettings from cpl_cli.error import Error from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC -from cpl_core.console.console import Console -from cpl_core.console.foreground_color_enum import ForegroundColorEnum class ProjectSettings(ConfigurationModelABC): @@ -133,51 +130,3 @@ class ProjectSettings(ConfigurationModelABC): @property def classifiers(self) -> list[str]: return self._classifiers - - def from_dict(self, settings: dict): - try: - self._name = settings[ProjectSettingsNameEnum.name.value] - self._version.from_dict(settings[ProjectSettingsNameEnum.version.value]) - self._author = settings[ProjectSettingsNameEnum.author.value] - self._author_email = settings[ProjectSettingsNameEnum.author_email.value] - self._description = settings[ProjectSettingsNameEnum.description.value] - self._long_description = settings[ProjectSettingsNameEnum.long_description.value] - self._url = settings[ProjectSettingsNameEnum.url.value] - self._copyright_date = settings[ProjectSettingsNameEnum.copyright_date.value] - self._copyright_name = settings[ProjectSettingsNameEnum.copyright_name.value] - self._license_name = settings[ProjectSettingsNameEnum.license_name.value] - self._license_description = settings[ProjectSettingsNameEnum.license_description.value] - self._dependencies = settings[ProjectSettingsNameEnum.dependencies.value] - if ProjectSettingsNameEnum.dev_dependencies.value not in settings: - settings[ProjectSettingsNameEnum.dev_dependencies.value] = [] - self._dev_dependencies = settings[ProjectSettingsNameEnum.dev_dependencies.value] - self._python_version = settings[ProjectSettingsNameEnum.python_version.value] - self._python_path = settings[ProjectSettingsNameEnum.python_path.value] - - if ( - ProjectSettingsNameEnum.python_path.value in settings - and sys.platform in settings[ProjectSettingsNameEnum.python_path.value] - ): - path = f"{settings[ProjectSettingsNameEnum.python_path.value][sys.platform]}" - - if path == "" or path is None: - Error.warn(f"{ProjectSettingsNameEnum.python_path.value} not set") - path = sys.executable - else: - if not path.endswith("bin/python"): - path = os.path.join(path, "bin/python") - else: - path = sys.executable - - self._python_executable = path - - if ProjectSettingsNameEnum.classifiers.value: - self._classifiers = settings[ProjectSettingsNameEnum.classifiers.value] - else: - self._classifiers = [] - - except Exception as e: - Console.set_foreground_color(ForegroundColorEnum.red) - Console.write_line(f"[ ERROR ] [ {__name__} ]: Reading error in {ProjectSettings.__name__} settings") - Console.write_line(f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}") - Console.set_foreground_color(ForegroundColorEnum.default) diff --git a/src/cpl_cli/configuration/project_type_enum.py b/src/cpl_cli/configuration/project_type_enum.py index 78004bdb..4c4be9b0 100644 --- a/src/cpl_cli/configuration/project_type_enum.py +++ b/src/cpl_cli/configuration/project_type_enum.py @@ -5,3 +5,4 @@ class ProjectTypeEnum(Enum): console = "console" library = "library" unittest = "unittest" + discord_bot = "discord-bot"