2025-05-28 14:21:09 +03:00

31 lines
700 B
Python

import sys
import re
from functools import partial
def _log(level_char: str, s):
lvl_char = "\x01{}\x02".format(level_char)
s = re.sub(r"data:.+?;base64[^'\"]+", "[...]", str(s))
for line in s.splitlines():
print(lvl_char, line, file=sys.stderr, flush=True)
trace = partial(_log, "t")
debug = partial(_log, "d")
info = partial(_log, "i")
warning = partial(_log, "w")
error = partial(_log, "e")
def throw(s, e_type=None, e_from=None):
error(s)
if e_type and e_from:
raise e_type(s) from e_from
elif e_type and not e_from:
raise e_type(s)
elif not e_type and e_from:
raise Exception(s) from e_from
else:
raise Exception(s)