2024-05-05 21:32:23 +02:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
import os
|
2025-07-22 15:04:11 +02:00
|
|
|
import sys
|
2024-05-05 21:32:23 +02:00
|
|
|
|
|
|
|
|
# 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")
|
|
|
|
|
|
|
|
|
|
|
2025-07-22 15:04:11 +02:00
|
|
|
|
|
|
|
|
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()
|