fixed nested config

This commit is contained in:
Hellow
2024-02-15 01:08:45 +01:00
parent 0c4c41ff84
commit e85681a708
4 changed files with 37 additions and 21 deletions

View File

@@ -22,10 +22,11 @@ _config: dict = {
"twitter",
],
"mastodon": {},
"twitter": {},
"lemmy": {},
"feed": {
"mastodon": {},
"twitter": {},
"lemmy": {},
},
}
@@ -50,16 +51,33 @@ def write():
def get_field(__name: str, default=None):
global _config
return _config.get(__name, default)
_parts = __name.split(".")
_field_container = _config
for _part in _parts[:-1]:
_field_container = _field_container.get(_part, {})
return _field_container.get(_parts[-1], default)
def set_field(__name: str, __value, update_dict=False):
global _config
_parts = __name.split(".")
_field_container = _config
for _part in _parts[:-1]:
if _part not in _field_container:
_field_container[_part] = {}
_field_container = _field_container[_part]
if update_dict and isinstance(__value, dict) and isinstance(_config.get(__name), dict):
_config[__name].update(__value)
_field_container[_parts[-1]].update(__value)
else:
_config[__name] = __value
_field_container[_parts[-1]] = __value
write()