Skip to content

Commit 05f7d99

Browse files
committed
improve flow
Signed-off-by: Zen <[email protected]>
1 parent 10e8288 commit 05f7d99

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/ugrd/initramfs_dict.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
__author__ = "desultory"
3-
__version__ = "1.4.0"
3+
__version__ = "1.4.1"
44

55
from tomllib import load, TOMLDecodeError
66
from pathlib import Path
@@ -46,9 +46,7 @@ def import_args(self, args: dict) -> None:
4646

4747
def __setitem__(self, key: str, value) -> None:
4848
# If the type is registered, use the appropriate update function
49-
if key in self.builtin_parameters:
50-
return self.handle_parameter(key, value)
51-
elif key in self['custom_parameters']:
49+
if any(key in d for d in (self.builtin_parameters, self['custom_parameters'])):
5250
return self.handle_parameter(key, value)
5351
else:
5452
self.logger.debug("[%s] Unable to determine expected type, valid builtin types: %s" % (key, self.builtin_parameters.keys()))
@@ -73,10 +71,11 @@ def handle_parameter(self, key: str, value) -> None:
7371
else:
7472
raise KeyError("Parameter not registered: %s" % key)
7573

76-
if hasattr(self, f"_process_{key}"):
74+
if hasattr(self, f"_process_{key}"): # The builtin function is decorated and can handle plural
7775
self.logger.log(5, "[%s] Using builtin setitem: %s" % (key, f"_process_{key}"))
7876
return getattr(self, f"_process_{key}")(value)
7977

78+
# Don't use masked processing functions for custom values, fall back to standard setters
8079
def check_mask(import_name: str) -> bool:
8180
""" Checks if the funnction is masked. """
8281
return import_name in self.get('masks', [])
@@ -95,11 +94,11 @@ def check_mask(import_name: str) -> bool:
9594
self.logger.log(5, "[%s] Using custom plural setitem: %s" % (key, func.__name__))
9695
return handle_plural(func)(self, value)
9796

98-
if expected_type in (list, NoDupFlatList):
97+
if expected_type in (list, NoDupFlatList): # Adppend to lists, don't replace
9998
self.logger.log(5, "Using list setitem for: %s" % key)
10099
return self[key].append(value)
101100

102-
if expected_type == dict:
101+
if expected_type == dict: # Create new keys, update existing
103102
if key not in self:
104103
self.logger.log(5, "Setting dict '%s' to: %s" % (key, value))
105104
return super().__setitem__(key, value)
@@ -108,7 +107,7 @@ def check_mask(import_name: str) -> bool:
108107
return self[key].update(value)
109108

110109
self.logger.debug("Setting custom parameter: %s" % key)
111-
super().__setitem__(key, expected_type(value))
110+
super().__setitem__(key, expected_type(value)) # For everything else, simply set it
112111

113112
@handle_plural
114113
def _process_custom_parameters(self, parameter_name: str, parameter_type: type) -> None:

0 commit comments

Comments
 (0)