diff --git a/example/api/src/main.py b/example/api/src/main.py index cc102694..b5593953 100644 --- a/example/api/src/main.py +++ b/example/api/src/main.py @@ -1,9 +1,8 @@ from starlette.responses import JSONResponse -from cpl import api +from cpl.api.api_module import ApiModule from cpl.api.application.web_app import WebApp -from cpl.api_module import ApiModule -from cpl.application import ApplicationBuilder +from cpl.application.application_builder import ApplicationBuilder from cpl.auth.permission.permissions import Permissions from cpl.auth.schema import AuthUser, Role from cpl.core.configuration import Configuration diff --git a/src/cpl-api/cpl/api/__init__.py b/src/cpl-api/cpl/api/__init__.py index c9c1aa00..8332d8f7 100644 --- a/src/cpl-api/cpl/api/__init__.py +++ b/src/cpl-api/cpl/api/__init__.py @@ -1,3 +1,4 @@ from .error import APIError, AlreadyExists, EndpointNotImplemented, Forbidden, NotFound, Unauthorized from .logger import APILogger from .settings import ApiSettings +from .api_module import ApiModule diff --git a/src/cpl-api/cpl/api_module.py b/src/cpl-api/cpl/api/api_module.py similarity index 71% rename from src/cpl-api/cpl/api_module.py rename to src/cpl-api/cpl/api/api_module.py index 2732c69c..95f41ba6 100644 --- a/src/cpl-api/cpl/api_module.py +++ b/src/cpl-api/cpl/api/api_module.py @@ -1,11 +1,6 @@ -from cpl.api.registry.policy import PolicyRegistry -from cpl.api.registry.route import RouteRegistry from cpl.auth.auth_module import AuthModule from cpl.auth.permission.permission_module import PermissionsModule -from cpl.core.errors import dependency_error from cpl.database.database_module import DatabaseModule -from cpl.database.model.server_type import ServerType, ServerTypes -from cpl.database.mysql.mysql_module import MySQLModule from cpl.dependency.module import Module, TModule @@ -17,6 +12,9 @@ class ApiModule(Module): @staticmethod def register(collection: "ServiceCollection"): + from cpl.api.registry.policy import PolicyRegistry + from cpl.api.registry.route import RouteRegistry + collection.add_module(DatabaseModule) collection.add_module(AuthModule) diff --git a/src/cpl-api/cpl/api/application/web_app.py b/src/cpl-api/cpl/api/application/web_app.py index 867c20b1..cec6a034 100644 --- a/src/cpl-api/cpl/api/application/web_app.py +++ b/src/cpl-api/cpl/api/application/web_app.py @@ -25,7 +25,7 @@ from cpl.api.registry.route import RouteRegistry from cpl.api.router import Router from cpl.api.settings import ApiSettings from cpl.api.typing import HTTPMethods, PartialMiddleware, PolicyResolver -from cpl.api_module import ApiModule +from cpl.api.api_module import ApiModule from cpl.application.abc.application_abc import ApplicationABC from cpl.auth.auth_module import AuthModule from cpl.auth.permission.permission_module import PermissionsModule diff --git a/src/cpl-auth/cpl/auth/__init__.py b/src/cpl-auth/cpl/auth/__init__.py index 08481e44..0b491065 100644 --- a/src/cpl-auth/cpl/auth/__init__.py +++ b/src/cpl-auth/cpl/auth/__init__.py @@ -7,6 +7,7 @@ from cpl.auth.keycloak.keycloak_admin import KeycloakAdmin as _KeycloakAdmin from cpl.auth.keycloak.keycloak_client import KeycloakClient as _KeycloakClient from .keycloak_settings import KeycloakSettings from .logger import AuthLogger +from .auth_module import AuthModule def _with_permissions(self: _ApplicationABC, *permissions: Type[Enum]) -> _ApplicationABC: diff --git a/src/cpl-auth/cpl/auth/auth_module.py b/src/cpl-auth/cpl/auth/auth_module.py index 660650ef..43971df4 100644 --- a/src/cpl-auth/cpl/auth/auth_module.py +++ b/src/cpl-auth/cpl/auth/auth_module.py @@ -1,19 +1,10 @@ import os -from cpl.auth.keycloak.keycloak_admin import KeycloakAdmin as _KeycloakAdmin -from cpl.auth.keycloak.keycloak_client import KeycloakClient as _KeycloakClient from cpl.database.database_module import DatabaseModule from cpl.database.model.server_type import ServerType, ServerTypes from cpl.database.service.migration_service import MigrationService from cpl.dependency.module import Module, TModule from cpl.dependency.service_collection import ServiceCollection -from .schema._administration.api_key_dao import ApiKeyDao -from .schema._administration.auth_user_dao import AuthUserDao -from .schema._permission.api_key_permission_dao import ApiKeyPermissionDao -from .schema._permission.permission_dao import PermissionDao -from .schema._permission.role_dao import RoleDao -from .schema._permission.role_permission_dao import RolePermissionDao -from .schema._permission.role_user_dao import RoleUserDao class AuthModule(Module): @@ -23,8 +14,18 @@ class AuthModule(Module): @staticmethod def register(collection: ServiceCollection): - collection.add_singleton(_KeycloakClient) - collection.add_singleton(_KeycloakAdmin) + from cpl.auth.keycloak.keycloak_admin import KeycloakAdmin + from cpl.auth.keycloak.keycloak_client import KeycloakClient + from .schema._administration.api_key_dao import ApiKeyDao + from .schema._administration.auth_user_dao import AuthUserDao + from .schema._permission.api_key_permission_dao import ApiKeyPermissionDao + from .schema._permission.permission_dao import PermissionDao + from .schema._permission.role_dao import RoleDao + from .schema._permission.role_permission_dao import RolePermissionDao + from .schema._permission.role_user_dao import RoleUserDao + + collection.add_singleton(KeycloakClient) + collection.add_singleton(KeycloakAdmin) collection.add_singleton(AuthUserDao) collection.add_singleton(ApiKeyDao) diff --git a/src/cpl-auth/cpl/auth/permission/__init__.py b/src/cpl-auth/cpl/auth/permission/__init__.py index e69de29b..90a409af 100644 --- a/src/cpl-auth/cpl/auth/permission/__init__.py +++ b/src/cpl-auth/cpl/auth/permission/__init__.py @@ -0,0 +1,4 @@ +from .permission_module import PermissionsModule +from .permission_seeder import PermissionSeeder +from .permissions import Permissions +from .permissions_registry import PermissionsRegistry diff --git a/src/cpl-database/cpl/database/__init__.py b/src/cpl-database/cpl/database/__init__.py index 280bd06a..a2d4dc88 100644 --- a/src/cpl-database/cpl/database/__init__.py +++ b/src/cpl-database/cpl/database/__init__.py @@ -3,7 +3,9 @@ import os from cpl.application.abc import ApplicationABC as _ApplicationABC from . import mysql as _mysql from . import postgres as _postgres +from .database_module import DatabaseModule from .table_manager import TableManager +from .logger import DBLogger def _with_migrations(self: _ApplicationABC, *paths: str | list[str]) -> _ApplicationABC: diff --git a/src/cpl-database/cpl/database/abc/__init__.py b/src/cpl-database/cpl/database/abc/__init__.py index 05508900..86ffd428 100644 --- a/src/cpl-database/cpl/database/abc/__init__.py +++ b/src/cpl-database/cpl/database/abc/__init__.py @@ -1,4 +1,6 @@ from .connection_abc import ConnectionABC +from .data_access_object_abc import DataAccessObjectABC +from .data_seeder_abc import DataSeederABC from .db_context_abc import DBContextABC from .db_join_model_abc import DbJoinModelABC from .db_model_abc import DbModelABC diff --git a/src/cpl-database/cpl/database/abc/data_access_object_abc.py b/src/cpl-database/cpl/database/abc/data_access_object_abc.py index e7014809..95a12e05 100644 --- a/src/cpl-database/cpl/database/abc/data_access_object_abc.py +++ b/src/cpl-database/cpl/database/abc/data_access_object_abc.py @@ -14,7 +14,7 @@ from cpl.database.logger import DBLogger from cpl.database.model.server_type import ServerType, ServerTypes from cpl.database.postgres.sql_select_builder import SQLSelectBuilder from cpl.database.typing import T_DBM, Attribute, AttributeFilters, AttributeSorts -from cpl.dependency import get_provider +from cpl.dependency.context import get_provider class DataAccessObjectABC(ABC, Generic[T_DBM]): diff --git a/src/cpl-database/cpl/database/abc/db_model_dao_abc.py b/src/cpl-database/cpl/database/abc/db_model_dao_abc.py index 440f774f..9d9bfef6 100644 --- a/src/cpl-database/cpl/database/abc/db_model_dao_abc.py +++ b/src/cpl-database/cpl/database/abc/db_model_dao_abc.py @@ -2,7 +2,7 @@ from abc import abstractmethod from datetime import datetime from typing import Type -from cpl.database import TableManager +from cpl.database.table_manager import TableManager from cpl.database.abc.data_access_object_abc import DataAccessObjectABC from cpl.database.abc.db_model_abc import DbModelABC diff --git a/src/cpl-database/cpl/database/database_module.py b/src/cpl-database/cpl/database/database_module.py index f3eed8a6..75c28f41 100644 --- a/src/cpl-database/cpl/database/database_module.py +++ b/src/cpl-database/cpl/database/database_module.py @@ -1,8 +1,5 @@ from cpl.core.errors import module_dependency_error from cpl.database.model.server_type import ServerType -from cpl.database.schema.executed_migration_dao import ExecutedMigrationDao -from cpl.database.service.migration_service import MigrationService -from cpl.database.service.seeder_service import SeederService from cpl.dependency.module import Module, TModule from cpl.dependency.service_collection import ServiceCollection @@ -17,6 +14,10 @@ class DatabaseModule(Module): @staticmethod def register(collection: ServiceCollection): + from cpl.database.schema import ExecutedMigrationDao + from cpl.database.service.migration_service import MigrationService + from cpl.database.service.seeder_service import SeederService + collection.add_singleton(ExecutedMigrationDao) collection.add_singleton(MigrationService) collection.add_singleton(SeederService) diff --git a/src/cpl-database/cpl/database/mysql/__init__.py b/src/cpl-database/cpl/database/mysql/__init__.py index e69de29b..4fc6f5ac 100644 --- a/src/cpl-database/cpl/database/mysql/__init__.py +++ b/src/cpl-database/cpl/database/mysql/__init__.py @@ -0,0 +1,4 @@ +from .connection import DatabaseConnection +from .db_context import DBContext +from .mysql_module import MySQLModule +from .mysql_pool import MySQLPool diff --git a/src/cpl-database/cpl/database/mysql/mysql_module.py b/src/cpl-database/cpl/database/mysql/mysql_module.py index faf80d31..df4e9841 100644 --- a/src/cpl-database/cpl/database/mysql/mysql_module.py +++ b/src/cpl-database/cpl/database/mysql/mysql_module.py @@ -1,7 +1,5 @@ from cpl.core.configuration.configuration import Configuration -from cpl.database.abc.db_context_abc import DBContextABC from cpl.database.model.server_type import ServerTypes, ServerType -from cpl.database.mysql.db_context import DBContext from cpl.dependency.module import Module, TModule from cpl.dependency.service_collection import ServiceCollection @@ -13,6 +11,9 @@ class MySQLModule(Module): @staticmethod def register(collection: ServiceCollection): + from cpl.database.abc.db_context_abc import DBContextABC + from cpl.database.mysql.db_context import DBContext + ServerType.set_server_type(ServerTypes(ServerTypes.MYSQL.value)) Configuration.set("DB_DEFAULT_PORT", 3306) diff --git a/src/cpl-database/cpl/database/postgres/__init__.py b/src/cpl-database/cpl/database/postgres/__init__.py index e69de29b..a2cad544 100644 --- a/src/cpl-database/cpl/database/postgres/__init__.py +++ b/src/cpl-database/cpl/database/postgres/__init__.py @@ -0,0 +1,4 @@ +from .db_context import DBContext +from .postgres_module import PostgresModule +from .postgres_pool import PostgresPool +from .sql_select_builder import SQLSelectBuilder diff --git a/src/cpl-database/cpl/database/postgres/postgres_module.py b/src/cpl-database/cpl/database/postgres/postgres_module.py index 38e6d12e..59a51d30 100644 --- a/src/cpl-database/cpl/database/postgres/postgres_module.py +++ b/src/cpl-database/cpl/database/postgres/postgres_module.py @@ -1,8 +1,6 @@ from cpl.core.configuration.configuration import Configuration -from cpl.database.abc.db_context_abc import DBContextABC from cpl.database.database_module import DatabaseModule from cpl.database.model.server_type import ServerTypes, ServerType -from cpl.database.postgres.db_context import DBContext from cpl.dependency.module import Module, TModule from cpl.dependency.service_collection import ServiceCollection @@ -14,6 +12,9 @@ class PostgresModule(Module): @staticmethod def register(collection: ServiceCollection): + from cpl.database.abc.db_context_abc import DBContextABC + from cpl.database.postgres.db_context import DBContext + ServerType.set_server_type(ServerTypes(ServerTypes.POSTGRES.value)) Configuration.set("DB_DEFAULT_PORT", 5432) diff --git a/src/cpl-database/cpl/database/schema/__init__.py b/src/cpl-database/cpl/database/schema/__init__.py index e69de29b..1857ac12 100644 --- a/src/cpl-database/cpl/database/schema/__init__.py +++ b/src/cpl-database/cpl/database/schema/__init__.py @@ -0,0 +1,2 @@ +from .executed_migration import ExecutedMigration +from .executed_migration_dao import ExecutedMigrationDao diff --git a/src/cpl-database/cpl/database/schema/executed_migration_dao.py b/src/cpl-database/cpl/database/schema/executed_migration_dao.py index 0a422569..6e22231c 100644 --- a/src/cpl-database/cpl/database/schema/executed_migration_dao.py +++ b/src/cpl-database/cpl/database/schema/executed_migration_dao.py @@ -1,4 +1,4 @@ -from cpl.database import TableManager +from cpl.database.table_manager import TableManager from cpl.database.abc.data_access_object_abc import DataAccessObjectABC from cpl.database.schema.executed_migration import ExecutedMigration diff --git a/src/cpl-database/cpl/database/service/migration_service.py b/src/cpl-database/cpl/database/service/migration_service.py index d51b9d2a..7c698ace 100644 --- a/src/cpl-database/cpl/database/service/migration_service.py +++ b/src/cpl-database/cpl/database/service/migration_service.py @@ -1,9 +1,9 @@ import glob import os -from cpl.database.abc import DBContextABC +from cpl.database.abc.db_context_abc import DBContextABC from cpl.database.logger import DBLogger -from cpl.database.model import Migration +from cpl.database.model.migration import Migration from cpl.database.model.server_type import ServerType, ServerTypes from cpl.database.schema.executed_migration import ExecutedMigration from cpl.database.schema.executed_migration_dao import ExecutedMigrationDao diff --git a/src/cpl-mail/cpl/mail/__init__.py b/src/cpl-mail/cpl/mail/__init__.py index 37375770..846c4dfe 100644 --- a/src/cpl-mail/cpl/mail/__init__.py +++ b/src/cpl-mail/cpl/mail/__init__.py @@ -3,6 +3,7 @@ from .abc.email_client_abc import EMailClientABC from .email_client import EMailClient from .email_client_settings import EMailClientSettings from .email_model import EMail +from .mail_module import MailModule from .logger import MailLogger diff --git a/src/cpl-mail/cpl/mail/mail_module.py b/src/cpl-mail/cpl/mail/mail_module.py index f74e0223..f0e22336 100644 --- a/src/cpl-mail/cpl/mail/mail_module.py +++ b/src/cpl-mail/cpl/mail/mail_module.py @@ -1,7 +1,5 @@ from cpl.dependency import ServiceCollection from cpl.dependency.module import Module, TModule -from cpl.mail.email_client import EMailClient -from cpl.mail.abc.email_client_abc import EMailClientABC class MailModule(Module): @@ -11,4 +9,7 @@ class MailModule(Module): @staticmethod def register(collection: ServiceCollection): + from cpl.mail.abc.email_client_abc import EMailClientABC + from cpl.mail.email_client import EMailClient + collection.add_singleton(EMailClientABC, EMailClient) diff --git a/src/cpl-translation/cpl/translation/__init__.py b/src/cpl-translation/cpl/translation/__init__.py index 5e0604a4..e0d00e28 100644 --- a/src/cpl-translation/cpl/translation/__init__.py +++ b/src/cpl-translation/cpl/translation/__init__.py @@ -1,5 +1,6 @@ from cpl.dependency import ServiceCollection as _ServiceCollection from .translate_pipe import TranslatePipe +from .translation_module import TranslationModule from .translation_service import TranslationService from .translation_service_abc import TranslationServiceABC from .translation_settings import TranslationSettings diff --git a/src/cpl-translation/cpl/translation/translation_module.py b/src/cpl-translation/cpl/translation/translation_module.py index b580e651..2144d77d 100644 --- a/src/cpl-translation/cpl/translation/translation_module.py +++ b/src/cpl-translation/cpl/translation/translation_module.py @@ -1,6 +1,5 @@ from cpl.dependency import ServiceCollection from cpl.dependency.module import Module, TModule -from cpl.translation.translation_service import TranslationService from cpl.translation.translation_service_abc import TranslationServiceABC @@ -11,4 +10,6 @@ class TranslationModule(Module): @staticmethod def register(collection: ServiceCollection): + from cpl.translation.translation_service import TranslationService + collection.add_singleton(TranslationServiceABC, TranslationService)