Added support for dynamic loaded modules
This commit is contained in:
		| @@ -1,25 +1 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
|  | ||||
| """ | ||||
| gismo sh-edraft Gismo | ||||
| ~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| sh-edraft Dicord bot Gismo | ||||
|  | ||||
| :copyright: (c) 2021 - 2022 sh-edraft.de | ||||
| :license: MIT, see LICENSE for more details. | ||||
|  | ||||
| """ | ||||
|  | ||||
| __title__ = 'modules_core' | ||||
| __author__ = 'Sven Heidemann' | ||||
| __license__ = 'MIT' | ||||
| __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' | ||||
| __version__ = '0.1.0' | ||||
|  | ||||
| from collections import namedtuple | ||||
|  | ||||
| # imports:  | ||||
|  | ||||
| VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||
| version_info = VersionInfo(major='0', minor='1', micro='0') | ||||
| # imports | ||||
|   | ||||
							
								
								
									
										1
									
								
								src/modules_core/abc/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/modules_core/abc/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| # imports | ||||
							
								
								
									
										7
									
								
								src/modules_core/abc/module_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/modules_core/abc/module_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| from abc import ABC, abstractmethod | ||||
|  | ||||
|  | ||||
| class ModuleABC(ABC): | ||||
|  | ||||
|     @abstractmethod | ||||
|     def __init__(self): pass | ||||
							
								
								
									
										14
									
								
								src/modules_core/abc/module_service_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/modules_core/abc/module_service_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| from abc import ABC, abstractmethod | ||||
| from codecs import register | ||||
|  | ||||
|  | ||||
| class ModuleServiceABC(ABC): | ||||
|  | ||||
|     @abstractmethod | ||||
|     def __init__(self): pass | ||||
|  | ||||
|     @abstractmethod | ||||
|     def register(self): pass | ||||
|  | ||||
|     @abstractmethod | ||||
|     def start_modules(self): pass | ||||
							
								
								
									
										1
									
								
								src/modules_core/service/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/modules_core/service/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| # imports | ||||
							
								
								
									
										21
									
								
								src/modules_core/service/module_service.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/modules_core/service/module_service.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| from cpl_core.environment.application_environment_abc import \ | ||||
|     ApplicationEnvironmentABC | ||||
| from cpl_core.logging import LoggerABC | ||||
| from cpl_query.extension import List | ||||
|  | ||||
| from modules_core.abc.module_abc import ModuleABC | ||||
| from modules_core.abc.module_service_abc import ModuleServiceABC | ||||
|  | ||||
|  | ||||
| class ModuleService(ModuleServiceABC): | ||||
|  | ||||
|     def __init__(self, logger: LoggerABC, env: ApplicationEnvironmentABC): | ||||
|         self._logger = logger | ||||
|         self._env = env | ||||
|         self._modules: List[ModuleABC] = List() | ||||
|  | ||||
|     def register(self, module: ModuleABC): | ||||
|         self._modules.append(module) | ||||
|  | ||||
|     def start_modules(self): | ||||
|         self._modules.for_each(lambda m: m.echo()) | ||||
		Reference in New Issue
	
	Block a user