Improved app builder to return self in use_extension

This commit is contained in:
2022-10-02 02:39:03 +02:00
parent 48eac124a5
commit 65132aa107
16 changed files with 32 additions and 30 deletions

View File

@@ -15,7 +15,7 @@ __title__ = 'cpl_core.application'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
__version__ = '2022.10.0'
__version__ = '2022.10.0.post1'
from collections import namedtuple
@@ -29,4 +29,4 @@ from .startup_abc import StartupABC
from .startup_extension_abc import StartupExtensionABC
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0')
version_info = VersionInfo(major='2022', minor='10', micro='0.post1')

View File

@@ -33,12 +33,14 @@ class ApplicationBuilder(ApplicationBuilderABC):
def use_startup(self, startup: Type[StartupABC]):
self._startup = startup()
def use_extension(self, extension: Type[Union[ApplicationExtensionABC, StartupExtensionABC]]):
def use_extension(self, extension: Type[Union[ApplicationExtensionABC, StartupExtensionABC]]) -> 'ApplicationBuilder':
if issubclass(extension, ApplicationExtensionABC) and extension not in self._app_extensions:
self._app_extensions.append(extension)
elif issubclass(extension, StartupExtensionABC) and extension not in self._startup_extensions:
self._startup_extensions.append(extension)
return self
def _build_startup(self):
for ex in self._startup_extensions:
extension = ex()