summaryrefslogtreecommitdiff
path: root/core/debug_log.py
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2026-08-02 01:38:09 -0600
committerChristian Kolset <christian.kolset@gmail.com>2026-08-02 01:38:09 -0600
commitfa0304793a4525db68cb53b527d695bfa2c65966 (patch)
tree1d10c2cd030e34324fbebe1f093588de2e310dee /core/debug_log.py
parenta3aa1df99df8f413cac2ba6020b7cd0dec6d2390 (diff)
Remove Debug window feature
Debug button, DebugWindow, and the stdout/stderr tee (core/debug_log.py) weren't wanted. developer_mode toggle stays — still gates device Simulation Mode checkboxes and verbose terminal logging. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'core/debug_log.py')
-rw-r--r--core/debug_log.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/core/debug_log.py b/core/debug_log.py
deleted file mode 100644
index 86a8a59..0000000
--- a/core/debug_log.py
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-core/debug_log.py
-
-Tees stdout/stderr into an in-memory ring buffer + Qt signal so the Debug
-window can show everything the app has printed since startup — including
-messages from background poll threads (e.g. "[CMLLayer] poll error: ...") —
-not just whatever gets printed while the window happens to be open.
-
-install() should be called once, early, before anything prints. The real
-streams are still written to, so running from a terminal is unaffected.
-"""
-
-from __future__ import annotations
-
-import sys
-from collections import deque
-from typing import Optional
-
-from PyQt6.QtCore import QObject, pyqtSignal
-
-
-class _Broadcaster(QObject):
- line_written = pyqtSignal(str)
-
-
-class _StreamTee:
- def __init__(self, real_stream, lines: deque, broadcaster: _Broadcaster):
- self._real = real_stream
- self._lines = lines
- self._broadcaster = broadcaster
-
- def write(self, text: str) -> None:
- self._real.write(text)
- if text:
- self._lines.append(text)
- self._broadcaster.line_written.emit(text)
-
- def flush(self) -> None:
- self._real.flush()
-
- def isatty(self) -> bool:
- return False
-
-
-_lines: Optional[deque] = None
-_broadcaster: Optional[_Broadcaster] = None
-
-
-def install(max_lines: int = 2000) -> None:
- """Redirect sys.stdout/sys.stderr through the tee. Safe to call once."""
- global _lines, _broadcaster
- if _broadcaster is not None:
- return
- _lines = deque(maxlen=max_lines)
- _broadcaster = _Broadcaster()
- sys.stdout = _StreamTee(sys.stdout, _lines, _broadcaster)
- sys.stderr = _StreamTee(sys.stderr, _lines, _broadcaster)
-
-
-def get_broadcaster() -> Optional[_Broadcaster]:
- return _broadcaster
-
-
-def get_history() -> str:
- return "".join(_lines) if _lines is not None else ""