serverwatcher 5.8.dev23__tar.gz → 5.8.dev25__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 (20) hide show
  1. {serverwatcher-5.8.dev23/src/serverwatcher.egg-info → serverwatcher-5.8.dev25}/PKG-INFO +1 -1
  2. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/pyproject.toml +1 -1
  3. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/validator.py +2 -15
  4. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  5. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/LICENSE +0 -0
  6. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/README.md +0 -0
  7. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/setup.cfg +0 -0
  8. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/__init__.py +0 -0
  9. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/configclasses/__init__.py +0 -0
  10. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/configclasses/config.py +0 -0
  11. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/configclasses/messages.py +0 -0
  12. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/configclasses/watcher.py +0 -0
  13. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
  14. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
  15. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
  16. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher/watcher.py +0 -0
  17. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
  18. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  19. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher.egg-info/requires.txt +0 -0
  20. {serverwatcher-5.8.dev23 → serverwatcher-5.8.dev25}/src/serverwatcher.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.8.dev23
3
+ Version: 5.8.dev25
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "serverwatcher"
10
- version = "5.8.dev23"
10
+ version = "5.8.dev25"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.14"
@@ -17,22 +17,18 @@ def deep_get_attr(obj, dotted):
17
17
  cur = getattr(cur, p)
18
18
  return cur
19
19
 
20
-
21
20
  def validate_type(name, value, expected_type, errors):
22
21
  if not isinstance(value, expected_type):
23
22
  errors.append(f"{name}: expected {expected_type.__name__}, got {type(value).__name__}")
24
23
 
25
-
26
24
  def validate_positive(name, value, errors):
27
25
  if isinstance(value, (int, float)) and value < 0:
28
26
  errors.append(f"{name}: must be >= 0 (got {value})")
29
27
 
30
-
31
28
  def validate_nonempty(name, value, errors):
32
29
  if isinstance(value, str) and value.strip() == "":
33
30
  errors.append(f"{name}: cannot be empty")
34
31
 
35
-
36
32
  def validate_dataclass(config_obj, schema, errors):
37
33
  for f in fields(schema):
38
34
  name = f.name
@@ -47,18 +43,13 @@ def validate_dataclass(config_obj, schema, errors):
47
43
  if expected_type in (int, float):
48
44
  validate_positive(name, value, errors)
49
45
 
50
-
51
46
  def validate_global_config(config, errors):
52
- if config.watch_interval < 1:
53
- errors.append(f"watch_interval: must be >= 1 (got {watcher.watch_interval})")
54
-
55
47
  if config.server_port <= 0 or config.server_port > 65535:
56
48
  errors.append(f"server_port: must be 1–65535 (got {config.server_port})")
57
49
 
58
50
  if config.rcon_port <= 0 or config.rcon_port > 65535:
59
51
  errors.append(f"rcon_port: must be 1–65535 (got {config.rcon_port})")
60
52
 
61
-
62
53
  def validate_watcher_config(watcherconfig, errors):
63
54
  if watcherconfig.restart_wait_seconds < 1:
64
55
  errors.append(f"restart_wait_seconds: must be >= 1 (got {watcherconfig.restart_wait_seconds})")
@@ -72,13 +63,12 @@ def validate_watcher_config(watcherconfig, errors):
72
63
  if watcherconfig.threshold_tps <= 0 or watcherconfig.threshold_tps > 20:
73
64
  errors.append(f"threshold_tps: must be 1–20 (got {watcherconfig.threshold_tps})")
74
65
 
75
-
76
66
  def validate_messages_config(messages, errors):
77
- for name, value in vars(messages).items():
67
+ for f in fields(MessagesConfig):
68
+ value = getattr(messages, f.name)
78
69
  if isinstance(value, str) and "{prefix}" not in value:
79
70
  pass
80
71
 
81
-
82
72
  def ensure_no_global_defaults(config, defaults):
83
73
  if config.panel_url == "https://example.com":
84
74
  defaults.append('panel_url')
@@ -98,12 +88,10 @@ def ensure_no_global_defaults(config, defaults):
98
88
  if config.rcon_password == 'password':
99
89
  defaults.append('rcon_password')
100
90
 
101
-
102
91
  def ensure_no_watcher_defaults(watcherconfig, defaults):
103
92
  if watcherconfig.schedule_control and watcherconfig.restart_soon_id == 0:
104
93
  defaults.append('restart_soon_id')
105
94
 
106
-
107
95
  def validate_all():
108
96
  errors = []
109
97
  defaults = []
@@ -139,6 +127,5 @@ def validate_all():
139
127
 
140
128
  print("✅ All configs are valid.")
141
129
 
142
-
143
130
  if __name__ == "__main__":
144
131
  validate_all()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.8.dev23
3
+ Version: 5.8.dev25
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0