Improved config loading
This commit is contained in:
parent
ed2377c288
commit
708918464f
@ -15,7 +15,7 @@ __title__ = "cpl_core"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.application"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
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="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.configuration"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC
|
||||
from .variable_argument import VariableArgument
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -278,21 +278,23 @@ class Configuration(ConfigurationABC):
|
||||
config_from_file = self._load_json_file(file_path, output)
|
||||
for sub in ConfigurationModelABC.__subclasses__():
|
||||
for key, value in config_from_file.items():
|
||||
if sub.__name__ == key or sub.__name__.replace("Settings", "") == key:
|
||||
configuration = sub()
|
||||
from_dict = getattr(configuration, "from_dict", None)
|
||||
if sub.__name__ != key and sub.__name__.replace("Settings", "") != key:
|
||||
continue
|
||||
|
||||
if from_dict is not None and not hasattr(from_dict, "is_base_func"):
|
||||
Console.set_foreground_color(ForegroundColorEnum.yellow)
|
||||
Console.write_line(
|
||||
f"{sub.__name__}.from_dict is deprecated. Instead, set attributes as typed arguments in __init__. They can be None by default!"
|
||||
)
|
||||
Console.color_reset()
|
||||
configuration.from_dict(value)
|
||||
else:
|
||||
configuration = JSONProcessor.process(sub, value)
|
||||
configuration = sub()
|
||||
from_dict = getattr(configuration, "from_dict", None)
|
||||
|
||||
self.add_configuration(sub, configuration)
|
||||
if from_dict is not None and not hasattr(from_dict, "is_base_func"):
|
||||
Console.set_foreground_color(ForegroundColorEnum.yellow)
|
||||
Console.write_line(
|
||||
f"{sub.__name__}.from_dict is deprecated. Instead, set attributes as typed arguments in __init__. They can be None by default!"
|
||||
)
|
||||
Console.color_reset()
|
||||
configuration.from_dict(value)
|
||||
else:
|
||||
configuration = JSONProcessor.process(sub, value)
|
||||
|
||||
self.add_configuration(sub, configuration)
|
||||
|
||||
def add_configuration(self, key_type: Type[T], value: any):
|
||||
self._config[key_type] = value
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.console"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum
|
||||
from .spinner_thread import SpinnerThread
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -4,7 +4,7 @@
|
||||
"Version": {
|
||||
"Major": "2023",
|
||||
"Minor": "4",
|
||||
"Micro": "0.post2"
|
||||
"Micro": "0.post3"
|
||||
},
|
||||
"Author": "Sven Heidemann",
|
||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.database"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings
|
||||
from .table_abc import TableABC
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.database.connection"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection
|
||||
from .database_connection_abc import DatabaseConnectionABC
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.database.context"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -25,4 +25,4 @@ from .database_context import DatabaseContext
|
||||
from .database_context_abc import DatabaseContextABC
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.dependency_injection"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -31,4 +31,4 @@ from .service_provider import ServiceProvider
|
||||
from .service_provider_abc import ServiceProviderABC
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.environment"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum
|
||||
from .application_environment import ApplicationEnvironment
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.logging"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings
|
||||
from .logging_settings_name_enum import LoggingSettingsNameEnum
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.mailing"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings
|
||||
from .email_client_settings_name_enum import EMailClientSettingsNameEnum
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.pipes"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -26,4 +26,4 @@ from .ip_address_pipe import IPAddressPipe
|
||||
from .pipe_abc import PipeABC
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.time"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings
|
||||
from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -15,7 +15,7 @@ __title__ = "cpl_core.utils"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||
__version__ = "2023.4.0.post2"
|
||||
__version__ = "2023.4.0.post3"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@ -26,4 +26,4 @@ from .string import String
|
||||
from .pip import Pip
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||
|
@ -37,6 +37,9 @@ class JSONProcessor:
|
||||
|
||||
args.append(value)
|
||||
|
||||
elif parameter.name == "kwargs" and parameter.annotation == dict:
|
||||
kwargs = values
|
||||
|
||||
elif parameter.default != Parameter.empty:
|
||||
args.append(parameter.default)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user