serverwatcher 5.5.1__tar.gz → 5.6.dev0__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.5.1/src/serverwatcher.egg-info → serverwatcher-5.6.dev0}/PKG-INFO +1 -1
  2. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/pyproject.toml +1 -1
  3. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/watcher.py +20 -4
  4. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  5. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/LICENSE +0 -0
  6. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/README.md +0 -0
  7. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/setup.cfg +0 -0
  8. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/__init__.py +0 -0
  9. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/__init__.py +0 -0
  10. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/config.py +0 -0
  11. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/messages.py +0 -0
  12. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/watcher.py +0 -0
  13. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
  14. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
  15. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
  16. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher/validator.py +0 -0
  17. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
  18. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  19. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/requires.txt +0 -0
  20. {serverwatcher-5.5.1 → serverwatcher-5.6.dev0}/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.5.1
3
+ Version: 5.6.dev0
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.5.1"
10
+ version = "5.6-dev"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.14"
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import time
3
+ import re
3
4
  from zoneinfo import ZoneInfo
4
- from string import t
5
5
 
6
6
  from hungerlib import Panel, HungerLogger
7
7
  from hungerlib.servers import MinecraftServer, GenericServer
@@ -23,6 +23,23 @@ from serverwatcher.validator import validate_all
23
23
 
24
24
  validate_all()
25
25
 
26
+ _T_EXPR = re.compile(r"{([^{}]+)}")
27
+
28
+ def t_eval(template: str, /, **ctx):
29
+ """
30
+ Evaluate a t-string-like template with Python expressions inside { }.
31
+ Example:
32
+ t_eval("CPU: {snap.cpu}%", snap=snap)
33
+ """
34
+ def repl(match):
35
+ expr = match.group(1).strip()
36
+ try:
37
+ return str(eval(expr, {}, ctx))
38
+ except Exception as e:
39
+ return f"<err:{e}>"
40
+
41
+ return _T_EXPR.sub(repl, template)
42
+
26
43
  class ServerWatcher:
27
44
  def __init__(self):
28
45
 
@@ -80,9 +97,8 @@ class ServerWatcher:
80
97
 
81
98
  self.tz = ZoneInfo(self.config.timezone)
82
99
 
83
- def fmt(self, template: str, **kwargs):
84
- prefix = self.messages.prefix
85
- return t(template)
100
+ def fmt(self, template: str, **fmt):
101
+ return t_eval(template, self=self, **fmt)
86
102
 
87
103
  def say(self, template, level="info", **fmt):
88
104
  if not template:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.5.1
3
+ Version: 5.6.dev0
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
File without changes