#154 #164
@ -11,13 +11,13 @@ import cpl_cli
|
|||||||
import cpl_core
|
import cpl_core
|
||||||
from cpl_cli.abc.project_type_abc import ProjectTypeABC
|
from cpl_cli.abc.project_type_abc import ProjectTypeABC
|
||||||
from cpl_cli.command_abc import CommandABC
|
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 import BuildSettings
|
||||||
from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum
|
from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum
|
||||||
from cpl_cli.configuration.project_settings import ProjectSettings
|
from cpl_cli.configuration.project_settings import ProjectSettings
|
||||||
from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum
|
from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum
|
||||||
from cpl_cli.configuration.project_type_enum import ProjectTypeEnum
|
from cpl_cli.configuration.project_type_enum import ProjectTypeEnum
|
||||||
from cpl_cli.configuration.venv_helper_service import VenvHelper
|
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.configuration.workspace_settings import WorkspaceSettings
|
||||||
from cpl_cli.helper.dependencies import Dependencies
|
from cpl_cli.helper.dependencies import Dependencies
|
||||||
from cpl_cli.source_creator.template_builder import TemplateBuilder
|
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.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):
|
def _create_build_settings(self, project_type: str):
|
||||||
self._build_dict = {
|
self._build_dict = {
|
||||||
@ -115,7 +134,19 @@ class NewService(CommandABC):
|
|||||||
BuildSettingsNameEnum.package_data.value: {},
|
BuildSettingsNameEnum.package_data.value: {},
|
||||||
BuildSettingsNameEnum.project_references.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):
|
def _create_project_json(self):
|
||||||
"""
|
"""
|
||||||
|
@ -93,44 +93,3 @@ class BuildSettings(ConfigurationModelABC):
|
|||||||
@property
|
@property
|
||||||
def project_references(self) -> list[str]:
|
def project_references(self) -> list[str]:
|
||||||
return self._project_references
|
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)
|
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum
|
from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum
|
||||||
from cpl_cli.configuration.version_settings import VersionSettings
|
from cpl_cli.configuration.version_settings import VersionSettings
|
||||||
from cpl_cli.error import Error
|
from cpl_cli.error import Error
|
||||||
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
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):
|
class ProjectSettings(ConfigurationModelABC):
|
||||||
@ -133,51 +130,3 @@ class ProjectSettings(ConfigurationModelABC):
|
|||||||
@property
|
@property
|
||||||
def classifiers(self) -> list[str]:
|
def classifiers(self) -> list[str]:
|
||||||
return self._classifiers
|
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)
|
|
||||||
|
@ -5,3 +5,4 @@ class ProjectTypeEnum(Enum):
|
|||||||
console = "console"
|
console = "console"
|
||||||
library = "library"
|
library = "library"
|
||||||
unittest = "unittest"
|
unittest = "unittest"
|
||||||
|
discord_bot = "discord-bot"
|
||||||
|
Loading…
Reference in New Issue
Block a user