from __future__ import annotations import os import sys # types if False: from typing import IO trace_file: IO[str] | None = None if trace_filename := os.environ.get("PYREPL_TRACE"): trace_file = open(trace_filename, "a") if sys.platform == "emscripten": from posix import _emscripten_log def trace(line: str, *k: object, **kw: object) -> None: if "PYREPL_TRACE" not in os.environ: return if k or kw: line = line.format(*k, **kw) _emscripten_log(line) else: def trace(line: str, *k: object, **kw: object) -> None: if trace_file is None: return if k or kw: line = line.format(*k, **kw) trace_file.write(line + "\n") trace_file.flush()