2023.10 #175
| @@ -11,16 +11,16 @@ CPL Command Line Interface | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "cpl_cli._templates.build" | __title__ = 'cpl_cli._templates.build' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' | ||||||
| __version__ = "2023.4.0.post3" | __version__ = '2023.4.0.post3' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major='2023', minor='4', micro='0.post3') | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.application" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -29,4 +29,4 @@ from .startup_abc import StartupABC | |||||||
| from .startup_extension_abc import StartupExtensionABC | from .startup_extension_abc import StartupExtensionABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC | |||||||
| from .variable_argument import VariableArgument | from .variable_argument import VariableArgument | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ from cpl_core.dependency_injection.service_provider_abc import ServiceProviderAB | |||||||
| from cpl_core.environment.application_environment import ApplicationEnvironment | from cpl_core.environment.application_environment import ApplicationEnvironment | ||||||
| from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | ||||||
| from cpl_core.environment.environment_name_enum import EnvironmentNameEnum | from cpl_core.environment.environment_name_enum import EnvironmentNameEnum | ||||||
| from cpl_core.type import T | from cpl_core.type import T, R | ||||||
| from cpl_core.utils.json_processor import JSONProcessor | from cpl_core.utils.json_processor import JSONProcessor | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -296,7 +296,7 @@ class Configuration(ConfigurationABC): | |||||||
|  |  | ||||||
|                 self.add_configuration(sub, configuration) |                 self.add_configuration(sub, configuration) | ||||||
|  |  | ||||||
|     def add_configuration(self, key_type: Type[T], value: any): |     def add_configuration(self, key_type: T, value: any): | ||||||
|         self._config[key_type] = value |         self._config[key_type] = value | ||||||
|  |  | ||||||
|     def create_console_argument( |     def create_console_argument( | ||||||
| @@ -316,7 +316,7 @@ class Configuration(ConfigurationABC): | |||||||
|         for arg in self._argument_types: |         for arg in self._argument_types: | ||||||
|             call(arg) |             call(arg) | ||||||
|  |  | ||||||
|     def get_configuration(self, search_type: T) -> Optional[T]: |     def get_configuration(self, search_type: T) -> Optional[R]: | ||||||
|         if type(search_type) is str: |         if type(search_type) is str: | ||||||
|             if search_type == ConfigurationVariableNameEnum.environment.value: |             if search_type == ConfigurationVariableNameEnum.environment.value: | ||||||
|                 return self._application_environment.environment_name |                 return self._application_environment.environment_name | ||||||
| @@ -357,7 +357,7 @@ class Configuration(ConfigurationABC): | |||||||
|                 if exe.validators is not None: |                 if exe.validators is not None: | ||||||
|                     abort = False |                     abort = False | ||||||
|                     for validator_type in exe.validators: |                     for validator_type in exe.validators: | ||||||
|                         validator: ValidatorABC = services.get_service(validator_type) |                         validator = services.get_service(validator_type) | ||||||
|                         result = validator.validate() |                         result = validator.validate() | ||||||
|                         abort = not result |                         abort = not result | ||||||
|                         if abort: |                         if abort: | ||||||
| @@ -366,7 +366,7 @@ class Configuration(ConfigurationABC): | |||||||
|                     if abort: |                     if abort: | ||||||
|                         sys.exit() |                         sys.exit() | ||||||
|  |  | ||||||
|                 cmd: ArgumentExecutableABC = services.get_service(exe.executable_type) |                 cmd = services.get_service(exe.executable_type) | ||||||
|                 self._handle_pre_or_post_executables(True, exe, services) |                 self._handle_pre_or_post_executables(True, exe, services) | ||||||
|                 self._set_variable("ACTIVE_EXECUTABLE", exe.name) |                 self._set_variable("ACTIVE_EXECUTABLE", exe.name) | ||||||
|                 args = self.get_configuration("ARGS") |                 args = self.get_configuration("ARGS") | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC | |||||||
| from cpl_core.configuration.argument_abc import ArgumentABC | from cpl_core.configuration.argument_abc import ArgumentABC | ||||||
| from cpl_core.configuration.argument_type_enum import ArgumentTypeEnum | from cpl_core.configuration.argument_type_enum import ArgumentTypeEnum | ||||||
| from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | ||||||
| from cpl_core.type import T | from cpl_core.type import T, R | ||||||
|  |  | ||||||
|  |  | ||||||
| class ConfigurationABC(ABC): | class ConfigurationABC(ABC): | ||||||
| @@ -77,11 +77,11 @@ class ConfigurationABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def add_configuration(self, key_type: Type[T], value: any): |     def add_configuration(self, key_type: T, value: any): | ||||||
|         r"""Add configuration object |         r"""Add configuration object | ||||||
|  |  | ||||||
|         Parameter: |         Parameter: | ||||||
|             key_type: Union[:class:`str`, :class:`type`] |             key_type: :class:`cpl_core.type.T` | ||||||
|                 Type of the value |                 Type of the value | ||||||
|             value: any |             value: any | ||||||
|                 Object of the value |                 Object of the value | ||||||
| @@ -124,11 +124,11 @@ class ConfigurationABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def get_configuration(self, search_type: Type[T]) -> Optional[T]: |     def get_configuration(self, search_type: T) -> Optional[R]: | ||||||
|         r"""Returns value from configuration by given type |         r"""Returns value from configuration by given type | ||||||
|  |  | ||||||
|         Parameter: |         Parameter: | ||||||
|             search_type: Union[:class:`str`, Type[:class:`cpl_core.configuration.configuration_model_abc.ConfigurationModelABC`]] |             search_type: :class:`cpl_core.type.T` | ||||||
|                 Type to search for |                 Type to search for | ||||||
|  |  | ||||||
|         Returns: |         Returns: | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.console" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum | |||||||
| from .spinner_thread import SpinnerThread | from .spinner_thread import SpinnerThread | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "cpl-core", |     "Name": "cpl-core", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "2023", |       "Major": "2023", | ||||||
|       "Minor": "4", |       "Minor": "10", | ||||||
|       "Micro": "0.post5" |       "Micro": "0" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
| @@ -18,7 +18,6 @@ | |||||||
|     "Dependencies": [ |     "Dependencies": [ | ||||||
|       "art>=5.9", |       "art>=5.9", | ||||||
|       "colorama>=0.4.6", |       "colorama>=0.4.6", | ||||||
|       "mysql-connector>=2.2.9", |  | ||||||
|       "psutil>=5.9.4", |       "psutil>=5.9.4", | ||||||
|       "packaging>=23.0", |       "packaging>=23.0", | ||||||
|       "pynput>=1.7.6", |       "pynput>=1.7.6", | ||||||
| @@ -26,7 +25,8 @@ | |||||||
|       "tabulate>=0.9.0", |       "tabulate>=0.9.0", | ||||||
|       "termcolor>=2.2.0", |       "termcolor>=2.2.0", | ||||||
|       "watchdog>=3.0.0", |       "watchdog>=3.0.0", | ||||||
|       "wheel>=0.40.0" |       "wheel>=0.40.0", | ||||||
|  |       "mysql-connector-python==8.1.0" | ||||||
|     ], |     ], | ||||||
|     "DevDependencies": [ |     "DevDependencies": [ | ||||||
|       "Sphinx==5.0.2", |       "Sphinx==5.0.2", | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.database" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings | |||||||
| from .table_abc import TableABC | from .table_abc import TableABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.database.connection" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection | |||||||
| from .database_connection_abc import DatabaseConnectionABC | from .database_connection_abc import DatabaseConnectionABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -25,27 +25,27 @@ class DatabaseConnection(DatabaseConnectionABC): | |||||||
|     def cursor(self) -> MySQLCursorBuffered: |     def cursor(self) -> MySQLCursorBuffered: | ||||||
|         return self._cursor |         return self._cursor | ||||||
|  |  | ||||||
|     def connect(self, database_settings: DatabaseSettings): |     def connect(self, settings: DatabaseSettings): | ||||||
|         connection = sql.connect( |         connection = sql.connect( | ||||||
|             host=database_settings.host, |             host=settings.host, | ||||||
|             port=database_settings.port, |             port=settings.port, | ||||||
|             user=database_settings.user, |             user=settings.user, | ||||||
|             passwd=CredentialManager.decrypt(database_settings.password), |             passwd=CredentialManager.decrypt(settings.password), | ||||||
|             charset=database_settings.charset, |             charset=settings.charset, | ||||||
|             use_unicode=database_settings.use_unicode, |             use_unicode=settings.use_unicode, | ||||||
|             buffered=database_settings.buffered, |             buffered=settings.buffered, | ||||||
|             auth_plugin=database_settings.auth_plugin, |             auth_plugin=settings.auth_plugin, | ||||||
|         ) |         ) | ||||||
|         connection.cursor().execute(f"CREATE DATABASE IF NOT EXISTS `{database_settings.database}`;") |         connection.cursor().execute(f"CREATE DATABASE IF NOT EXISTS `{settings.database}`;") | ||||||
|         self._database = sql.connect( |         self._database = sql.connect( | ||||||
|             host=database_settings.host, |             host=settings.host, | ||||||
|             port=database_settings.port, |             port=settings.port, | ||||||
|             user=database_settings.user, |             user=settings.user, | ||||||
|             passwd=CredentialManager.decrypt(database_settings.password), |             passwd=CredentialManager.decrypt(settings.password), | ||||||
|             db=database_settings.database, |             db=settings.database, | ||||||
|             charset=database_settings.charset, |             charset=settings.charset, | ||||||
|             use_unicode=database_settings.use_unicode, |             use_unicode=settings.use_unicode, | ||||||
|             buffered=database_settings.buffered, |             buffered=settings.buffered, | ||||||
|             auth_plugin=database_settings.auth_plugin, |             auth_plugin=settings.auth_plugin, | ||||||
|         ) |         ) | ||||||
|         self._cursor = self._database.cursor() |         self._cursor = self._database.cursor() | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.database.context" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .database_context import DatabaseContext | |||||||
| from .database_context_abc import DatabaseContextABC | from .database_context_abc import DatabaseContextABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -13,10 +13,10 @@ class DatabaseSettings(ConfigurationModelABC): | |||||||
|         user: str = None, |         user: str = None, | ||||||
|         password: str = None, |         password: str = None, | ||||||
|         database: str = None, |         database: str = None, | ||||||
|         charset: str = None, |         charset: str = "utf8mb4", | ||||||
|         use_unicode: bool = None, |         use_unicode: bool = False, | ||||||
|         buffered: bool = None, |         buffered: bool = False, | ||||||
|         auth_plugin: str = None, |         auth_plugin: str = "caching_sha2_password", | ||||||
|     ): |     ): | ||||||
|         ConfigurationModelABC.__init__(self) |         ConfigurationModelABC.__init__(self) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.dependency_injection" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -31,4 +31,4 @@ from .service_provider import ServiceProvider | |||||||
| from .service_provider_abc import ServiceProviderABC | from .service_provider_abc import ServiceProviderABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -61,15 +61,15 @@ class ServiceCollection(ServiceCollectionABC): | |||||||
|             self.add_transient(PipeABC, pipe) |             self.add_transient(PipeABC, pipe) | ||||||
|         return self |         return self | ||||||
|  |  | ||||||
|     def add_singleton(self, service_type: Type[T], service: T = None): |     def add_singleton(self, service_type: T, service: T = None): | ||||||
|         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service) |         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service) | ||||||
|         return self |         return self | ||||||
|  |  | ||||||
|     def add_scoped(self, service_type: Type[T], service: Callable = None): |     def add_scoped(self, service_type: T, service: T = None): | ||||||
|         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.scoped, service) |         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.scoped, service) | ||||||
|         return self |         return self | ||||||
|  |  | ||||||
|     def add_transient(self, service_type: Type[T], service: T = None): |     def add_transient(self, service_type: T, service: T = None): | ||||||
|         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.transient, service) |         self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.transient, service) | ||||||
|         return self |         return self | ||||||
|  |  | ||||||
|   | |||||||
| @@ -46,7 +46,7 @@ class ServiceCollectionABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def add_transient(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC": |     def add_transient(self, service_type: T, service: T = None) -> "ServiceCollectionABC": | ||||||
|         r"""Adds a service with transient lifetime |         r"""Adds a service with transient lifetime | ||||||
|  |  | ||||||
|         Parameter: |         Parameter: | ||||||
| @@ -61,7 +61,7 @@ class ServiceCollectionABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def add_scoped(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC": |     def add_scoped(self, service_type: T, service: T = None) -> "ServiceCollectionABC": | ||||||
|         r"""Adds a service with scoped lifetime |         r"""Adds a service with scoped lifetime | ||||||
|  |  | ||||||
|         Parameter: |         Parameter: | ||||||
| @@ -76,7 +76,7 @@ class ServiceCollectionABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def add_singleton(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC": |     def add_singleton(self, service_type: T, service: T = None) -> "ServiceCollectionABC": | ||||||
|         r"""Adds a service with singleton lifetime |         r"""Adds a service with singleton lifetime | ||||||
|  |  | ||||||
|         Parameter: |         Parameter: | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ 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_lifetime_enum import ServiceLifetimeEnum | ||||||
| from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC | from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC | ||||||
| from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC | ||||||
| from cpl_core.type import T | from cpl_core.type import T, R | ||||||
|  |  | ||||||
|  |  | ||||||
| class ServiceProvider(ServiceProviderABC): | class ServiceProvider(ServiceProviderABC): | ||||||
| @@ -80,7 +80,7 @@ class ServiceProvider(ServiceProviderABC): | |||||||
|  |  | ||||||
|         return implementations |         return implementations | ||||||
|  |  | ||||||
|     def build_by_signature(self, sig: Signature) -> list[T]: |     def build_by_signature(self, sig: Signature) -> list[R]: | ||||||
|         params = [] |         params = [] | ||||||
|         for param in sig.parameters.items(): |         for param in sig.parameters.items(): | ||||||
|             parameter = param[1] |             parameter = param[1] | ||||||
| @@ -138,7 +138,7 @@ class ServiceProvider(ServiceProviderABC): | |||||||
|         sb = ScopeBuilder(ServiceProvider(descriptors, self._configuration, self._database_context)) |         sb = ScopeBuilder(ServiceProvider(descriptors, self._configuration, self._database_context)) | ||||||
|         return sb.build() |         return sb.build() | ||||||
|  |  | ||||||
|     def get_service(self, service_type: typing.Type[T], *args, **kwargs) -> Optional[T]: |     def get_service(self, service_type: T, *args, **kwargs) -> Optional[R]: | ||||||
|         result = self._find_service(service_type) |         result = self._find_service(service_type) | ||||||
|  |  | ||||||
|         if result is None: |         if result is None: | ||||||
| @@ -157,12 +157,12 @@ class ServiceProvider(ServiceProviderABC): | |||||||
|  |  | ||||||
|         return implementation |         return implementation | ||||||
|  |  | ||||||
|     def get_services(self, service_type: typing.Type[T], *args, **kwargs) -> list[Optional[T]]: |     def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[R]]: | ||||||
|         implementations = [] |         implementations = [] | ||||||
|  |  | ||||||
|         if typing.get_origin(service_type) != list: |         if typing.get_origin(service_type) == list: | ||||||
|             raise Exception(f"Invalid type {service_type}! Expected list of type") |             raise Exception(f"Invalid type {service_type}! Expected single type not list of type") | ||||||
|  |  | ||||||
|         implementations.extend(self._get_services(typing.get_args(service_type)[0])) |         implementations.extend(self._get_services(service_type)) | ||||||
|  |  | ||||||
|         return implementations |         return implementations | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from inspect import Signature, signature | |||||||
| from typing import Optional, Type | from typing import Optional, Type | ||||||
|  |  | ||||||
| from cpl_core.dependency_injection.scope_abc import ScopeABC | from cpl_core.dependency_injection.scope_abc import ScopeABC | ||||||
| from cpl_core.type import T | from cpl_core.type import T, R | ||||||
|  |  | ||||||
|  |  | ||||||
| class ServiceProviderABC(ABC): | class ServiceProviderABC(ABC): | ||||||
| @@ -21,7 +21,7 @@ class ServiceProviderABC(ABC): | |||||||
|         cls._provider = provider |         cls._provider = provider | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def build_by_signature(self, sig: Signature) -> list[T]: |     def build_by_signature(self, sig: Signature) -> list[R]: | ||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
| @@ -61,7 +61,7 @@ class ServiceProviderABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def get_service(self, instance_type: Type[T], *args, **kwargs) -> Optional[T]: |     def get_service(self, instance_type: T, *args, **kwargs) -> Optional[R]: | ||||||
|         r"""Returns instance of given type |         r"""Returns instance of given type | ||||||
|  |  | ||||||
|         Parameter |         Parameter | ||||||
| @@ -76,12 +76,12 @@ class ServiceProviderABC(ABC): | |||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def get_services(self, service_type: Type[T], *args, **kwargs) -> list[Optional[T]]: |     def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[R]]: | ||||||
|         r"""Returns instance of given type |         r"""Returns instance of given type | ||||||
|  |  | ||||||
|         Parameter |         Parameter | ||||||
|         --------- |         --------- | ||||||
|             instance_type: :class:`cpl_core.type.T` |             service_type: :class:`cpl_core.type.T` | ||||||
|                 The type of the searched instance |                 The type of the searched instance | ||||||
|  |  | ||||||
|         Returns |         Returns | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.environment" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum | |||||||
| from .application_environment import ApplicationEnvironment | from .application_environment import ApplicationEnvironment | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.logging" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings | |||||||
| from .logging_settings_name_enum import LoggingSettingsNameEnum | from .logging_settings_name_enum import LoggingSettingsNameEnum | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.mailing" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings | |||||||
| from .email_client_settings_name_enum import EMailClientSettingsNameEnum | from .email_client_settings_name_enum import EMailClientSettingsNameEnum | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.pipes" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -26,4 +26,4 @@ from .ip_address_pipe import IPAddressPipe | |||||||
| from .pipe_abc import PipeABC | from .pipe_abc import PipeABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.time" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings | |||||||
| from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum | from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
| from typing import TypeVar | from typing import TypeVar | ||||||
|  |  | ||||||
| T = TypeVar("T") | T = TypeVar("T") | ||||||
|  | R = TypeVar("R") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_core.utils" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post5" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -26,4 +26,4 @@ from .string import String | |||||||
| from .pip import Pip | from .pip import Pip | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post5") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -59,4 +59,4 @@ def get_discord_collection(services: "ServiceCollectionABC") -> "DiscordCollecti | |||||||
| # build-ignore-end | # build-ignore-end | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.application" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -24,4 +24,4 @@ from collections import namedtuple | |||||||
| from .discord_bot_application_abc import DiscordBotApplicationABC | from .discord_bot_application_abc import DiscordBotApplicationABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.command" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC | |||||||
| from .discord_commands_meta import DiscordCogMeta | from .discord_commands_meta import DiscordCogMeta | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -24,4 +24,4 @@ from collections import namedtuple | |||||||
| from .discord_bot_settings import DiscordBotSettings | from .discord_bot_settings import DiscordBotSettings | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.container" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -31,4 +31,4 @@ from .thread import Thread | |||||||
| from .voice_channel import VoiceChannel | from .voice_channel import VoiceChannel | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "cpl-discord", |     "Name": "cpl-discord", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "2023", |       "Major": "2023", | ||||||
|       "Minor": "4", |       "Minor": "10", | ||||||
|       "Micro": "0.post3" |       "Micro": "0" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
| @@ -16,9 +16,9 @@ | |||||||
|     "LicenseName": "MIT", |     "LicenseName": "MIT", | ||||||
|     "LicenseDescription": "MIT, see LICENSE for more details.", |     "LicenseDescription": "MIT, see LICENSE for more details.", | ||||||
|     "Dependencies": [ |     "Dependencies": [ | ||||||
|       "cpl-core>=2023.4.0.post2", |       "cpl-core>=2023.10.0", | ||||||
|       "discord.py>=2.3.0", |       "discord.py>=2.3.0", | ||||||
|       "cpl-query>=2023.4.0.post1" |       "cpl-query>=2023.10.0" | ||||||
|     ], |     ], | ||||||
|     "DevDependencies": [ |     "DevDependencies": [ | ||||||
|       "cpl-cli>=2023.4.0.post3" |       "cpl-cli>=2023.4.0.post3" | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.events" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC | |||||||
| from .on_webhooks_update_abc import OnWebhooksUpdateABC | from .on_webhooks_update_abc import OnWebhooksUpdateABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.helper" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -24,4 +24,4 @@ from collections import namedtuple | |||||||
| from .to_containers_converter import ToContainersConverter | from .to_containers_converter import ToContainersConverter | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_discord.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post3" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -29,4 +29,4 @@ from .discord_service import DiscordService | |||||||
| from .discord_service_abc import DiscordServiceABC | from .discord_service_abc import DiscordServiceABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post3") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| from typing import Type, Optional | from typing import Type | ||||||
|  |  | ||||||
|  | from cpl_core.console import Console, ForegroundColorEnum | ||||||
| from cpl_core.dependency_injection import ServiceCollectionABC | from cpl_core.dependency_injection import ServiceCollectionABC | ||||||
| from cpl_discord.command.discord_command_abc import DiscordCommandABC | from cpl_discord.command.discord_command_abc import DiscordCommandABC | ||||||
| from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum | from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum | ||||||
| from cpl_discord.service.command_error_handler_service import CommandErrorHandlerService | from cpl_discord.service.command_error_handler_service import CommandErrorHandlerService | ||||||
| from cpl_discord.service.discord_collection_abc import DiscordCollectionABC | from cpl_discord.service.discord_collection_abc import DiscordCollectionABC | ||||||
| from cpl_query.extension.list import List |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class DiscordCollection(DiscordCollectionABC): | class DiscordCollection(DiscordCollectionABC): | ||||||
| @@ -13,26 +13,21 @@ class DiscordCollection(DiscordCollectionABC): | |||||||
|         DiscordCollectionABC.__init__(self) |         DiscordCollectionABC.__init__(self) | ||||||
|  |  | ||||||
|         self._services = service_collection |         self._services = service_collection | ||||||
|         self._events: dict[str, List] = {} |  | ||||||
|         self._commands = List(type(DiscordCommandABC)) |  | ||||||
|  |  | ||||||
|         self.add_event(DiscordEventTypesEnum.on_command_error.value, CommandErrorHandlerService) |         self.add_event(DiscordEventTypesEnum.on_command_error.value, CommandErrorHandlerService) | ||||||
|  |  | ||||||
|     def add_command(self, _t: Type[DiscordCommandABC]): |     def add_command(self, _t: Type[DiscordCommandABC]): | ||||||
|  |         Console.set_foreground_color(ForegroundColorEnum.yellow) | ||||||
|  |         Console.write_line( | ||||||
|  |             f"{type(self).__name__}.add_command is deprecated. Instead, use ServiceCollection.add_transient directly!" | ||||||
|  |         ) | ||||||
|  |         Console.color_reset() | ||||||
|         self._services.add_transient(DiscordCommandABC, _t) |         self._services.add_transient(DiscordCommandABC, _t) | ||||||
|         self._commands.append(_t) |  | ||||||
|  |  | ||||||
|     def get_commands(self) -> List[DiscordCommandABC]: |  | ||||||
|         return self._commands |  | ||||||
|  |  | ||||||
|     def add_event(self, _t_event: Type, _t: Type): |     def add_event(self, _t_event: Type, _t: Type): | ||||||
|  |         Console.set_foreground_color(ForegroundColorEnum.yellow) | ||||||
|  |         Console.write_line( | ||||||
|  |             f"{type(self).__name__}.add_event is deprecated. Instead, use ServiceCollection.add_transient directly!" | ||||||
|  |         ) | ||||||
|  |         Console.color_reset() | ||||||
|         self._services.add_transient(_t_event, _t) |         self._services.add_transient(_t_event, _t) | ||||||
|         if _t_event not in self._events: |  | ||||||
|             self._events[_t_event] = List(type(_t_event)) |  | ||||||
|  |  | ||||||
|         self._events[_t_event].append(_t) |  | ||||||
|  |  | ||||||
|     def get_events_by_base(self, _t_event: Type) -> Optional[List]: |  | ||||||
|         if _t_event not in self._events: |  | ||||||
|             return None |  | ||||||
|         return self._events[_t_event] |  | ||||||
|   | |||||||
| @@ -13,14 +13,6 @@ class DiscordCollectionABC(ABC): | |||||||
|     def add_command(self, _t: Type[DiscordCommandABC]): |     def add_command(self, _t: Type[DiscordCommandABC]): | ||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |  | ||||||
|     def get_commands(self) -> List[DiscordCommandABC]: |  | ||||||
|         pass |  | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def add_event(self, _t_event: Type, _t: Type): |     def add_event(self, _t_event: Type, _t: Type): | ||||||
|         pass |         pass | ||||||
|  |  | ||||||
|     @abstractmethod |  | ||||||
|     def get_events_by_base(self, _t_event: Type): |  | ||||||
|         pass |  | ||||||
|   | |||||||
| @@ -4,11 +4,12 @@ from typing import Optional, Sequence, Union, Type | |||||||
| import discord | import discord | ||||||
| from discord import RawReactionActionEvent | from discord import RawReactionActionEvent | ||||||
| from discord.ext import commands | from discord.ext import commands | ||||||
| from discord.ext.commands import Context, CommandError, Cog, Command | from discord.ext.commands import Context, CommandError, Cog | ||||||
|  |  | ||||||
| from cpl_core.dependency_injection import ServiceProviderABC | from cpl_core.dependency_injection import ServiceProviderABC | ||||||
| from cpl_core.logging import LoggerABC | from cpl_core.logging import LoggerABC | ||||||
| from cpl_core.utils import String | from cpl_core.utils import String | ||||||
|  | from cpl_discord.command import DiscordCommandABC | ||||||
| from cpl_discord.command.discord_commands_meta import DiscordCogMeta | from cpl_discord.command.discord_commands_meta import DiscordCogMeta | ||||||
| from cpl_discord.events.on_bulk_message_delete_abc import OnBulkMessageDeleteABC | from cpl_discord.events.on_bulk_message_delete_abc import OnBulkMessageDeleteABC | ||||||
| from cpl_discord.events.on_command_abc import OnCommandABC | from cpl_discord.events.on_command_abc import OnCommandABC | ||||||
| @@ -66,25 +67,17 @@ from cpl_discord.events.on_typing_abc import OnTypingABC | |||||||
| from cpl_discord.events.on_user_update_abc import OnUserUpdateABC | from cpl_discord.events.on_user_update_abc import OnUserUpdateABC | ||||||
| from cpl_discord.events.on_voice_state_update_abc import OnVoiceStateUpdateABC | from cpl_discord.events.on_voice_state_update_abc import OnVoiceStateUpdateABC | ||||||
| from cpl_discord.events.on_webhooks_update_abc import OnWebhooksUpdateABC | from cpl_discord.events.on_webhooks_update_abc import OnWebhooksUpdateABC | ||||||
| from cpl_discord.service.discord_collection_abc import DiscordCollectionABC |  | ||||||
| from cpl_discord.service.discord_service_abc import DiscordServiceABC | from cpl_discord.service.discord_service_abc import DiscordServiceABC | ||||||
|  |  | ||||||
|  |  | ||||||
| class DiscordService(DiscordServiceABC, commands.Cog, metaclass=DiscordCogMeta): | class DiscordService(DiscordServiceABC, commands.Cog, metaclass=DiscordCogMeta): | ||||||
|     def __init__(self, logger: LoggerABC, dc_collection: DiscordCollectionABC, services: ServiceProviderABC): |     def __init__(self, logger: LoggerABC, services: ServiceProviderABC): | ||||||
|         DiscordServiceABC.__init__(self) |         DiscordServiceABC.__init__(self) | ||||||
|         self._logger = logger |         self._logger = logger | ||||||
|         self._collection = dc_collection |  | ||||||
|         self._services = services |         self._services = services | ||||||
|  |  | ||||||
|     async def _handle_event(self, event: Type, *args, **kwargs): |     async def _handle_event(self, event: Type, *args, **kwargs): | ||||||
|         event_collection = self._collection.get_events_by_base(event) |         for event_instance in self._services.get_services(event): | ||||||
|         if event_collection is None: |  | ||||||
|             return |  | ||||||
|  |  | ||||||
|         for event_type in event_collection: |  | ||||||
|             event_instance = self._services.get_service(event_type) |  | ||||||
|  |  | ||||||
|             func_name = event.__name__ |             func_name = event.__name__ | ||||||
|             if func_name.endswith("ABC"): |             if func_name.endswith("ABC"): | ||||||
|                 func_name = func_name.replace("ABC", "") |                 func_name = func_name.replace("ABC", "") | ||||||
| @@ -104,11 +97,10 @@ class DiscordService(DiscordServiceABC, commands.Cog, metaclass=DiscordCogMeta): | |||||||
|             self._logger.error(__name__, f"{type(self).__name__} initialization failed", e) |             self._logger.error(__name__, f"{type(self).__name__} initialization failed", e) | ||||||
|  |  | ||||||
|         try: |         try: | ||||||
|             for command_type in self._collection.get_commands(): |             for command in self._services.get_services(DiscordCommandABC): | ||||||
|                 self._logger.trace(__name__, f"Register command {command_type.__name__}") |                 self._logger.trace(__name__, f"Register command {type(command).__name__}") | ||||||
|                 command: Cog = self._services.get_service(command_type) |  | ||||||
|                 if command is None: |                 if command is None: | ||||||
|                     self._logger.warn(__name__, f"Instance of {command_type.__name__} not found") |                     self._logger.warn(__name__, f"Instance of {type(command).__name__} not found") | ||||||
|                     continue |                     continue | ||||||
|                 await bot.add_cog(command) |                 await bot.add_cog(command) | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_query" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post1" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_query.base" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post1" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -28,4 +28,4 @@ from .queryable_abc import QueryableABC | |||||||
| from .sequence import Sequence | from .sequence import Sequence | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "cpl-query", |     "Name": "cpl-query", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "2023", |       "Major": "2023", | ||||||
|       "Minor": "4", |       "Minor": "10", | ||||||
|       "Micro": "0.post1" |       "Micro": "0" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_query.enumerable" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post1" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .enumerable import Enumerable | |||||||
| from .enumerable_abc import EnumerableABC | from .enumerable_abc import EnumerableABC | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_query.extension" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post1" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -24,4 +24,4 @@ from collections import namedtuple | |||||||
| from .list import List | from .list import List | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -1,12 +1,10 @@ | |||||||
| from typing import Iterator |  | ||||||
|  |  | ||||||
| from cpl_query.iterable.iterable import Iterable | from cpl_query.iterable.iterable import Iterable | ||||||
|  |  | ||||||
|  |  | ||||||
| class List(Iterable): | class List(Iterable): | ||||||
|     r"""Implementation of :class: `cpl_query.extension.iterable.Iterable`""" |     r"""Implementation of :class: `cpl_query.extension.iterable.Iterable`""" | ||||||
|  |  | ||||||
|     def __init__(self, t: type = None, values: Iterator = None): |     def __init__(self, t: type = None, values: Iterable = None): | ||||||
|         Iterable.__init__(self, t, values) |         Iterable.__init__(self, t, values) | ||||||
|  |  | ||||||
|     def __getitem__(self, *args): |     def __getitem__(self, *args): | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ __title__ = "cpl_query.iterable" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de" | ||||||
| __version__ = "2023.4.0.post1" | __version__ = "2023.10.0" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC | |||||||
| from .iterable import Iterable | from .iterable import Iterable | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | version_info = VersionInfo(major="2023", minor="10", micro="0") | ||||||
|   | |||||||
| @@ -11,11 +11,11 @@ CPL translation extension | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = 'cpl_translation' | __title__ = "cpl_translation" | ||||||
| __author__ = 'Sven Heidemann' | __author__ = "Sven Heidemann" | ||||||
| __license__ = 'MIT' | __license__ = "MIT" | ||||||
| __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = '2023.4.0.post1' | __version__ = "2023.4.0.post1" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -25,6 +25,7 @@ from .translate_pipe import TranslatePipe | |||||||
| from .translation_service import TranslationService | from .translation_service import TranslationService | ||||||
| from .translation_service_abc import TranslationServiceABC | from .translation_service_abc import TranslationServiceABC | ||||||
| from .translation_settings import TranslationSettings | from .translation_settings import TranslationSettings | ||||||
|  |  | ||||||
| # build-ignore | # build-ignore | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -51,5 +52,5 @@ def init(): | |||||||
| init() | init() | ||||||
| # build-ignore-end | # build-ignore-end | ||||||
|  |  | ||||||
| VersionInfo = namedtuple('VersionInfo', 'major minor micro') | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major='2023', minor='4', micro='0.post1') | version_info = VersionInfo(major="2023", minor="4", micro="0.post1") | ||||||
|   | |||||||
| @@ -20,7 +20,6 @@ | |||||||
|     "Database": "sh_cpl", |     "Database": "sh_cpl", | ||||||
|     "Charset": "utf8mb4", |     "Charset": "utf8mb4", | ||||||
|     "UseUnicode": "true", |     "UseUnicode": "true", | ||||||
|     "Buffered": "true", |     "Buffered": "true" | ||||||
|     "AuthPlugin": "mysql_native_password" |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -3,5 +3,5 @@ from cpl_core.database.context import DatabaseContext | |||||||
|  |  | ||||||
|  |  | ||||||
| class DBContext(DatabaseContext): | class DBContext(DatabaseContext): | ||||||
|     def __init__(self, db_settings: DatabaseSettings): |     def __init__(self): | ||||||
|         DatabaseContext.__init__(self, db_settings) |         DatabaseContext.__init__(self) | ||||||
|   | |||||||
| @@ -21,7 +21,6 @@ class Startup(StartupABC): | |||||||
|     ) -> ConfigurationABC: |     ) -> ConfigurationABC: | ||||||
|         configuration.add_environment_variables("PYTHON_") |         configuration.add_environment_variables("PYTHON_") | ||||||
|         configuration.add_environment_variables("CPL_") |         configuration.add_environment_variables("CPL_") | ||||||
|         configuration.parse_console_arguments() |  | ||||||
|         configuration.add_json_file(f"appsettings.json") |         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.environment_name}.json") | ||||||
|         configuration.add_json_file(f"appsettings.{configuration.environment.host_name}.json", optional=True) |         configuration.add_json_file(f"appsettings.{configuration.environment.host_name}.json", optional=True) | ||||||
| @@ -34,6 +33,7 @@ class Startup(StartupABC): | |||||||
|         self, services: ServiceCollectionABC, environment: ApplicationEnvironmentABC |         self, services: ServiceCollectionABC, environment: ApplicationEnvironmentABC | ||||||
|     ) -> ServiceProviderABC: |     ) -> ServiceProviderABC: | ||||||
|         # Create and connect to database |         # 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_configuration(DatabaseSettings) | ||||||
|         services.add_db_context(DBContext, db_settings) |         services.add_db_context(DBContext, db_settings) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user