hungerlib 3.2.dev2__tar.gz → 3.2.dev3__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.
Files changed (29) hide show
  1. {hungerlib-3.2.dev2/src/hungerlib.egg-info → hungerlib-3.2.dev3}/PKG-INFO +1 -1
  2. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/pyproject.toml +1 -1
  3. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/configloader.py +29 -7
  4. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3/src/hungerlib.egg-info}/PKG-INFO +1 -1
  5. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/LICENSE +0 -0
  6. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/README.md +0 -0
  7. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/setup.cfg +0 -0
  8. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/__init__.py +0 -0
  9. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/__init__.py +0 -0
  10. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/backups.py +0 -0
  11. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/command.py +0 -0
  12. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/databases.py +0 -0
  13. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/filemanager.py +0 -0
  14. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/schedule.py +0 -0
  15. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/api/startup.py +0 -0
  16. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/datamap.py +0 -0
  17. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/messagerouter.py +0 -0
  18. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/panel.py +0 -0
  19. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/servers/__init__.py +0 -0
  20. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/servers/generic.py +0 -0
  21. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/servers/minecraft.py +0 -0
  22. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/utils/__init__.py +0 -0
  23. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/utils/colormaps.py +0 -0
  24. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/utils/time.py +0 -0
  25. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib/utils/utils.py +0 -0
  26. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib.egg-info/SOURCES.txt +0 -0
  27. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib.egg-info/dependency_links.txt +0 -0
  28. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib.egg-info/requires.txt +0 -0
  29. {hungerlib-3.2.dev2 → hungerlib-3.2.dev3}/src/hungerlib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 3.2.dev2
3
+ Version: 3.2.dev3
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "hungerlib"
10
- version = "3.2.dev2"
10
+ version = "3.2.dev3"
11
11
  description = "Powerful automation library for Pterodactyl."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.9"
@@ -2,7 +2,7 @@ import inspect
2
2
  import os
3
3
  import yaml
4
4
  import importlib
5
- from dataclasses import fields
5
+ from dataclasses import fields, MISSING
6
6
 
7
7
  class Namespace:
8
8
  def __init__(self):
@@ -32,6 +32,16 @@ def load_yaml(path):
32
32
  with open(path, "r") as f:
33
33
  return yaml.safe_load(f) or {}
34
34
 
35
+ def convert_value(value, annotation):
36
+ if annotation is int:
37
+ return int(value)
38
+ if annotation is float:
39
+ return float(value)
40
+ if annotation is bool:
41
+ # YAML already parses true/false correctly
42
+ return bool(value)
43
+ return value
44
+
35
45
  def loadConfig(path, default_path, schema):
36
46
  abs_path = os.path.abspath(path)
37
47
  os.makedirs(os.path.dirname(abs_path), exist_ok=True)
@@ -50,18 +60,30 @@ def loadConfig(path, default_path, schema):
50
60
  f.write("# No default config found.\n")
51
61
 
52
62
  raw = load_yaml(abs_path)
53
-
54
63
  values = {}
55
64
 
65
+ mode = getattr(schema, "__mode__", None)
66
+
56
67
  for f in fields(schema):
57
- yaml_path = f.metadata.get("yaml_key")
58
- if not yaml_path:
68
+ # --- OLD SYSTEM SUPPORT (yaml_key) ---
69
+ yaml_path = f.metadata.get("yaml_key") if f.metadata else None
70
+ if yaml_path:
71
+ value = deep_get(raw, yaml_path)
72
+ if value is not None:
73
+ values[f.name] = convert_value(value, f.type)
59
74
  continue
60
75
 
61
- value = deep_get(raw, yaml_path)
62
- if value is None:
76
+ # --- NEW SYSTEM: mode="config" + string defaults ---
77
+ default = f.default
78
+ if mode == "config" and isinstance(default, str):
79
+ yaml_path = default
80
+ value = deep_get(raw, yaml_path)
81
+ if value is not None:
82
+ values[f.name] = convert_value(value, f.type)
63
83
  continue
64
84
 
65
- values[f.name] = value
85
+ # --- FALLBACK: use dataclass default ---
86
+ if default is not MISSING:
87
+ values[f.name] = default
66
88
 
67
89
  return schema(**values)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 3.2.dev2
3
+ Version: 3.2.dev3
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
File without changes
File without changes
File without changes