Renamed cpl to cpl_core & added config and services as arguments to startup

This commit is contained in:
2021-08-07 11:21:30 +02:00
parent cac80657df
commit 1c6794dc40
24 changed files with 83 additions and 78 deletions

View File

@@ -12,9 +12,9 @@ class ApplicationABC(ABC):
Parameters
----------
config: :class:`cpl.configuration.configuration_abc.ConfigurationABC`
config: :class:`cpl_core.configuration.configuration_abc.ConfigurationABC`
Contains object loaded from appsettings
services: :class:`cpl.dependency_injection.service_provider_abc.ServiceProviderABC`
services: :class:`cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC`
Contains instances of prepared objects
"""
@@ -39,7 +39,7 @@ class ApplicationABC(ABC):
def configure(self):
r"""Configure the application
Called by :class:`cpl.application.application_abc.ApplicationABC.run`
Called by :class:`cpl_core.application.application_abc.ApplicationABC.run`
"""
pass
@@ -47,6 +47,6 @@ class ApplicationABC(ABC):
def main(self):
r"""Custom entry point
Called by :class:`cpl.application.application_abc.ApplicationABC.run`
Called by :class:`cpl_core.application.application_abc.ApplicationABC.run`
"""
pass

View File

@@ -8,11 +8,11 @@ from cpl_core.dependency_injection.service_collection import ServiceCollection
class ApplicationBuilder(ApplicationBuilderABC):
r"""This is class is used to build a object of :class:`cpl.application.application_abc.ApplicationABC`
r"""This is class is used to build a object of :class:`cpl_core.application.application_abc.ApplicationABC`
Parameter
---------
app: Type[:class:`cpl.application.application_abc.ApplicationABC`]
app: Type[:class:`cpl_core.application.application_abc.ApplicationABC`]
Application to build
"""
@@ -26,11 +26,11 @@ class ApplicationBuilder(ApplicationBuilderABC):
self._services = ServiceCollection(self._configuration)
def use_startup(self, startup: Type[StartupABC]):
self._startup = startup(self._configuration, self._services)
self._startup = startup()
def build(self) -> ApplicationABC:
if self._startup is not None:
self._startup.configure_configuration()
self._startup.configure_services()
self._startup.configure_configuration(self._configuration, self._environment)
self._startup.configure_services(self._services, self._environment)
return self._app(self._configuration, self._services.build_service_provider())

View File

@@ -6,7 +6,7 @@ from cpl_core.application.startup_abc import StartupABC
class ApplicationBuilderABC(ABC):
r"""ABC for the :class:`cpl.application.application_builder.ApplicationBuilder`"""
r"""ABC for the :class:`cpl_core.application.application_builder.ApplicationBuilder`"""
@abstractmethod
def __init__(self, *args):
@@ -18,7 +18,7 @@ class ApplicationBuilderABC(ABC):
Parameter
---------
startup: Type[:class:`cpl.application.startup_abc.StartupABC`]
startup: Type[:class:`cpl_core.application.startup_abc.StartupABC`]
Startup class to use
"""
pass
@@ -29,6 +29,6 @@ class ApplicationBuilderABC(ABC):
Returns
-------
Object of :class:`cpl.application.application_abc.ApplicationABC`
Object of :class:`cpl_core.application.application_abc.ApplicationABC`
"""
pass

View File

@@ -1,7 +1,9 @@
from abc import ABC, abstractmethod
from cpl_core.configuration.configuration_abc import ConfigurationABC
from cpl_core.dependency_injection.service_collection_abc import ServiceCollectionABC
from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC
from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC
class StartupABC(ABC):
@@ -12,21 +14,26 @@ class StartupABC(ABC):
pass
@abstractmethod
def configure_configuration(self) -> ConfigurationABC:
def configure_configuration(self, config: ConfigurationABC, env: ApplicationEnvironmentABC) -> ConfigurationABC:
r"""Creates configuration of application
Parameter
---------
config: :class:`cpl_core.configuration.configuration_abc.ConfigurationABC`
env: :class:`cpl_core.environment.application_environment_abc`
Returns
-------
Object of :class:`cpl.configuration.configuration_abc.ConfigurationABC`
Object of :class:`cpl_core.configuration.configuration_abc.ConfigurationABC`
"""
pass
@abstractmethod
def configure_services(self) -> ServiceProviderABC:
def configure_services(self, service: ServiceCollectionABC, env: ApplicationEnvironmentABC) -> ServiceProviderABC:
r"""Creates service provider
Returns
-------
Object of :class:`cpl.dependency_injection.service_provider_abc.ServiceProviderABC`
Object of :class:`cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC`
"""
pass