from __future__ import annotations from datetime import datetime, timezone LINES: list[str] = [] def ts() -> str: return datetime.now(timezone.utc).isoformat(timespec="seconds") def log(level: str, msg: str) -> None: html = { "INFO": "dodgerblue", "WARN": "goldenrod", "ERR": "crimson", } c = html.get(level) tag = f"{level}" if c else level LINES.append(f"[{ts()}] {tag}: {msg}") def info(msg: str) -> None: log("INFO", msg) def warn(msg: str) -> None: log("WARN", msg) def error(msg: str) -> None: log("ERR", msg) def clear() -> None: LINES.clear() def lines() -> list[str]: return LINES