diff --git a/scripts/render_bench.py b/scripts/render_bench.py index c289546d..8994f5bc 100755 --- a/scripts/render_bench.py +++ b/scripts/render_bench.py @@ -77,8 +77,9 @@ def load_config() -> dict: config = ConfigManager().config if isinstance(config, dict) and config: return config - except Exception: - pass + except Exception as exc: # noqa: BLE001 - any failure means use the plain read + print(f"ConfigManager unavailable ({exc}); reading {CONFIG} directly", + file=sys.stderr) # ConfigManager pulls in a lot; a plain read is enough to drive the panel # and keeps the benchmark usable on a half-installed machine. try: diff --git a/src/common/frame_timing.py b/src/common/frame_timing.py index 9a39290b..c71399ff 100644 --- a/src/common/frame_timing.py +++ b/src/common/frame_timing.py @@ -145,7 +145,10 @@ STATS_FILENAME = "ledmatrix_frame_stats.json" def default_stats_path() -> str: - base = "/dev/shm" if os.path.isdir("/dev/shm") else tempfile.gettempdir() + # A fixed name in a shared directory is safe here: write() creates its + # temp file with mkstemp and os.replace()s it over this path, which swaps + # out whatever is there -- a planted symlink included -- without following it. + base = "/dev/shm" if os.path.isdir("/dev/shm") else tempfile.gettempdir() # nosec B108 return os.path.join(base, STATS_FILENAME)