serverwatcher 5.5__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.
- {serverwatcher-5.5/src/serverwatcher.egg-info → serverwatcher-5.6.dev0}/PKG-INFO +1 -1
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/pyproject.toml +1 -1
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/watcher.py +20 -3
- {serverwatcher-5.5 → serverwatcher-5.6.dev0/src/serverwatcher.egg-info}/PKG-INFO +1 -1
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/LICENSE +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/README.md +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/setup.cfg +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/__init__.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/__init__.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/config.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/messages.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/configclasses/watcher.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher/validator.py +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/requires.txt +0 -0
- {serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import time
|
|
3
|
+
import re
|
|
3
4
|
from zoneinfo import ZoneInfo
|
|
4
5
|
|
|
5
6
|
from hungerlib import Panel, HungerLogger
|
|
@@ -22,6 +23,23 @@ from serverwatcher.validator import validate_all
|
|
|
22
23
|
|
|
23
24
|
validate_all()
|
|
24
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
|
+
|
|
25
43
|
class ServerWatcher:
|
|
26
44
|
def __init__(self):
|
|
27
45
|
|
|
@@ -79,9 +97,8 @@ class ServerWatcher:
|
|
|
79
97
|
|
|
80
98
|
self.tz = ZoneInfo(self.config.timezone)
|
|
81
99
|
|
|
82
|
-
def fmt(self, template: str, **
|
|
83
|
-
|
|
84
|
-
return t(template)
|
|
100
|
+
def fmt(self, template: str, **fmt):
|
|
101
|
+
return t_eval(template, self=self, **fmt)
|
|
85
102
|
|
|
86
103
|
def say(self, template, level="info", **fmt):
|
|
87
104
|
if not template:
|
|
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
|
{serverwatcher-5.5 → serverwatcher-5.6.dev0}/src/serverwatcher.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|