From b97bc0a3ed7b68fe457219629a91ef8c961c4ebb Mon Sep 17 00:00:00 2001 From: edraft Date: Tue, 16 Sep 2025 08:48:07 +0200 Subject: [PATCH] Restructuring --- .../cpl}/application/__init__.py | 0 .../cpl}/application/application_abc.py | 11 ++++--- .../cpl}/application/application_builder.py | 22 +++++++------- .../application/application_builder_abc.py | 14 ++++----- .../application/application_extension_abc.py | 2 +- .../async_application_extension_abc.py | 2 +- .../cpl}/application/async_startup_abc.py | 4 +-- .../async_startup_extension_abc.py | 4 +-- .../cpl}/application/startup_abc.py | 4 +-- .../cpl}/application/startup_extension_abc.py | 4 +-- src/cpl-application/pyproject.toml | 30 +++++++++++++++++++ src/cpl-application/requirements.dev.txt | 1 + src/cpl-application/requirements.txt | 2 ++ .../dependency_injection/scope_builder.py | 18 ----------- .../cpl}/database/__init__.py | 0 .../cpl}/database/connection/__init__.py | 0 .../connection/database_connection.py | 4 +-- .../connection/database_connection_abc.py | 4 +-- .../cpl}/database/context/__init__.py | 0 .../cpl}/database/context/database_context.py | 10 +++---- .../database/context/database_context_abc.py | 6 ++-- .../cpl}/database/database_settings.py | 0 .../database/database_settings_name_enum.py | 0 .../cpl}/database/db_logger.py | 0 .../cpl}/database/table_abc.py | 0 src/cpl-database/pyproject.toml | 30 +++++++++++++++++++ src/cpl-database/requirements.dev.txt | 1 + src/cpl-database/requirements.txt | 2 ++ .../cpl/dependency}/__init__.py | 0 .../cpl/dependency}/scope.py | 4 +-- .../cpl/dependency}/scope_abc.py | 4 +-- .../cpl/dependency/scope_builder.py | 18 +++++++++++ .../cpl/dependency}/service_collection.py | 14 ++++----- .../cpl/dependency}/service_collection_abc.py | 18 +++++------ .../cpl/dependency}/service_descriptor.py | 4 +-- .../cpl/dependency}/service_lifetime_enum.py | 0 .../cpl/dependency}/service_provider.py | 16 +++++----- .../cpl/dependency}/service_provider_abc.py | 8 ++--- src/cpl-dependency/pyproject.toml | 30 +++++++++++++++++++ src/cpl-dependency/requirements.dev.txt | 1 + src/cpl-dependency/requirements.txt | 1 + src/cpl-mail/cpl/mail/__init__.py | 2 +- .../cpl/translation/__init__.py | 2 +- tests/custom/async/src/async/application.py | 4 +-- tests/custom/async/src/async/main.py | 2 +- tests/custom/async/src/async/startup.py | 8 ++--- tests/custom/database/src/application.py | 17 +++++------ tests/custom/database/src/main.py | 2 +- tests/custom/database/src/model/city_model.py | 2 +- tests/custom/database/src/model/db_context.py | 4 +-- tests/custom/database/src/model/user_model.py | 2 +- tests/custom/database/src/model/user_repo.py | 2 +- tests/custom/database/src/startup.py | 30 +++++++------------ tests/custom/di/src/di/application.py | 6 ++-- tests/custom/di/src/di/main.py | 2 +- tests/custom/di/src/di/startup.py | 12 +++----- tests/custom/di/src/di/static_test.py | 2 +- .../custom/general/src/general/application.py | 4 +-- tests/custom/general/src/general/main.py | 2 +- tests/custom/general/src/general/startup.py | 4 +-- .../general/src/general/test_extension.py | 4 +-- .../general/src/general/test_service.py | 2 +- .../src/general/test_startup_extension.py | 4 +-- .../src/translation/application.py | 4 +-- .../translation/src/translation/main.py | 2 +- .../translation/src/translation/startup.py | 12 +++----- unittests/unittests/application.py | 4 +-- unittests/unittests/main.py | 2 +- .../configuration/configuration_test_case.py | 4 +-- .../console_arguments_test_case.py | 2 +- .../di/service_collection_test_case.py | 2 +- .../di/service_provider_test_case.py | 2 +- 72 files changed, 261 insertions(+), 185 deletions(-) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/__init__.py (100%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/application_abc.py (73%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/application_builder.py (79%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/application_builder_abc.py (61%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/application_extension_abc.py (83%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/async_application_extension_abc.py (83%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/async_startup_abc.py (72%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/async_startup_extension_abc.py (84%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/startup_abc.py (83%) rename src/{cpl-core/cpl/core => cpl-application/cpl}/application/startup_extension_abc.py (83%) create mode 100644 src/cpl-application/pyproject.toml create mode 100644 src/cpl-application/requirements.dev.txt create mode 100644 src/cpl-application/requirements.txt delete mode 100644 src/cpl-core/cpl/core/dependency_injection/scope_builder.py rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/__init__.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/connection/__init__.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/connection/database_connection.py (92%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/connection/database_connection_abc.py (82%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/context/__init__.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/context/database_context.py (77%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/context/database_context_abc.py (76%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/database_settings.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/database_settings_name_enum.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/db_logger.py (100%) rename src/{cpl-core/cpl/core => cpl-database/cpl}/database/table_abc.py (100%) create mode 100644 src/cpl-database/pyproject.toml create mode 100644 src/cpl-database/requirements.dev.txt create mode 100644 src/cpl-database/requirements.txt rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/__init__.py (100%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/scope.py (77%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/scope_abc.py (64%) create mode 100644 src/cpl-dependency/cpl/dependency/scope_builder.py rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_collection.py (83%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_collection_abc.py (72%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_descriptor.py (87%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_lifetime_enum.py (100%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_provider.py (90%) rename src/{cpl-core/cpl/core/dependency_injection => cpl-dependency/cpl/dependency}/service_provider_abc.py (88%) create mode 100644 src/cpl-dependency/pyproject.toml create mode 100644 src/cpl-dependency/requirements.dev.txt create mode 100644 src/cpl-dependency/requirements.txt diff --git a/src/cpl-core/cpl/core/application/__init__.py b/src/cpl-application/cpl/application/__init__.py similarity index 100% rename from src/cpl-core/cpl/core/application/__init__.py rename to src/cpl-application/cpl/application/__init__.py diff --git a/src/cpl-core/cpl/core/application/application_abc.py b/src/cpl-application/cpl/application/application_abc.py similarity index 73% rename from src/cpl-core/cpl/core/application/application_abc.py rename to src/cpl-application/cpl/application/application_abc.py index 0ca27398..bda6e006 100644 --- a/src/cpl-core/cpl/core/application/application_abc.py +++ b/src/cpl-application/cpl/application/application_abc.py @@ -1,10 +1,9 @@ from abc import ABC, abstractmethod from typing import Optional -from cpl.core.configuration import Configuration +from cpl.dependency.service_provider_abc import ServiceProviderABC + from cpl.core.console.console import Console -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC -from cpl.core.environment import Environment class ApplicationABC(ABC): @@ -13,7 +12,7 @@ class ApplicationABC(ABC): Parameters: config: :class:`cpl.core.configuration.configuration_abc.ConfigurationABC` Contains object loaded from appsettings - services: :class:`cpl.core.dependency_injection.service_provider_abc.ServiceProviderABC` + services: :class:`cpl.dependency.service_provider_abc.ServiceProviderABC` Contains instances of prepared objects """ @@ -47,12 +46,12 @@ class ApplicationABC(ABC): def configure(self): r"""Configure the application - Called by :class:`cpl.core.application.application_abc.ApplicationABC.run` + Called by :class:`cpl.application.application_abc.ApplicationABC.run` """ @abstractmethod def main(self): r"""Custom entry point - Called by :class:`cpl.core.application.application_abc.ApplicationABC.run` + Called by :class:`cpl.application.application_abc.ApplicationABC.run` """ diff --git a/src/cpl-core/cpl/core/application/application_builder.py b/src/cpl-application/cpl/application/application_builder.py similarity index 79% rename from src/cpl-core/cpl/core/application/application_builder.py rename to src/cpl-application/cpl/application/application_builder.py index 3583b023..77a34239 100644 --- a/src/cpl-core/cpl/core/application/application_builder.py +++ b/src/cpl-application/cpl/application/application_builder.py @@ -1,23 +1,23 @@ from typing import Type, Optional, Callable, Union -from cpl.core.application.application_abc import ApplicationABC -from cpl.core.application.application_builder_abc import ApplicationBuilderABC -from cpl.core.application.application_extension_abc import ApplicationExtensionABC -from cpl.core.application.async_application_extension_abc import AsyncApplicationExtensionABC -from cpl.core.application.async_startup_abc import AsyncStartupABC -from cpl.core.application.async_startup_extension_abc import AsyncStartupExtensionABC -from cpl.core.application.startup_abc import StartupABC -from cpl.core.application.startup_extension_abc import StartupExtensionABC +from cpl.application.application_abc import ApplicationABC +from cpl.application.application_builder_abc import ApplicationBuilderABC +from cpl.application.application_extension_abc import ApplicationExtensionABC +from cpl.application.async_application_extension_abc import AsyncApplicationExtensionABC +from cpl.application.async_startup_abc import AsyncStartupABC +from cpl.application.async_startup_extension_abc import AsyncStartupExtensionABC +from cpl.application.startup_abc import StartupABC +from cpl.application.startup_extension_abc import StartupExtensionABC from cpl.core.configuration.configuration import Configuration -from cpl.core.dependency_injection.service_collection import ServiceCollection +from cpl.dependency.service_collection import ServiceCollection from cpl.core.environment import Environment class ApplicationBuilder(ApplicationBuilderABC): - r"""This is class is used to build an object of :class:`cpl.core.application.application_abc.ApplicationABC` + r"""This is class is used to build an object of :class:`cpl.application.application_abc.ApplicationABC` Parameter: - app: Type[:class:`cpl.core.application.application_abc.ApplicationABC`] + app: Type[:class:`cpl.application.application_abc.ApplicationABC`] Application to build """ diff --git a/src/cpl-core/cpl/core/application/application_builder_abc.py b/src/cpl-application/cpl/application/application_builder_abc.py similarity index 61% rename from src/cpl-core/cpl/core/application/application_builder_abc.py rename to src/cpl-application/cpl/application/application_builder_abc.py index 830def93..3c82e440 100644 --- a/src/cpl-core/cpl/core/application/application_builder_abc.py +++ b/src/cpl-application/cpl/application/application_builder_abc.py @@ -1,12 +1,12 @@ from abc import ABC, abstractmethod from typing import Type -from cpl.core.application.application_abc import ApplicationABC -from cpl.core.application.startup_abc import StartupABC +from cpl.application.application_abc import ApplicationABC +from cpl.application.startup_abc import StartupABC class ApplicationBuilderABC(ABC): - r"""ABC for the :class:`cpl.core.application.application_builder.ApplicationBuilder`""" + r"""ABC for the :class:`cpl.application.application_builder.ApplicationBuilder`""" @abstractmethod def __init__(self, *args): @@ -17,7 +17,7 @@ class ApplicationBuilderABC(ABC): r"""Sets the custom startup class to use Parameter: - startup: Type[:class:`cpl.core.application.startup_abc.StartupABC`] + startup: Type[:class:`cpl.application.startup_abc.StartupABC`] Startup class to use """ @@ -26,7 +26,7 @@ class ApplicationBuilderABC(ABC): r"""Sets the custom startup class to use async Parameter: - startup: Type[:class:`cpl.core.application.startup_abc.StartupABC`] + startup: Type[:class:`cpl.application.startup_abc.StartupABC`] Startup class to use """ @@ -35,7 +35,7 @@ class ApplicationBuilderABC(ABC): r"""Creates custom application object Returns: - Object of :class:`cpl.core.application.application_abc.ApplicationABC` + Object of :class:`cpl.application.application_abc.ApplicationABC` """ @abstractmethod @@ -43,5 +43,5 @@ class ApplicationBuilderABC(ABC): r"""Creates custom application object async Returns: - Object of :class:`cpl.core.application.application_abc.ApplicationABC` + Object of :class:`cpl.application.application_abc.ApplicationABC` """ diff --git a/src/cpl-core/cpl/core/application/application_extension_abc.py b/src/cpl-application/cpl/application/application_extension_abc.py similarity index 83% rename from src/cpl-core/cpl/core/application/application_extension_abc.py rename to src/cpl-application/cpl/application/application_extension_abc.py index 111653a2..3e9015d9 100644 --- a/src/cpl-core/cpl/core/application/application_extension_abc.py +++ b/src/cpl-application/cpl/application/application_extension_abc.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from cpl.core.configuration.configuration import Configuration -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC class ApplicationExtensionABC(ABC): diff --git a/src/cpl-core/cpl/core/application/async_application_extension_abc.py b/src/cpl-application/cpl/application/async_application_extension_abc.py similarity index 83% rename from src/cpl-core/cpl/core/application/async_application_extension_abc.py rename to src/cpl-application/cpl/application/async_application_extension_abc.py index 67378a08..b4b37d87 100644 --- a/src/cpl-core/cpl/core/application/async_application_extension_abc.py +++ b/src/cpl-application/cpl/application/async_application_extension_abc.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from cpl.core.configuration.configuration import Configuration -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC class AsyncApplicationExtensionABC(ABC): diff --git a/src/cpl-core/cpl/core/application/async_startup_abc.py b/src/cpl-application/cpl/application/async_startup_abc.py similarity index 72% rename from src/cpl-core/cpl/core/application/async_startup_abc.py rename to src/cpl-application/cpl/application/async_startup_abc.py index 2bbc7fac..df366926 100644 --- a/src/cpl-core/cpl/core/application/async_startup_abc.py +++ b/src/cpl-application/cpl/application/async_startup_abc.py @@ -1,6 +1,6 @@ from abc import ABC, abstractmethod -from cpl.core.dependency_injection.service_collection_abc import ServiceCollectionABC +from cpl.dependency.service_collection_abc import ServiceCollectionABC class AsyncStartupABC(ABC): @@ -19,5 +19,5 @@ class AsyncStartupABC(ABC): r"""Creates service provider Parameter: - services: :class:`cpl.core.dependency_injection.service_collection_abc` + services: :class:`cpl.dependency.service_collection_abc` """ diff --git a/src/cpl-core/cpl/core/application/async_startup_extension_abc.py b/src/cpl-application/cpl/application/async_startup_extension_abc.py similarity index 84% rename from src/cpl-core/cpl/core/application/async_startup_extension_abc.py rename to src/cpl-application/cpl/application/async_startup_extension_abc.py index 861c8b2a..d13ebfe1 100644 --- a/src/cpl-core/cpl/core/application/async_startup_extension_abc.py +++ b/src/cpl-application/cpl/application/async_startup_extension_abc.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from cpl.core.configuration.configuration import Configuration -from cpl.core.dependency_injection.service_collection_abc import ServiceCollectionABC +from cpl.dependency.service_collection_abc import ServiceCollectionABC from cpl.core.environment.environment import Environment @@ -26,6 +26,6 @@ class AsyncStartupExtensionABC(ABC): r"""Creates service provider Parameter: - services: :class:`cpl.core.dependency_injection.service_collection_abc` + services: :class:`cpl.dependency.service_collection_abc` env: :class:`cpl.core.environment.application_environment_abc` """ diff --git a/src/cpl-core/cpl/core/application/startup_abc.py b/src/cpl-application/cpl/application/startup_abc.py similarity index 83% rename from src/cpl-core/cpl/core/application/startup_abc.py rename to src/cpl-application/cpl/application/startup_abc.py index cbad5f19..6aeef9c0 100644 --- a/src/cpl-core/cpl/core/application/startup_abc.py +++ b/src/cpl-application/cpl/application/startup_abc.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from cpl.core.configuration import Configuration -from cpl.core.dependency_injection.service_collection_abc import ServiceCollectionABC +from cpl.dependency.service_collection_abc import ServiceCollectionABC from cpl.core.environment import Environment @@ -26,6 +26,6 @@ class StartupABC(ABC): r"""Creates service provider Parameter: - services: :class:`cpl.core.dependency_injection.service_collection_abc` + services: :class:`cpl.dependency.service_collection_abc` env: :class:`cpl.core.environment.application_environment_abc` """ diff --git a/src/cpl-core/cpl/core/application/startup_extension_abc.py b/src/cpl-application/cpl/application/startup_extension_abc.py similarity index 83% rename from src/cpl-core/cpl/core/application/startup_extension_abc.py rename to src/cpl-application/cpl/application/startup_extension_abc.py index 9d2db53e..649db522 100644 --- a/src/cpl-core/cpl/core/application/startup_extension_abc.py +++ b/src/cpl-application/cpl/application/startup_extension_abc.py @@ -2,7 +2,7 @@ from abc import ABC, abstractmethod from cpl.core.configuration import Configuration -from cpl.core.dependency_injection.service_collection_abc import ServiceCollectionABC +from cpl.dependency.service_collection_abc import ServiceCollectionABC from cpl.core.environment.environment import Environment @@ -28,6 +28,6 @@ class StartupExtensionABC(ABC): r"""Creates service provider Parameter: - services: :class:`cpl.core.dependency_injection.service_collection_abc` + services: :class:`cpl.dependency.service_collection_abc` env: :class:`cpl.core.environment.application_environment_abc` """ diff --git a/src/cpl-application/pyproject.toml b/src/cpl-application/pyproject.toml new file mode 100644 index 00000000..c5e0f99c --- /dev/null +++ b/src/cpl-application/pyproject.toml @@ -0,0 +1,30 @@ +[build-system] +requires = ["setuptools>=70.1.0", "wheel>=0.43.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "cpl-application" +version = "2024.7.0" +description = "CPL application" +readme ="CPL application package" +requires-python = ">=3.12" +license = { text = "MIT" } +authors = [ + { name = "Sven Heidemann", email = "sven.heidemann@sh-edraft.de" } +] +keywords = ["cpl", "application", "backend", "shared", "library"] + +dynamic = ["dependencies", "optional-dependencies"] + +[project.urls] +Homepage = "https://www.sh-edraft.de" + +[tool.setuptools.packages.find] +where = ["."] +include = ["cpl*"] + +[tool.setuptools.dynamic] +dependencies = { file = ["requirements.txt"] } +optional-dependencies.dev = { file = ["requirements.dev.txt"] } + + diff --git a/src/cpl-application/requirements.dev.txt b/src/cpl-application/requirements.dev.txt new file mode 100644 index 00000000..e7664b42 --- /dev/null +++ b/src/cpl-application/requirements.dev.txt @@ -0,0 +1 @@ +black==25.1.0 \ No newline at end of file diff --git a/src/cpl-application/requirements.txt b/src/cpl-application/requirements.txt new file mode 100644 index 00000000..e8d9db7b --- /dev/null +++ b/src/cpl-application/requirements.txt @@ -0,0 +1,2 @@ +cpl-core +cpl-dependency \ No newline at end of file diff --git a/src/cpl-core/cpl/core/dependency_injection/scope_builder.py b/src/cpl-core/cpl/core/dependency_injection/scope_builder.py deleted file mode 100644 index 0730629f..00000000 --- a/src/cpl-core/cpl/core/dependency_injection/scope_builder.py +++ /dev/null @@ -1,18 +0,0 @@ -from cpl.core.dependency_injection.scope import Scope -from cpl.core.dependency_injection.scope_abc import ScopeABC -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC - - -class ScopeBuilder: - r"""Class to build :class:`cpl.core.dependency_injection.scope.Scope`""" - - def __init__(self, service_provider: ServiceProviderABC) -> None: - self._service_provider = service_provider - - def build(self) -> ScopeABC: - r"""Returns scope - - Returns: - Object of type :class:`cpl.core.dependency_injection.scope.Scope` - """ - return Scope(self._service_provider) diff --git a/src/cpl-core/cpl/core/database/__init__.py b/src/cpl-database/cpl/database/__init__.py similarity index 100% rename from src/cpl-core/cpl/core/database/__init__.py rename to src/cpl-database/cpl/database/__init__.py diff --git a/src/cpl-core/cpl/core/database/connection/__init__.py b/src/cpl-database/cpl/database/connection/__init__.py similarity index 100% rename from src/cpl-core/cpl/core/database/connection/__init__.py rename to src/cpl-database/cpl/database/connection/__init__.py diff --git a/src/cpl-core/cpl/core/database/connection/database_connection.py b/src/cpl-database/cpl/database/connection/database_connection.py similarity index 92% rename from src/cpl-core/cpl/core/database/connection/database_connection.py rename to src/cpl-database/cpl/database/connection/database_connection.py index 3967dc0a..30b1c84f 100644 --- a/src/cpl-core/cpl/core/database/connection/database_connection.py +++ b/src/cpl-database/cpl/database/connection/database_connection.py @@ -4,8 +4,8 @@ import mysql.connector as sql from mysql.connector.abstracts import MySQLConnectionAbstract from mysql.connector.cursor import MySQLCursorBuffered -from cpl.core.database.connection.database_connection_abc import DatabaseConnectionABC -from cpl.core.database.database_settings import DatabaseSettings +from cpl.database.connection.database_connection_abc import DatabaseConnectionABC +from cpl.database.database_settings import DatabaseSettings from cpl.core.utils.credential_manager import CredentialManager diff --git a/src/cpl-core/cpl/core/database/connection/database_connection_abc.py b/src/cpl-database/cpl/database/connection/database_connection_abc.py similarity index 82% rename from src/cpl-core/cpl/core/database/connection/database_connection_abc.py rename to src/cpl-database/cpl/database/connection/database_connection_abc.py index 5084e33e..6980eeea 100644 --- a/src/cpl-core/cpl/core/database/connection/database_connection_abc.py +++ b/src/cpl-database/cpl/database/connection/database_connection_abc.py @@ -1,12 +1,12 @@ from abc import ABC, abstractmethod -from cpl.core.database.database_settings import DatabaseSettings +from cpl.database.database_settings import DatabaseSettings from mysql.connector.abstracts import MySQLConnectionAbstract from mysql.connector.cursor import MySQLCursorBuffered class DatabaseConnectionABC(ABC): - r"""ABC for the :class:`cpl.core.database.connection.database_connection.DatabaseConnection`""" + r"""ABC for the :class:`cpl.database.connection.database_connection.DatabaseConnection`""" @abstractmethod def __init__(self): diff --git a/src/cpl-core/cpl/core/database/context/__init__.py b/src/cpl-database/cpl/database/context/__init__.py similarity index 100% rename from src/cpl-core/cpl/core/database/context/__init__.py rename to src/cpl-database/cpl/database/context/__init__.py diff --git a/src/cpl-core/cpl/core/database/context/database_context.py b/src/cpl-database/cpl/database/context/database_context.py similarity index 77% rename from src/cpl-core/cpl/core/database/context/database_context.py rename to src/cpl-database/cpl/database/context/database_context.py index 03d5d2b9..af48558f 100644 --- a/src/cpl-core/cpl/core/database/context/database_context.py +++ b/src/cpl-database/cpl/database/context/database_context.py @@ -1,10 +1,10 @@ from typing import Optional -from cpl.core.database.connection.database_connection import DatabaseConnection -from cpl.core.database.connection.database_connection_abc import DatabaseConnectionABC -from cpl.core.database.context.database_context_abc import DatabaseContextABC -from cpl.core.database.database_settings import DatabaseSettings +from cpl.database.connection.database_connection import DatabaseConnection +from cpl.database.connection.database_connection_abc import DatabaseConnectionABC +from cpl.database.context.database_context_abc import DatabaseContextABC +from cpl.database.database_settings import DatabaseSettings from mysql.connector.cursor import MySQLCursorBuffered @@ -12,7 +12,7 @@ class DatabaseContext(DatabaseContextABC): r"""Representation of the database context Parameter: - database_settings: :class:`cpl.core.database.database_settings.DatabaseSettings` + database_settings: :class:`cpl.database.database_settings.DatabaseSettings` """ def __init__(self): diff --git a/src/cpl-core/cpl/core/database/context/database_context_abc.py b/src/cpl-database/cpl/database/context/database_context_abc.py similarity index 76% rename from src/cpl-core/cpl/core/database/context/database_context_abc.py rename to src/cpl-database/cpl/database/context/database_context_abc.py index 21d4996c..481be1f0 100644 --- a/src/cpl-core/cpl/core/database/context/database_context_abc.py +++ b/src/cpl-database/cpl/database/context/database_context_abc.py @@ -1,11 +1,11 @@ from abc import ABC, abstractmethod -from cpl.core.database.database_settings import DatabaseSettings +from cpl.database.database_settings import DatabaseSettings from mysql.connector.cursor import MySQLCursorBuffered class DatabaseContextABC(ABC): - r"""ABC for the :class:`cpl.core.database.context.database_context.DatabaseContext`""" + r"""ABC for the :class:`cpl.database.context.database_context.DatabaseContext`""" @abstractmethod def __init__(self, *args): @@ -21,7 +21,7 @@ class DatabaseContextABC(ABC): r"""Connects to a database by connection settings Parameter: - database_settings :class:`cpl.core.database.database_settings.DatabaseSettings` + database_settings :class:`cpl.database.database_settings.DatabaseSettings` """ @abstractmethod diff --git a/src/cpl-core/cpl/core/database/database_settings.py b/src/cpl-database/cpl/database/database_settings.py similarity index 100% rename from src/cpl-core/cpl/core/database/database_settings.py rename to src/cpl-database/cpl/database/database_settings.py diff --git a/src/cpl-core/cpl/core/database/database_settings_name_enum.py b/src/cpl-database/cpl/database/database_settings_name_enum.py similarity index 100% rename from src/cpl-core/cpl/core/database/database_settings_name_enum.py rename to src/cpl-database/cpl/database/database_settings_name_enum.py diff --git a/src/cpl-core/cpl/core/database/db_logger.py b/src/cpl-database/cpl/database/db_logger.py similarity index 100% rename from src/cpl-core/cpl/core/database/db_logger.py rename to src/cpl-database/cpl/database/db_logger.py diff --git a/src/cpl-core/cpl/core/database/table_abc.py b/src/cpl-database/cpl/database/table_abc.py similarity index 100% rename from src/cpl-core/cpl/core/database/table_abc.py rename to src/cpl-database/cpl/database/table_abc.py diff --git a/src/cpl-database/pyproject.toml b/src/cpl-database/pyproject.toml new file mode 100644 index 00000000..cecb85d2 --- /dev/null +++ b/src/cpl-database/pyproject.toml @@ -0,0 +1,30 @@ +[build-system] +requires = ["setuptools>=70.1.0", "wheel>=0.43.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "cpl-database" +version = "2024.7.0" +description = "CPL database" +readme ="CPL database package" +requires-python = ">=3.12" +license = { text = "MIT" } +authors = [ + { name = "Sven Heidemann", email = "sven.heidemann@sh-edraft.de" } +] +keywords = ["cpl", "database", "backend", "shared", "library"] + +dynamic = ["dependencies", "optional-dependencies"] + +[project.urls] +Homepage = "https://www.sh-edraft.de" + +[tool.setuptools.packages.find] +where = ["."] +include = ["cpl*"] + +[tool.setuptools.dynamic] +dependencies = { file = ["requirements.txt"] } +optional-dependencies.dev = { file = ["requirements.dev.txt"] } + + diff --git a/src/cpl-database/requirements.dev.txt b/src/cpl-database/requirements.dev.txt new file mode 100644 index 00000000..e7664b42 --- /dev/null +++ b/src/cpl-database/requirements.dev.txt @@ -0,0 +1 @@ +black==25.1.0 \ No newline at end of file diff --git a/src/cpl-database/requirements.txt b/src/cpl-database/requirements.txt new file mode 100644 index 00000000..e8d9db7b --- /dev/null +++ b/src/cpl-database/requirements.txt @@ -0,0 +1,2 @@ +cpl-core +cpl-dependency \ No newline at end of file diff --git a/src/cpl-core/cpl/core/dependency_injection/__init__.py b/src/cpl-dependency/cpl/dependency/__init__.py similarity index 100% rename from src/cpl-core/cpl/core/dependency_injection/__init__.py rename to src/cpl-dependency/cpl/dependency/__init__.py diff --git a/src/cpl-core/cpl/core/dependency_injection/scope.py b/src/cpl-dependency/cpl/dependency/scope.py similarity index 77% rename from src/cpl-core/cpl/core/dependency_injection/scope.py rename to src/cpl-dependency/cpl/dependency/scope.py index fc41f954..24cae6fe 100644 --- a/src/cpl-core/cpl/core/dependency_injection/scope.py +++ b/src/cpl-dependency/cpl/dependency/scope.py @@ -1,5 +1,5 @@ -from cpl.core.dependency_injection.scope_abc import ScopeABC -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC +from cpl.dependency.scope_abc import ScopeABC +from cpl.dependency.service_provider_abc import ServiceProviderABC class Scope(ScopeABC): diff --git a/src/cpl-core/cpl/core/dependency_injection/scope_abc.py b/src/cpl-dependency/cpl/dependency/scope_abc.py similarity index 64% rename from src/cpl-core/cpl/core/dependency_injection/scope_abc.py rename to src/cpl-dependency/cpl/dependency/scope_abc.py index bbe99e79..ecb363a5 100644 --- a/src/cpl-core/cpl/core/dependency_injection/scope_abc.py +++ b/src/cpl-dependency/cpl/dependency/scope_abc.py @@ -2,7 +2,7 @@ from abc import ABC, abstractmethod class ScopeABC(ABC): - r"""ABC for the class :class:`cpl.core.dependency_injection.scope.Scope`""" + r"""ABC for the class :class:`cpl.dependency.scope.Scope`""" def __init__(self): pass @@ -13,7 +13,7 @@ class ScopeABC(ABC): r"""Returns to service provider of scope Returns: - Object of type :class:`cpl.core.dependency_injection.service_provider_abc.ServiceProviderABC` + Object of type :class:`cpl.dependency.service_provider_abc.ServiceProviderABC` """ @abstractmethod diff --git a/src/cpl-dependency/cpl/dependency/scope_builder.py b/src/cpl-dependency/cpl/dependency/scope_builder.py new file mode 100644 index 00000000..3d6f5fce --- /dev/null +++ b/src/cpl-dependency/cpl/dependency/scope_builder.py @@ -0,0 +1,18 @@ +from cpl.dependency.scope import Scope +from cpl.dependency.scope_abc import ScopeABC +from cpl.dependency.service_provider_abc import ServiceProviderABC + + +class ScopeBuilder: + r"""Class to build :class:`cpl.dependency.scope.Scope`""" + + def __init__(self, service_provider: ServiceProviderABC) -> None: + self._service_provider = service_provider + + def build(self) -> ScopeABC: + r"""Returns scope + + Returns: + Object of type :class:`cpl.dependency.scope.Scope` + """ + return Scope(self._service_provider) diff --git a/src/cpl-core/cpl/core/dependency_injection/service_collection.py b/src/cpl-dependency/cpl/dependency/service_collection.py similarity index 83% rename from src/cpl-core/cpl/core/dependency_injection/service_collection.py rename to src/cpl-dependency/cpl/dependency/service_collection.py index 1f509cbb..5fddccae 100644 --- a/src/cpl-core/cpl/core/dependency_injection/service_collection.py +++ b/src/cpl-dependency/cpl/dependency/service_collection.py @@ -1,12 +1,12 @@ from typing import Union, Type, Callable, Optional -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 -from cpl.core.dependency_injection.service_descriptor import ServiceDescriptor -from cpl.core.dependency_injection.service_lifetime_enum import ServiceLifetimeEnum -from cpl.core.dependency_injection.service_provider import ServiceProvider -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC +from cpl.database.context.database_context_abc import DatabaseContextABC +from cpl.database.database_settings import DatabaseSettings +from cpl.dependency.service_collection_abc import ServiceCollectionABC +from cpl.dependency.service_descriptor import ServiceDescriptor +from cpl.dependency.service_lifetime_enum import ServiceLifetimeEnum +from cpl.dependency.service_provider import ServiceProvider +from cpl.dependency.service_provider_abc import ServiceProviderABC from cpl.core.log.logger import Logger from cpl.core.log.logger_abc import LoggerABC from cpl.core.pipes.pipe_abc import PipeABC diff --git a/src/cpl-core/cpl/core/dependency_injection/service_collection_abc.py b/src/cpl-dependency/cpl/dependency/service_collection_abc.py similarity index 72% rename from src/cpl-core/cpl/core/dependency_injection/service_collection_abc.py rename to src/cpl-dependency/cpl/dependency/service_collection_abc.py index c9d3da8d..0725fd26 100644 --- a/src/cpl-core/cpl/core/dependency_injection/service_collection_abc.py +++ b/src/cpl-dependency/cpl/dependency/service_collection_abc.py @@ -1,14 +1,14 @@ from abc import abstractmethod, ABC from typing import Type -from cpl.core.database.context.database_context_abc import DatabaseContextABC -from cpl.core.database.database_settings import DatabaseSettings -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC +from cpl.database.context.database_context_abc import DatabaseContextABC +from cpl.database.database_settings import DatabaseSettings +from cpl.dependency.service_provider_abc import ServiceProviderABC from cpl.core.typing import T, Source class ServiceCollectionABC(ABC): - r"""ABC for the class :class:`cpl.core.dependency_injection.service_collection.ServiceCollection`""" + r"""ABC for the class :class:`cpl.dependency.service_collection.ServiceCollection`""" @abstractmethod def __init__(self): @@ -19,7 +19,7 @@ class ServiceCollectionABC(ABC): r"""Adds database context Parameter: - db_context: Type[:class:`cpl.core.database.context.database_context_abc.DatabaseContextABC`] + db_context: Type[:class:`cpl.database.context.database_context_abc.DatabaseContextABC`] Database context """ @@ -50,7 +50,7 @@ class ServiceCollectionABC(ABC): Object of the service Returns: - self: :class:`cpl.core.dependency_injection.service_collection_abc.ServiceCollectionABC` + self: :class:`cpl.dependency.service_collection_abc.ServiceCollectionABC` """ @abstractmethod @@ -64,7 +64,7 @@ class ServiceCollectionABC(ABC): Object of the service Returns: - self: :class:`cpl.core.dependency_injection.service_collection_abc.ServiceCollectionABC` + self: :class:`cpl.dependency.service_collection_abc.ServiceCollectionABC` """ @abstractmethod @@ -78,7 +78,7 @@ class ServiceCollectionABC(ABC): Object of the service Returns: - self: :class:`cpl.core.dependency_injection.service_collection_abc.ServiceCollectionABC` + self: :class:`cpl.dependency.service_collection_abc.ServiceCollectionABC` """ @abstractmethod @@ -86,5 +86,5 @@ class ServiceCollectionABC(ABC): r"""Creates instance of the service provider Returns: - Object of type :class:`cpl.core.dependency_injection.service_provider_abc.ServiceProviderABC` + Object of type :class:`cpl.dependency.service_provider_abc.ServiceProviderABC` """ diff --git a/src/cpl-core/cpl/core/dependency_injection/service_descriptor.py b/src/cpl-dependency/cpl/dependency/service_descriptor.py similarity index 87% rename from src/cpl-core/cpl/core/dependency_injection/service_descriptor.py rename to src/cpl-dependency/cpl/dependency/service_descriptor.py index 3f1b58fd..a2febf13 100644 --- a/src/cpl-core/cpl/core/dependency_injection/service_descriptor.py +++ b/src/cpl-dependency/cpl/dependency/service_descriptor.py @@ -1,6 +1,6 @@ from typing import Union, Optional -from cpl.core.dependency_injection.service_lifetime_enum import ServiceLifetimeEnum +from cpl.dependency.service_lifetime_enum import ServiceLifetimeEnum class ServiceDescriptor: @@ -9,7 +9,7 @@ class ServiceDescriptor: Parameter: implementation: Union[:class:`type`, Optional[:class:`object`]] Object or type of service - lifetime: :class:`cpl.core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum` + lifetime: :class:`cpl.dependency.service_lifetime_enum.ServiceLifetimeEnum` Lifetime of the service """ diff --git a/src/cpl-core/cpl/core/dependency_injection/service_lifetime_enum.py b/src/cpl-dependency/cpl/dependency/service_lifetime_enum.py similarity index 100% rename from src/cpl-core/cpl/core/dependency_injection/service_lifetime_enum.py rename to src/cpl-dependency/cpl/dependency/service_lifetime_enum.py diff --git a/src/cpl-core/cpl/core/dependency_injection/service_provider.py b/src/cpl-dependency/cpl/dependency/service_provider.py similarity index 90% rename from src/cpl-core/cpl/core/dependency_injection/service_provider.py rename to src/cpl-dependency/cpl/dependency/service_provider.py index aefbebb5..bae6350e 100644 --- a/src/cpl-core/cpl/core/dependency_injection/service_provider.py +++ b/src/cpl-dependency/cpl/dependency/service_provider.py @@ -5,14 +5,14 @@ from typing import Optional from cpl.core.configuration import Configuration from cpl.core.configuration.configuration_model_abc import ConfigurationModelABC -from cpl.core.database.context.database_context_abc import DatabaseContextABC -from cpl.core.dependency_injection.scope_abc import ScopeABC -from cpl.core.dependency_injection.scope_builder import ScopeBuilder -from cpl.core.dependency_injection.service_descriptor import ServiceDescriptor -from cpl.core.dependency_injection.service_lifetime_enum import ServiceLifetimeEnum -from cpl.core.dependency_injection.service_provider_abc import ServiceProviderABC +from cpl.database.context.database_context_abc import DatabaseContextABC from cpl.core.environment import Environment from cpl.core.typing import T, R, Source +from cpl.dependency.scope_abc import ScopeABC +from cpl.dependency.scope_builder import ScopeBuilder +from cpl.dependency.service_descriptor import ServiceDescriptor +from cpl.dependency.service_lifetime_enum import ServiceLifetimeEnum +from cpl.dependency.service_provider_abc import ServiceProviderABC class ServiceProvider(ServiceProviderABC): @@ -20,11 +20,11 @@ class ServiceProvider(ServiceProviderABC): Parameter --------- - service_descriptors: list[:class:`cpl.core.dependency_injection.service_descriptor.ServiceDescriptor`] + service_descriptors: list[:class:`cpl.dependency.service_descriptor.ServiceDescriptor`] Descriptor of the service config: :class:`cpl.core.configuration.configuration_abc.ConfigurationABC` CPL Configuration - db_context: Optional[:class:`cpl.core.database.context.database_context_abc.DatabaseContextABC`] + db_context: Optional[:class:`cpl.database.context.database_context_abc.DatabaseContextABC`] Database representation """ diff --git a/src/cpl-core/cpl/core/dependency_injection/service_provider_abc.py b/src/cpl-dependency/cpl/dependency/service_provider_abc.py similarity index 88% rename from src/cpl-core/cpl/core/dependency_injection/service_provider_abc.py rename to src/cpl-dependency/cpl/dependency/service_provider_abc.py index 99834d8e..142e9daa 100644 --- a/src/cpl-core/cpl/core/dependency_injection/service_provider_abc.py +++ b/src/cpl-dependency/cpl/dependency/service_provider_abc.py @@ -3,12 +3,12 @@ from abc import abstractmethod, ABC from inspect import Signature, signature from typing import Optional -from cpl.core.dependency_injection.scope_abc import ScopeABC +from cpl.dependency.scope_abc import ScopeABC from cpl.core.typing import T, R class ServiceProviderABC(ABC): - r"""ABC for the class :class:`cpl.core.dependency_injection.service_provider.ServiceProvider`""" + r"""ABC for the class :class:`cpl.dependency.service_provider.ServiceProvider`""" _provider: Optional["ServiceProviderABC"] = None @@ -44,7 +44,7 @@ class ServiceProviderABC(ABC): Parameter --------- - Object of type :class:`cpl.core.dependency_injection.scope_abc.ScopeABC` + Object of type :class:`cpl.dependency.scope_abc.ScopeABC` Service scope """ @@ -54,7 +54,7 @@ class ServiceProviderABC(ABC): Returns ------- - Object of type :class:`cpl.core.dependency_injection.scope_abc.ScopeABC` + Object of type :class:`cpl.dependency.scope_abc.ScopeABC` """ @abstractmethod diff --git a/src/cpl-dependency/pyproject.toml b/src/cpl-dependency/pyproject.toml new file mode 100644 index 00000000..2b05b776 --- /dev/null +++ b/src/cpl-dependency/pyproject.toml @@ -0,0 +1,30 @@ +[build-system] +requires = ["setuptools>=70.1.0", "wheel>=0.43.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "cpl-dependency" +version = "2024.7.0" +description = "CPL dependency" +readme ="CPL dependency package" +requires-python = ">=3.12" +license = { text = "MIT" } +authors = [ + { name = "Sven Heidemann", email = "sven.heidemann@sh-edraft.de" } +] +keywords = ["cpl", "dependency", "backend", "shared", "library"] + +dynamic = ["dependencies", "optional-dependencies"] + +[project.urls] +Homepage = "https://www.sh-edraft.de" + +[tool.setuptools.packages.find] +where = ["."] +include = ["cpl*"] + +[tool.setuptools.dynamic] +dependencies = { file = ["requirements.txt"] } +optional-dependencies.dev = { file = ["requirements.dev.txt"] } + + diff --git a/src/cpl-dependency/requirements.dev.txt b/src/cpl-dependency/requirements.dev.txt new file mode 100644 index 00000000..e7664b42 --- /dev/null +++ b/src/cpl-dependency/requirements.dev.txt @@ -0,0 +1 @@ +black==25.1.0 \ No newline at end of file diff --git a/src/cpl-dependency/requirements.txt b/src/cpl-dependency/requirements.txt new file mode 100644 index 00000000..a8244b30 --- /dev/null +++ b/src/cpl-dependency/requirements.txt @@ -0,0 +1 @@ +cpl-core \ No newline at end of file diff --git a/src/cpl-mail/cpl/mail/__init__.py b/src/cpl-mail/cpl/mail/__init__.py index 5632265b..8dee6c88 100644 --- a/src/cpl-mail/cpl/mail/__init__.py +++ b/src/cpl-mail/cpl/mail/__init__.py @@ -18,7 +18,7 @@ def add_mail(self): def init(): - from cpl.core.dependency_injection import ServiceCollection + from cpl.dependency import ServiceCollection ServiceCollection.add_mail = add_mail diff --git a/src/cpl-translation/cpl/translation/__init__.py b/src/cpl-translation/cpl/translation/__init__.py index e1fe1089..6f7dcf8b 100644 --- a/src/cpl-translation/cpl/translation/__init__.py +++ b/src/cpl-translation/cpl/translation/__init__.py @@ -19,7 +19,7 @@ def add_translation(self): def init(): - from cpl.core.dependency_injection import ServiceCollection + from cpl.dependency import ServiceCollection ServiceCollection.add_translation = add_translation diff --git a/tests/custom/async/src/async/application.py b/tests/custom/async/src/async/application.py index 58f07ce5..e641ba85 100644 --- a/tests/custom/async/src/async/application.py +++ b/tests/custom/async/src/async/application.py @@ -1,7 +1,7 @@ -from cpl.core.application import ApplicationABC +from cpl.application import ApplicationABC from cpl.core.configuration import ConfigurationABC from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC class Application(ApplicationABC): diff --git a/tests/custom/async/src/async/main.py b/tests/custom/async/src/async/main.py index 5dcb64fb..141ceee7 100644 --- a/tests/custom/async/src/async/main.py +++ b/tests/custom/async/src/async/main.py @@ -1,5 +1,5 @@ import asyncio -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from application import Application from startup import Startup diff --git a/tests/custom/async/src/async/startup.py b/tests/custom/async/src/async/startup.py index 29f7159e..24044f0f 100644 --- a/tests/custom/async/src/async/startup.py +++ b/tests/custom/async/src/async/startup.py @@ -1,6 +1,6 @@ -from cpl.core.application.async_startup_abc import AsyncStartupABC +from cpl.application.async_startup_abc import AsyncStartupABC from cpl.core.configuration import ConfigurationABC -from cpl.core.dependency_injection import ServiceProviderABC, ServiceCollectionABC +from cpl.dependency import ServiceProviderABC, ServiceCollectionABC from cpl.core.environment import Environment @@ -13,7 +13,5 @@ class Startup(AsyncStartupABC): ) -> ConfigurationABC: return configuration - async def configure_services( - self, services: ServiceCollectionABC, environment: Environment - ) -> ServiceProviderABC: + async def configure_services(self, services: ServiceCollectionABC, environment: Environment) -> ServiceProviderABC: return services.build_service_provider() diff --git a/tests/custom/database/src/application.py b/tests/custom/database/src/application.py index f28f6034..70ca4a43 100644 --- a/tests/custom/database/src/application.py +++ b/tests/custom/database/src/application.py @@ -1,17 +1,18 @@ from typing import Optional -from cpl.core.application import ApplicationABC -from cpl.core.configuration import ConfigurationABC +from cpl.application import ApplicationABC +from cpl.core.configuration import Configuration from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.core.environment import Environment +from cpl.dependency import ServiceProviderABC from cpl.core.log import LoggerABC from model.user_repo_abc import UserRepoABC from model.user_repo import UserRepo class Application(ApplicationABC): - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) + def __init__(self, services: ServiceProviderABC): + ApplicationABC.__init__(self, services) self._logger: Optional[LoggerABC] = None @@ -19,10 +20,8 @@ class Application(ApplicationABC): self._logger = self._services.get_service(LoggerABC) def main(self): - self._logger.header(f"{self._configuration.environment.application_name}:") - self._logger.debug(f"Host: {self._configuration.environment.host_name}") - self._logger.debug(f"Environment: {self._configuration.environment.environment_name}") - self._logger.debug(f"Customer: {self._configuration.environment.customer}") + self._logger.debug(f"Host: {Environment.get_host_name()}") + self._logger.debug(f"Environment: {Environment.get_environment()}") user_repo: UserRepo = self._services.get_service(UserRepoABC) if len(user_repo.get_users()) == 0: diff --git a/tests/custom/database/src/main.py b/tests/custom/database/src/main.py index 2097002b..a8909e63 100644 --- a/tests/custom/database/src/main.py +++ b/tests/custom/database/src/main.py @@ -1,4 +1,4 @@ -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from application import Application from startup import Startup diff --git a/tests/custom/database/src/model/city_model.py b/tests/custom/database/src/model/city_model.py index c67d3d31..0d22259d 100644 --- a/tests/custom/database/src/model/city_model.py +++ b/tests/custom/database/src/model/city_model.py @@ -1,4 +1,4 @@ -from cpl.core.database import TableABC +from cpl.database import TableABC class CityModel(TableABC): diff --git a/tests/custom/database/src/model/db_context.py b/tests/custom/database/src/model/db_context.py index 6f947c07..d23d1bdb 100644 --- a/tests/custom/database/src/model/db_context.py +++ b/tests/custom/database/src/model/db_context.py @@ -1,5 +1,5 @@ -from cpl.core.database import DatabaseSettings -from cpl.core.database.context import DatabaseContext +from cpl.database import DatabaseSettings +from cpl.database.context import DatabaseContext class DBContext(DatabaseContext): diff --git a/tests/custom/database/src/model/user_model.py b/tests/custom/database/src/model/user_model.py index eecd97de..f6fa56d6 100644 --- a/tests/custom/database/src/model/user_model.py +++ b/tests/custom/database/src/model/user_model.py @@ -1,4 +1,4 @@ -from cpl.core.database import TableABC +from cpl.database import TableABC from .city_model import CityModel diff --git a/tests/custom/database/src/model/user_repo.py b/tests/custom/database/src/model/user_repo.py index 6b8345b7..123d483a 100644 --- a/tests/custom/database/src/model/user_repo.py +++ b/tests/custom/database/src/model/user_repo.py @@ -1,5 +1,5 @@ from cpl.core.console import Console -from cpl.core.database.context import DatabaseContextABC +from cpl.database.context import DatabaseContextABC from .city_model import CityModel from .user_model import UserModel diff --git a/tests/custom/database/src/startup.py b/tests/custom/database/src/startup.py index fdbf6239..6c95b598 100644 --- a/tests/custom/database/src/startup.py +++ b/tests/custom/database/src/startup.py @@ -1,8 +1,8 @@ -from cpl.core.application import StartupABC -from cpl.core.configuration import ConfigurationABC -from cpl.core.database import DatabaseSettings -from cpl.core.dependency_injection import ServiceCollectionABC, ServiceProviderABC -from cpl.core.environment import EnvironmentABC +from cpl.application import StartupABC +from cpl.core.configuration import Configuration +from cpl.database import DatabaseSettings +from cpl.dependency import ServiceCollectionABC, ServiceProviderABC +from cpl.core.environment import Environment from cpl.core.log import Logger, LoggerABC from model.db_context import DBContext @@ -16,28 +16,18 @@ class Startup(StartupABC): self._configuration = None - def configure_configuration( - self, configuration: ConfigurationABC, environment: EnvironmentABC - ) -> ConfigurationABC: - configuration.add_environment_variables("PYTHON_") - configuration.add_environment_variables("CPL_") + def configure_configuration(self, configuration: Configuration, environment: Environment): configuration.add_json_file(f"appsettings.json") - configuration.add_json_file(f"appsettings.{configuration.environment.environment_name}.json") - configuration.add_json_file(f"appsettings.{configuration.environment.host_name}.json", optional=True) + configuration.add_json_file(f"appsettings.{environment.get_environment()}.json") + configuration.add_json_file(f"appsettings.{environment.get_host_name()}.json", optional=True) self._configuration = configuration - return configuration - - def configure_services( - self, services: ServiceCollectionABC, environment: EnvironmentABC - ) -> ServiceProviderABC: + def configure_services(self, services: ServiceCollectionABC, environment: Environment): # Create and connect to database - self._configuration.parse_console_arguments(services) - db_settings: DatabaseSettings = self._configuration.get_configuration(DatabaseSettings) + db_settings: DatabaseSettings = self._configuration.get(DatabaseSettings) services.add_db_context(DBContext, db_settings) services.add_singleton(UserRepoABC, UserRepo) services.add_singleton(LoggerABC, Logger) - return services.build_service_provider() diff --git a/tests/custom/di/src/di/application.py b/tests/custom/di/src/di/application.py index 3dba5b4a..5c84fa17 100644 --- a/tests/custom/di/src/di/application.py +++ b/tests/custom/di/src/di/application.py @@ -1,8 +1,8 @@ -from cpl.core.application import ApplicationABC +from cpl.application import ApplicationABC from cpl.core.configuration import ConfigurationABC from cpl.core.console.console import Console -from cpl.core.dependency_injection import ServiceProviderABC -from cpl.core.dependency_injection.scope import Scope +from cpl.dependency import ServiceProviderABC +from cpl.dependency.scope import Scope from di.static_test import StaticTest from di.test_abc import TestABC from di.test_service import TestService diff --git a/tests/custom/di/src/di/main.py b/tests/custom/di/src/di/main.py index 4eb01d4a..5982b52e 100644 --- a/tests/custom/di/src/di/main.py +++ b/tests/custom/di/src/di/main.py @@ -1,4 +1,4 @@ -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from di.application import Application from di.startup import Startup diff --git a/tests/custom/di/src/di/startup.py b/tests/custom/di/src/di/startup.py index 820f2380..39718414 100644 --- a/tests/custom/di/src/di/startup.py +++ b/tests/custom/di/src/di/startup.py @@ -1,6 +1,6 @@ -from cpl.core.application import StartupABC +from cpl.application import StartupABC from cpl.core.configuration import ConfigurationABC -from cpl.core.dependency_injection import ServiceProviderABC, ServiceCollectionABC +from cpl.dependency import ServiceProviderABC, ServiceCollectionABC from cpl.core.environment import Environment from di.test1_service import Test1Service from di.test2_service import Test2Service @@ -14,14 +14,10 @@ class Startup(StartupABC): def __init__(self): StartupABC.__init__(self) - def configure_configuration( - self, configuration: ConfigurationABC, environment: Environment - ) -> ConfigurationABC: + def configure_configuration(self, configuration: ConfigurationABC, environment: Environment) -> ConfigurationABC: return configuration - def configure_services( - self, services: ServiceCollectionABC, environment: Environment - ) -> ServiceProviderABC: + def configure_services(self, services: ServiceCollectionABC, environment: Environment) -> ServiceProviderABC: services.add_scoped(TestService) services.add_scoped(DITesterService) diff --git a/tests/custom/di/src/di/static_test.py b/tests/custom/di/src/di/static_test.py index b90b4933..72172a72 100644 --- a/tests/custom/di/src/di/static_test.py +++ b/tests/custom/di/src/di/static_test.py @@ -1,5 +1,5 @@ from cpl.core.configuration import ConfigurationABC -from cpl.core.dependency_injection import ServiceProvider, ServiceProviderABC +from cpl.dependency import ServiceProvider, ServiceProviderABC from di.test_service import TestService diff --git a/tests/custom/general/src/general/application.py b/tests/custom/general/src/general/application.py index 9a8ef670..8df62215 100644 --- a/tests/custom/general/src/general/application.py +++ b/tests/custom/general/src/general/application.py @@ -1,10 +1,10 @@ import time from typing import Optional -from cpl.core.application.application_abc import ApplicationABC +from cpl.application.application_abc import ApplicationABC from cpl.core.configuration import Configuration from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC from cpl.core.environment import Environment from cpl.core.log import LoggerABC from cpl.core.pipes import IPAddressPipe diff --git a/tests/custom/general/src/general/main.py b/tests/custom/general/src/general/main.py index 9fb7cc54..7a490f79 100644 --- a/tests/custom/general/src/general/main.py +++ b/tests/custom/general/src/general/main.py @@ -1,5 +1,5 @@ from application import Application -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from test_extension import TestExtension from startup import Startup from test_startup_extension import TestStartupExtension diff --git a/tests/custom/general/src/general/startup.py b/tests/custom/general/src/general/startup.py index e4af1412..ecb90968 100644 --- a/tests/custom/general/src/general/startup.py +++ b/tests/custom/general/src/general/startup.py @@ -1,6 +1,6 @@ -from cpl.core.application import StartupABC +from cpl.application import StartupABC from cpl.core.configuration import Configuration -from cpl.core.dependency_injection import ServiceCollectionABC, ServiceProviderABC +from cpl.dependency import ServiceCollectionABC, ServiceProviderABC from cpl.core.environment import Environment from cpl.core.pipes import IPAddressPipe from test_service import TestService diff --git a/tests/custom/general/src/general/test_extension.py b/tests/custom/general/src/general/test_extension.py index 0dc06646..82c1942a 100644 --- a/tests/custom/general/src/general/test_extension.py +++ b/tests/custom/general/src/general/test_extension.py @@ -1,7 +1,7 @@ -from cpl.core.application import ApplicationExtensionABC +from cpl.application import ApplicationExtensionABC from cpl.core.configuration import Configuration from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC class TestExtension(ApplicationExtensionABC): diff --git a/tests/custom/general/src/general/test_service.py b/tests/custom/general/src/general/test_service.py index a521ef11..37e9572f 100644 --- a/tests/custom/general/src/general/test_service.py +++ b/tests/custom/general/src/general/test_service.py @@ -1,5 +1,5 @@ from cpl.core.console.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC from cpl.core.pipes.ip_address_pipe import IPAddressPipe diff --git a/tests/custom/general/src/general/test_startup_extension.py b/tests/custom/general/src/general/test_startup_extension.py index 7bb2e3be..ec67cbac 100644 --- a/tests/custom/general/src/general/test_startup_extension.py +++ b/tests/custom/general/src/general/test_startup_extension.py @@ -1,7 +1,7 @@ -from cpl.core.application import StartupExtensionABC +from cpl.application import StartupExtensionABC from cpl.core.configuration import Configuration from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceCollectionABC +from cpl.dependency import ServiceCollectionABC from cpl.core.environment import Environment diff --git a/tests/custom/translation/src/translation/application.py b/tests/custom/translation/src/translation/application.py index 680f1dba..28a7951e 100644 --- a/tests/custom/translation/src/translation/application.py +++ b/tests/custom/translation/src/translation/application.py @@ -1,7 +1,7 @@ -from cpl.core.application import ApplicationABC +from cpl.application import ApplicationABC from cpl.core.configuration import ConfigurationABC from cpl.core.console import Console -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC from cpl.translation.translate_pipe import TranslatePipe from cpl.translation.translation_service_abc import TranslationServiceABC from cpl.translation.translation_settings import TranslationSettings diff --git a/tests/custom/translation/src/translation/main.py b/tests/custom/translation/src/translation/main.py index 7b8731b6..094d8ee0 100644 --- a/tests/custom/translation/src/translation/main.py +++ b/tests/custom/translation/src/translation/main.py @@ -1,4 +1,4 @@ -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from translation.application import Application from translation.startup import Startup diff --git a/tests/custom/translation/src/translation/startup.py b/tests/custom/translation/src/translation/startup.py index 2e07b1e3..8cbddcab 100644 --- a/tests/custom/translation/src/translation/startup.py +++ b/tests/custom/translation/src/translation/startup.py @@ -1,6 +1,6 @@ -from cpl.core.application import StartupABC +from cpl.application import StartupABC from cpl.core.configuration import ConfigurationABC -from cpl.core.dependency_injection import ServiceProviderABC, ServiceCollectionABC +from cpl.dependency import ServiceProviderABC, ServiceCollectionABC from cpl.core.environment import Environment @@ -8,14 +8,10 @@ class Startup(StartupABC): def __init__(self): StartupABC.__init__(self) - def configure_configuration( - self, configuration: ConfigurationABC, environment: Environment - ) -> ConfigurationABC: + def configure_configuration(self, configuration: ConfigurationABC, environment: Environment) -> ConfigurationABC: configuration.add_json_file("appsettings.json") return configuration - def configure_services( - self, services: ServiceCollectionABC, environment: Environment - ) -> ServiceProviderABC: + def configure_services(self, services: ServiceCollectionABC, environment: Environment) -> ServiceProviderABC: services.add_translation() return services.build_service_provider() diff --git a/unittests/unittests/application.py b/unittests/unittests/application.py index f2223343..9dedfb17 100644 --- a/unittests/unittests/application.py +++ b/unittests/unittests/application.py @@ -1,8 +1,8 @@ import unittest -from cpl.core.application import ApplicationABC +from cpl.application import ApplicationABC from cpl.core.configuration import ConfigurationABC -from cpl.core.dependency_injection import ServiceProviderABC +from cpl.dependency import ServiceProviderABC from unittests_cli.cli_test_suite import CLITestSuite from unittests_core.core_test_suite import CoreTestSuite from unittests_query.query_test_suite import QueryTestSuite diff --git a/unittests/unittests/main.py b/unittests/unittests/main.py index c7bad62c..3c4cf4cc 100644 --- a/unittests/unittests/main.py +++ b/unittests/unittests/main.py @@ -1,4 +1,4 @@ -from cpl.core.application import ApplicationBuilder +from cpl.application import ApplicationBuilder from unittests.application import Application diff --git a/unittests/unittests_core/configuration/configuration_test_case.py b/unittests/unittests_core/configuration/configuration_test_case.py index 9f7e26c7..614c0372 100644 --- a/unittests/unittests_core/configuration/configuration_test_case.py +++ b/unittests/unittests_core/configuration/configuration_test_case.py @@ -4,8 +4,8 @@ import unittest from unittest.mock import Mock, MagicMock from cpl.core.configuration import Configuration, ArgumentTypeEnum -from cpl.core.database import DatabaseSettings -from cpl.core.dependency_injection import ServiceProvider, ServiceCollection +from cpl.database import DatabaseSettings +from cpl.dependency import ServiceProvider, ServiceCollection from cpl.mail import EMailClientSettings diff --git a/unittests/unittests_core/configuration/console_arguments_test_case.py b/unittests/unittests_core/configuration/console_arguments_test_case.py index d8e47cf8..d4e2db7f 100644 --- a/unittests/unittests_core/configuration/console_arguments_test_case.py +++ b/unittests/unittests_core/configuration/console_arguments_test_case.py @@ -3,7 +3,7 @@ import unittest from unittest.mock import Mock, MagicMock from cpl.core.configuration import Configuration, ArgumentTypeEnum -from cpl.core.dependency_injection import ServiceCollection +from cpl.dependency import ServiceCollection class ConsoleArgumentsTestCase(unittest.TestCase): diff --git a/unittests/unittests_core/di/service_collection_test_case.py b/unittests/unittests_core/di/service_collection_test_case.py index 0c1ae51f..a75fda9a 100644 --- a/unittests/unittests_core/di/service_collection_test_case.py +++ b/unittests/unittests_core/di/service_collection_test_case.py @@ -2,7 +2,7 @@ import unittest from unittest.mock import Mock from cpl.core.configuration import Configuration -from cpl.core.dependency_injection import ServiceCollection, ServiceLifetimeEnum, ServiceProviderABC +from cpl.dependency import ServiceCollection, ServiceLifetimeEnum, ServiceProviderABC class ServiceCollectionTestCase(unittest.TestCase): diff --git a/unittests/unittests_core/di/service_provider_test_case.py b/unittests/unittests_core/di/service_provider_test_case.py index 44bf2e41..e6d6bc81 100644 --- a/unittests/unittests_core/di/service_provider_test_case.py +++ b/unittests/unittests_core/di/service_provider_test_case.py @@ -1,7 +1,7 @@ import unittest from cpl.core.configuration import Configuration -from cpl.core.dependency_injection import ServiceCollection, ServiceProviderABC +from cpl.dependency import ServiceCollection, ServiceProviderABC class ServiceCount: