diff --git a/src/cpl-api/cpl/api/__init__.py b/src/cpl-api/cpl/api/__init__.py index f5309f9d..d3755d7e 100644 --- a/src/cpl-api/cpl/api/__init__.py +++ b/src/cpl-api/cpl/api/__init__.py @@ -1,20 +1,26 @@ from cpl.dependency.service_collection import ServiceCollection as _ServiceCollection + def add_api(collection: _ServiceCollection): try: from cpl.database import mysql + collection.add_module(mysql) except ImportError as e: from cpl.core.errors import dependency_error + dependency_error("cpl-database", e) try: from cpl import auth from cpl.auth import permission + collection.add_module(auth) collection.add_module(permission) except ImportError as e: from cpl.core.errors import dependency_error + dependency_error("cpl-auth", e) -_ServiceCollection.with_module(add_api, __name__) \ No newline at end of file + +_ServiceCollection.with_module(add_api, __name__) diff --git a/src/cpl-api/cpl/api/middleware/logging.py b/src/cpl-api/cpl/api/middleware/logging.py index 7eeb9eea..21feb63f 100644 --- a/src/cpl-api/cpl/api/middleware/logging.py +++ b/src/cpl-api/cpl/api/middleware/logging.py @@ -9,6 +9,7 @@ from cpl.api.middleware.request import get_request _logger = APILogger(__name__) + class LoggingMiddleware(ASGIMiddleware): def __init__(self, app): @@ -83,4 +84,4 @@ class LoggingMiddleware(ASGIMiddleware): async def _log_after_request(request: Request, status_code: int, duration: float): _logger.info( f"Request finished {getattr(request.state, 'request_id', '-')}: {status_code}-{request.method}@{request.url.path} from {request.client.host} in {duration:.2f}ms" - ) \ No newline at end of file + ) diff --git a/src/cpl-api/cpl/api/middleware/request.py b/src/cpl-api/cpl/api/middleware/request.py index 86d0edb4..85051fde 100644 --- a/src/cpl-api/cpl/api/middleware/request.py +++ b/src/cpl-api/cpl/api/middleware/request.py @@ -51,4 +51,4 @@ class RequestMiddleware(ASGIMiddleware): def get_request() -> Optional[Union[TRequest, WebSocket]]: - return _request_context.get() \ No newline at end of file + return _request_context.get() diff --git a/src/cpl-api/cpl/api/web_app.py b/src/cpl-api/cpl/api/web_app.py index a5d30047..bd5c0b1c 100644 --- a/src/cpl-api/cpl/api/web_app.py +++ b/src/cpl-api/cpl/api/web_app.py @@ -175,11 +175,7 @@ class WebApp(ApplicationABC): # ) config = uvicorn.Config( - app, - host=self._api_settings.host, - port=self._api_settings.port, - log_config=None, - loop="asyncio" + app, host=self._api_settings.host, port=self._api_settings.port, log_config=None, loop="asyncio" ) server = uvicorn.Server(config) await server.serve() diff --git a/src/cpl-application/cpl/application/abc/application_abc.py b/src/cpl-application/cpl/application/abc/application_abc.py index 7f092834..f8a2080d 100644 --- a/src/cpl-application/cpl/application/abc/application_abc.py +++ b/src/cpl-application/cpl/application/abc/application_abc.py @@ -24,10 +24,9 @@ class ApplicationABC(ABC): @abstractmethod def __init__(self, services: ServiceProviderABC, required_modules: list[str | object] = None): self._services = services - self._required_modules = [ - x.__name__ if not isinstance(x, str) else x - for x in required_modules - ] if required_modules else [] + self._required_modules = ( + [x.__name__ if not isinstance(x, str) else x for x in required_modules] if required_modules else [] + ) @property def required_modules(self) -> list[str]: diff --git a/src/cpl-auth/cpl/auth/__init__.py b/src/cpl-auth/cpl/auth/__init__.py index 1db9cf00..0f12362d 100644 --- a/src/cpl-auth/cpl/auth/__init__.py +++ b/src/cpl-auth/cpl/auth/__init__.py @@ -59,6 +59,7 @@ def add_auth(collection: _ServiceCollection): migration_service.with_directory(os.path.join(os.path.dirname(os.path.realpath(__file__)), "scripts/mysql")) except ImportError as e: from cpl.core.console import Console + Console.error("cpl-database is not installed", str(e)) @@ -69,6 +70,7 @@ def add_permission(collection: _ServiceCollection): try: from cpl.database.abc.data_seeder_abc import DataSeederABC + collection.add_singleton(DataSeederABC, PermissionSeeder) PermissionsRegistry.with_enum(Permissions) except ImportError as e: diff --git a/src/cpl-auth/cpl/auth/keycloak/keycloak_client.py b/src/cpl-auth/cpl/auth/keycloak/keycloak_client.py index e5f15d5a..f53f962f 100644 --- a/src/cpl-auth/cpl/auth/keycloak/keycloak_client.py +++ b/src/cpl-auth/cpl/auth/keycloak/keycloak_client.py @@ -22,4 +22,4 @@ class KeycloakClient(KeycloakOpenID): def get_user_id(self, token: str) -> Optional[str]: info = self.introspect(token) - return info.get("sub", None) \ No newline at end of file + return info.get("sub", None) diff --git a/src/cpl-core/cpl/core/errors.py b/src/cpl-core/cpl/core/errors.py index bfbd9d15..493ca1af 100644 --- a/src/cpl-core/cpl/core/errors.py +++ b/src/cpl-core/cpl/core/errors.py @@ -12,4 +12,4 @@ def dependency_error(package_name: str, e: ImportError) -> None: elif e is not None: Console.write_line("->", str(e)) - exit(1) \ No newline at end of file + exit(1) diff --git a/src/cpl-database/cpl/database/mysql/mysql_pool.py b/src/cpl-database/cpl/database/mysql/mysql_pool.py index e83ca43d..a6b45dfd 100644 --- a/src/cpl-database/cpl/database/mysql/mysql_pool.py +++ b/src/cpl-database/cpl/database/mysql/mysql_pool.py @@ -9,6 +9,7 @@ from cpl.database.model import DatabaseSettings _logger = DBLogger(__name__) + class MySQLPool: def __init__(self, database_settings: DatabaseSettings): diff --git a/src/cpl-dependency/cpl/dependency/service_provider_abc.py b/src/cpl-dependency/cpl/dependency/service_provider_abc.py index 32dea05b..ca0aa242 100644 --- a/src/cpl-dependency/cpl/dependency/service_provider_abc.py +++ b/src/cpl-dependency/cpl/dependency/service_provider_abc.py @@ -115,6 +115,7 @@ class ServiceProviderABC(ABC): return functools.partial(cls.inject) if iscoroutinefunction(f): + @functools.wraps(f) async def async_inner(*args, **kwargs): if cls._provider is None: @@ -132,4 +133,5 @@ class ServiceProviderABC(ABC): injection = [x for x in cls._provider._build_by_signature(signature(f)) if x is not None] return f(*args, *injection, **kwargs) + return inner