Refactored code

This commit is contained in:
2021-03-03 10:47:52 +01:00
parent a7c2946ba5
commit 68c136a16f
205 changed files with 2207 additions and 1010 deletions

View File

View File

@@ -0,0 +1,32 @@
from abc import ABC, abstractmethod
from typing import Type, Optional
from cpl.application.application_host_abc import ApplicationHostABC
from cpl.application.startup_abc import StartupABC
from cpl.configuration.configuration_abc import ConfigurationABC
from cpl.dependency_injection.service_provider_base import ServiceProviderABC
class ApplicationABC(ABC):
@abstractmethod
def __init__(self):
self._startup: Optional[StartupABC] = None
self._app_host: Optional[ApplicationHostABC] = None
self._services: Optional[ServiceProviderABC] = None
self._configuration: Optional[ConfigurationABC] = None
def use_startup(self, startup: Type[StartupABC]):
self._startup = startup()
def build(self):
if self._startup is None:
print('Startup is empty')
exit()
self._app_host = self._startup.create_application_host()
self._configuration = self._startup.create_configuration()
self._services = self._startup.create_services()
@abstractmethod
def run(self): pass

View File

@@ -0,0 +1,42 @@
import atexit
from datetime import datetime
from cpl.application.application_host_abc import ApplicationHostABC
from cpl.application.application_runtime import ApplicationRuntime
from cpl.application.application_runtime_abc import ApplicationRuntimeABC
from cpl.configuration.configuration import Configuration
from cpl.configuration.configuration_abc import ConfigurationABC
from cpl.console.console import Console
from cpl.dependency_injection.service_provider import ServiceProvider
from cpl.dependency_injection.service_provider_base import ServiceProviderABC
class ApplicationHost(ApplicationHostABC):
def __init__(self):
ApplicationHostABC.__init__(self)
# Init
self._config = Configuration()
self._app_runtime = ApplicationRuntime(self._config)
self._services = ServiceProvider(self._app_runtime)
# Set vars
self._start_time: datetime = datetime.now()
self._end_time: datetime = datetime.now()
atexit.register(Console.close)
@property
def configuration(self) -> ConfigurationABC:
return self._config
@property
def application_runtime(self) -> ApplicationRuntimeABC:
return self._app_runtime
@property
def services(self) -> ServiceProviderABC:
return self._services
def create(self): pass

View File

@@ -0,0 +1,23 @@
from abc import ABC, abstractmethod
from cpl.application.application_runtime_abc import ApplicationRuntimeABC
from cpl.configuration.configuration_abc import ConfigurationABC
from cpl.dependency_injection.service_provider_base import ServiceProviderABC
class ApplicationHostABC(ABC):
@abstractmethod
def __init__(self): pass
@property
@abstractmethod
def configuration(self) -> ConfigurationABC: pass
@property
@abstractmethod
def application_runtime(self) -> ApplicationRuntimeABC: pass
@property
@abstractmethod
def services(self) -> ServiceProviderABC: pass

View File

@@ -0,0 +1,38 @@
from datetime import datetime
from cpl.application.application_runtime_abc import ApplicationRuntimeABC
from cpl.configuration.configuration_abc import ConfigurationABC
class ApplicationRuntime(ApplicationRuntimeABC):
def __init__(self, config: ConfigurationABC):
ApplicationRuntimeABC.__init__(self)
self._app_configuration = config
self._start_time: datetime = datetime.now()
self._end_time: datetime = datetime.now()
@property
def configuration(self) -> ConfigurationABC:
return self._app_configuration
@property
def start_time(self) -> datetime:
return self._start_time
@start_time.setter
def start_time(self, start_time: datetime):
self._start_time = start_time
@property
def end_time(self) -> datetime:
return self._end_time
@end_time.setter
def end_time(self, end_time: datetime):
self._end_time = end_time
@property
def date_time_now(self) -> datetime:
return datetime.now()

View File

@@ -0,0 +1,34 @@
from abc import ABC, abstractmethod
from datetime import datetime
from cpl.configuration.configuration_abc import ConfigurationABC
class ApplicationRuntimeABC(ABC):
@abstractmethod
def __init__(self): pass
@property
@abstractmethod
def configuration(self) -> ConfigurationABC: pass
@property
@abstractmethod
def start_time(self) -> datetime: pass
@start_time.setter
@abstractmethod
def start_time(self, start_time: datetime): pass
@property
@abstractmethod
def end_time(self): pass
@end_time.setter
@abstractmethod
def end_time(self, end_time: datetime): pass
@property
@abstractmethod
def date_time_now(self) -> datetime: pass

View File

@@ -0,0 +1,20 @@
from abc import ABC, abstractmethod
from cpl.application.application_host_abc import ApplicationHostABC
from cpl.configuration.configuration_abc import ConfigurationABC
from cpl.dependency_injection.service_provider_base import ServiceProviderABC
class StartupABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
def create_application_host(self) -> ApplicationHostABC: pass
@abstractmethod
def create_configuration(self) -> ConfigurationABC: pass
@abstractmethod
def create_services(self) -> ServiceProviderABC: pass