hungerlib 4.2__tar.gz → 4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hungerlib-4.2/src/hungerlib.egg-info → hungerlib-4.3}/PKG-INFO +1 -1
- {hungerlib-4.2 → hungerlib-4.3}/pyproject.toml +1 -1
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/configloader.py +24 -29
- {hungerlib-4.2 → hungerlib-4.3/src/hungerlib.egg-info}/PKG-INFO +1 -1
- {hungerlib-4.2 → hungerlib-4.3}/LICENSE +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/README.md +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/setup.cfg +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/__init__.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/__init__.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/backups.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/command.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/databases.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/filemanager.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/schedule.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/api/startup.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/bridgeclient.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/datamap.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/messagerouter.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/panel.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/servers/__init__.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/servers/generic.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/servers/minecraft.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/utils/__init__.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/utils/colormaps.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/utils/time.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib/utils/utils.py +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib.egg-info/SOURCES.txt +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib.egg-info/dependency_links.txt +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib.egg-info/requires.txt +0 -0
- {hungerlib-4.2 → hungerlib-4.3}/src/hungerlib.egg-info/top_level.txt +0 -0
|
@@ -45,7 +45,7 @@ def loadConfig(schema, runtime_path: str | None = None):
|
|
|
45
45
|
- schema.__user_config_path__ for runtime file
|
|
46
46
|
- schema.__default_config_path__ for packaged default
|
|
47
47
|
- dataclass defaults as YAML key paths (mode="config")
|
|
48
|
-
-
|
|
48
|
+
- fallback values from schema.fallbacks.<key>
|
|
49
49
|
"""
|
|
50
50
|
|
|
51
51
|
# 1. Resolve runtime path
|
|
@@ -78,42 +78,37 @@ def loadConfig(schema, runtime_path: str | None = None):
|
|
|
78
78
|
raw = load_yaml(abs_runtime)
|
|
79
79
|
values = {}
|
|
80
80
|
|
|
81
|
-
# 5.
|
|
81
|
+
# 5. Load fallback class if present
|
|
82
|
+
fallbacks = getattr(schema, "fallbacks", None)
|
|
83
|
+
|
|
84
|
+
# 6. Map YAML → dataclass fields
|
|
82
85
|
mode = getattr(schema, "__mode__", None)
|
|
83
86
|
|
|
84
87
|
for f in fields(schema):
|
|
85
88
|
if f.name.startswith("__"):
|
|
86
89
|
continue
|
|
87
90
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
# tuple default: (yaml_path, fallback)
|
|
91
|
-
if isinstance(default, tuple) and len(default) == 2:
|
|
92
|
-
yaml_path, fallback = default
|
|
93
|
-
value = deep_get(raw, yaml_path)
|
|
91
|
+
yaml_path = f.default
|
|
92
|
+
yaml_value = None
|
|
94
93
|
|
|
95
|
-
|
|
94
|
+
# mode="config": default string = YAML path
|
|
95
|
+
if mode == "config" and isinstance(yaml_path, str):
|
|
96
|
+
yaml_value = deep_get(raw, yaml_path)
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
if yaml_value is not None:
|
|
99
|
+
values[f.name] = convert_value(yaml_value, f.type)
|
|
100
|
+
else:
|
|
101
|
+
# fallback from fallback class
|
|
102
|
+
if fallbacks and hasattr(fallbacks, f.name):
|
|
103
|
+
values[f.name] = getattr(fallbacks, f.name)
|
|
104
|
+
else:
|
|
105
|
+
# no fallback → None
|
|
106
|
+
values[f.name] = None
|
|
100
107
|
|
|
101
|
-
|
|
102
|
-
|
|
108
|
+
# 7. Build config instance
|
|
109
|
+
config = schema(**values)
|
|
103
110
|
|
|
104
|
-
|
|
105
|
-
|
|
111
|
+
# 8. Attach fallback namespace
|
|
112
|
+
config.fallbacks = fallbacks
|
|
106
113
|
|
|
107
|
-
|
|
108
|
-
if mode == "config" and isinstance(default, str):
|
|
109
|
-
yaml_path = default
|
|
110
|
-
value = deep_get(raw, yaml_path)
|
|
111
|
-
if value is not None:
|
|
112
|
-
values[f.name] = convert_value(value, f.type)
|
|
113
|
-
continue
|
|
114
|
-
|
|
115
|
-
# fallback to dataclass default
|
|
116
|
-
if default is not MISSING:
|
|
117
|
-
values[f.name] = convert_value(default, f.type)
|
|
118
|
-
|
|
119
|
-
return schema(**values)
|
|
114
|
+
return config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|