hungerlib 3.7.2__tar.gz → 3.8__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-3.7.2/src/hungerlib.egg-info → hungerlib-3.8}/PKG-INFO +1 -1
- {hungerlib-3.7.2 → hungerlib-3.8}/pyproject.toml +1 -1
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/datamap.py +23 -36
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/messagerouter.py +20 -20
- {hungerlib-3.7.2 → hungerlib-3.8/src/hungerlib.egg-info}/PKG-INFO +1 -1
- {hungerlib-3.7.2 → hungerlib-3.8}/LICENSE +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/README.md +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/setup.cfg +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/__init__.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/__init__.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/backups.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/command.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/databases.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/filemanager.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/schedule.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/api/startup.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/bridgeclient.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/configloader.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/panel.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/servers/__init__.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/servers/generic.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/servers/minecraft.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/utils/__init__.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/utils/colormaps.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/utils/time.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib/utils/utils.py +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib.egg-info/SOURCES.txt +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib.egg-info/dependency_links.txt +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib.egg-info/requires.txt +0 -0
- {hungerlib-3.7.2 → hungerlib-3.8}/src/hungerlib.egg-info/top_level.txt +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import re
|
|
2
2
|
from dataclasses import dataclass, fields, is_dataclass
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
_GLOBAL_MAPS = []
|
|
5
5
|
|
|
6
|
-
def
|
|
7
|
-
global
|
|
8
|
-
|
|
6
|
+
def setGlobalMaps(*maps):
|
|
7
|
+
global _GLOBAL_MAPS
|
|
8
|
+
_GLOBAL_MAPS = list(maps)
|
|
9
9
|
|
|
10
|
-
def
|
|
11
|
-
return
|
|
10
|
+
def getGlobalMaps():
|
|
11
|
+
return _GLOBAL_MAPS
|
|
12
12
|
|
|
13
13
|
class Syntax:
|
|
14
|
-
braces = r"\{([^{}]+)\}"
|
|
15
|
-
dollars = r"\$\{([^{}]+)\}"
|
|
16
|
-
angles = r"<([^<>]+)>"
|
|
17
|
-
percents = r"%([^%]+)%"
|
|
14
|
+
braces = r"\{([^{}]+)\}" # {example}
|
|
15
|
+
dollars = r"\$\{([^{}]+)\}" # ${example}
|
|
16
|
+
angles = r"<([^<>]+)>" # <example>
|
|
17
|
+
percents = r"%([^%]+)%" # %example%
|
|
18
18
|
|
|
19
19
|
@dataclass
|
|
20
20
|
class DataMap:
|
|
@@ -48,29 +48,17 @@ datamap.angles = datamap(syntax=Syntax.angles)
|
|
|
48
48
|
datamap.dollars = datamap(syntax=Syntax.dollars)
|
|
49
49
|
datamap.percents = datamap(syntax=Syntax.percents)
|
|
50
50
|
|
|
51
|
-
def mapit(text: str,
|
|
52
|
-
#
|
|
53
|
-
if
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
def mapit(text: str, extra_maps=None, override_maps=None, **ctx):
|
|
52
|
+
# Determine maps to use
|
|
53
|
+
if override_maps is not None:
|
|
54
|
+
maps = list(override_maps)
|
|
56
55
|
else:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# 3. Remove disabled maps
|
|
61
|
-
if disable:
|
|
62
|
-
maps_to_use = [m for m in maps_to_use if m not in disable]
|
|
63
|
-
|
|
64
|
-
# 4. Add positional maps
|
|
65
|
-
if maps:
|
|
66
|
-
maps_to_use.extend(maps)
|
|
56
|
+
maps = list(getGlobalMaps())
|
|
57
|
+
if extra_maps:
|
|
58
|
+
maps.extend(extra_maps)
|
|
67
59
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
maps_to_use.extend(enable)
|
|
71
|
-
|
|
72
|
-
# 6. Apply maps in order
|
|
73
|
-
for m in maps_to_use:
|
|
60
|
+
# Apply maps in order
|
|
61
|
+
for m in maps:
|
|
74
62
|
if isinstance(m, type) and is_dataclass(m):
|
|
75
63
|
m = m()
|
|
76
64
|
|
|
@@ -83,7 +71,7 @@ def mapit(text: str, *maps, only_maps=None, disable=None, enable=None, **runtime
|
|
|
83
71
|
d = m.as_dict()
|
|
84
72
|
|
|
85
73
|
elif isinstance(m, dict):
|
|
86
|
-
pattern =
|
|
74
|
+
pattern = ctx.get("syntax")
|
|
87
75
|
if not pattern:
|
|
88
76
|
continue
|
|
89
77
|
d = m
|
|
@@ -97,10 +85,10 @@ def mapit(text: str, *maps, only_maps=None, disable=None, enable=None, **runtime
|
|
|
97
85
|
|
|
98
86
|
text = re.sub(pattern, repl, text)
|
|
99
87
|
|
|
100
|
-
#
|
|
101
|
-
if
|
|
88
|
+
# ctx vars always apply last
|
|
89
|
+
if ctx:
|
|
102
90
|
pattern = Syntax.braces
|
|
103
|
-
d =
|
|
91
|
+
d = ctx
|
|
104
92
|
|
|
105
93
|
def repl(match):
|
|
106
94
|
k = match.group(1)
|
|
@@ -109,4 +97,3 @@ def mapit(text: str, *maps, only_maps=None, disable=None, enable=None, **runtime
|
|
|
109
97
|
text = re.sub(pattern, repl, text)
|
|
110
98
|
|
|
111
99
|
return text
|
|
112
|
-
|
|
@@ -17,7 +17,7 @@ class MessageRouter:
|
|
|
17
17
|
file_maps: list = [STRIP_COLOR_MAP],
|
|
18
18
|
|
|
19
19
|
info_prefix: str = "<white>[INFO]: ",
|
|
20
|
-
warn_prefix: str = "<
|
|
20
|
+
warn_prefix: str = "<yellow>[WARN]: ",
|
|
21
21
|
error_prefix: str = "<red>[ERROR]: ",
|
|
22
22
|
):
|
|
23
23
|
|
|
@@ -55,8 +55,8 @@ class MessageRouter:
|
|
|
55
55
|
self.logger.addHandler(handler)
|
|
56
56
|
|
|
57
57
|
# internal utils
|
|
58
|
-
def _format(self,
|
|
59
|
-
return mapit(
|
|
58
|
+
def _format(self, text, maps, **ctx):
|
|
59
|
+
return mapit(text, override_maps=maps, **ctx)
|
|
60
60
|
|
|
61
61
|
def _merge_maps(self, base, extra):
|
|
62
62
|
maps = list(base)
|
|
@@ -65,10 +65,10 @@ class MessageRouter:
|
|
|
65
65
|
return maps
|
|
66
66
|
|
|
67
67
|
# routing primitives
|
|
68
|
-
def origin(self,
|
|
68
|
+
def origin(self, text, level="info", extra_maps=None, override_maps=None, **ctx):
|
|
69
69
|
# format
|
|
70
70
|
maps = self._merge_maps(override_maps or self.origin_maps, extra_maps)
|
|
71
|
-
mapped = self._format(
|
|
71
|
+
mapped = self._format(text, maps, **ctx)
|
|
72
72
|
if level == "info": prefix = mapit(self.info_prefix, [ASCII_COLOR_MAP])
|
|
73
73
|
elif level == "warn": prefix = mapit(self.warn_prefix, [ASCII_COLOR_MAP])
|
|
74
74
|
elif level == "error": prefix = mapit(self.error_prefix, [ASCII_COLOR_MAP])
|
|
@@ -79,10 +79,10 @@ class MessageRouter:
|
|
|
79
79
|
print(msg)
|
|
80
80
|
return msg
|
|
81
81
|
|
|
82
|
-
def destination(self,
|
|
82
|
+
def destination(self, text, level="info", extra_maps=None, override_maps=None, **ctx):
|
|
83
83
|
# format
|
|
84
84
|
maps = self._merge_maps(override_maps or self.destination_maps, extra_maps)
|
|
85
|
-
msg = self._format(
|
|
85
|
+
msg = self._format(text, maps, **ctx)
|
|
86
86
|
|
|
87
87
|
# send
|
|
88
88
|
for server in self.Servers:
|
|
@@ -90,10 +90,10 @@ class MessageRouter:
|
|
|
90
90
|
server.bridge.log(msg, level)
|
|
91
91
|
return msg
|
|
92
92
|
|
|
93
|
-
def broadcast(self,
|
|
93
|
+
def broadcast(self, text, extra_maps=None, override_maps=None, **ctx):
|
|
94
94
|
# format
|
|
95
95
|
maps = self._merge_maps(override_maps or self.broadcast_maps, extra_maps)
|
|
96
|
-
msg = self._format(
|
|
96
|
+
msg = self._format(text, maps, **ctx)
|
|
97
97
|
|
|
98
98
|
# send
|
|
99
99
|
for server in self.Servers:
|
|
@@ -101,10 +101,10 @@ class MessageRouter:
|
|
|
101
101
|
server.sendBroadcast(msg)
|
|
102
102
|
return msg
|
|
103
103
|
|
|
104
|
-
def filelog(self,
|
|
104
|
+
def filelog(self, text, level="info", extra_maps=None, override_maps=None, **ctx):
|
|
105
105
|
# format
|
|
106
106
|
maps = self._merge_maps(override_maps or self.file_maps, extra_maps)
|
|
107
|
-
msg = self._format(
|
|
107
|
+
msg = self._format(text, maps, **ctx)
|
|
108
108
|
|
|
109
109
|
# send
|
|
110
110
|
{
|
|
@@ -115,17 +115,17 @@ class MessageRouter:
|
|
|
115
115
|
return msg
|
|
116
116
|
|
|
117
117
|
# simple passthrough helpers (origin + file)
|
|
118
|
-
def info(self,
|
|
119
|
-
msg = self.origin(
|
|
120
|
-
self.filelog(
|
|
118
|
+
def info(self, text, extra_maps=None, override_maps=None, **ctx):
|
|
119
|
+
msg = self.origin(text=text, level="info", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
120
|
+
self.filelog(text=text, level="info", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
121
121
|
return msg
|
|
122
122
|
|
|
123
|
-
def warn(self,
|
|
124
|
-
msg = self.origin(
|
|
125
|
-
self.filelog(
|
|
123
|
+
def warn(self, text, extra_maps=None, override_maps=None, **ctx):
|
|
124
|
+
msg = self.origin(text=text, level="warn", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
125
|
+
self.filelog(text=text, level="warn", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
126
126
|
return msg
|
|
127
127
|
|
|
128
|
-
def error(self,
|
|
129
|
-
msg = self.origin(
|
|
130
|
-
self.filelog(
|
|
128
|
+
def error(self, text, extra_maps=None, override_maps=None, **ctx):
|
|
129
|
+
msg = self.origin(text=text, level="error", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
130
|
+
self.filelog(text=text, level="error", extra_maps=extra_maps, override_maps=override_maps, **ctx)
|
|
131
131
|
return msg
|
|
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
|