Change that the args overload has to be set to override settings from arguments

So we do not have issues with values change because an arugment has the same name as a setting name
This commit is contained in:
Clemens Schwaighofer
2025-11-20 10:00:36 +09:00
parent a00c27c465
commit 4ffe372434
4 changed files with 37 additions and 37 deletions

View File

@@ -94,7 +94,7 @@ class SettingsLoader:
# entries that should be converted
entry_convert: dict[str, str] = {}
# no args to set
args_none: list[str] = []
args_overrride: list[str] = []
# all the settings for the config id given
settings: dict[str, dict[str, Any]] = {
config_id: {},
@@ -164,8 +164,8 @@ class SettingsLoader:
f"[!] In [{config_id}] the split character setup for entry failed: {check}: {e}",
'CRITICAL'
)) from e
if check == "args:no":
args_none.append(key)
if check == "args_override:yes":
args_overrride.append(key)
if skip:
continue
settings[config_id][key] = [
@@ -192,7 +192,8 @@ class SettingsLoader:
if (args_entry := self.__get_arg(entry)) is not None:
self.__print(f"[*] Command line option override for: {entry}", 'WARNING')
if (
entry not in args_none and
# only set if flagged as allowed override from args
entry in args_overrride and
(isinstance(args_entry, list) and entry_split_char.get(entry)) or
(not isinstance(args_entry, list) and not entry_split_char.get(entry))
):
@@ -287,10 +288,8 @@ class SettingsLoader:
elif convert_type in ["float", "any"] and is_float(settings[config_id][entry]):
settings[config_id][entry] = float(settings[config_id][entry])
elif convert_type in ["bool", "any"] and (
settings[config_id][entry] == "true" or
settings[config_id][entry] == "True" or
settings[config_id][entry] == "false" or
settings[config_id][entry] == "False"
settings[config_id][entry].lower() == "true" or
settings[config_id][entry].lower() == "false"
):
try:
settings[config_id][entry] = str_to_bool(settings[config_id][entry])