| import os | |
| import sys | |
| lazy 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() | |
| def trace_text(text: str, limit: int = 60) -> str: | |
| if len(text) > limit: | |
| text = text[:limit] + "..." | |
| return repr(text) |