From bf715c9cf0d613dd734e217b7d6948a782fe42b5 Mon Sep 17 00:00:00 2001 From: ruv Date: Sat, 17 Oct 2026 10:51:08 -0400 Subject: [PATCH] fix(provision): avoid backslash in f-string expression (SyntaxError on Python <3.12) Co-Authored-By: claude-flow --- firmware/esp32-csi-node/provision.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/esp32-csi-node/provision.py b/firmware/esp32-csi-node/provision.py index a57fa3b14..ab32b889e 100644 --- a/firmware/esp32-csi-node/provision.py +++ b/firmware/esp32-csi-node/provision.py @@ -141,6 +141,12 @@ _RESERVED_DEVICE_RE = re.compile( ) +def _unprefixed_state_name(port: str) -> str: + """Pre-reserved-name-fix state filename for `port` (no leading underscore).""" + safe = port.replace("/", "_").replace(":", "_").replace("\\", "_") + return f"{safe}.json" + + def _state_path_for(port: str, state_dir: str) -> str: """File path for a given serial port. Sanitize the port for filesystem use.""" safe = port.replace("/", "_").replace(":", "_").replace("\\", "_") @@ -314,7 +320,7 @@ def load_state(port: str, state_dir: str) -> dict: path = _state_path_for(port, state_dir) if not os.path.isfile(path): legacy = os.path.join( - state_dir, f"{port.replace('/', '_').replace(':', '_').replace('\\', '_')}.json" + state_dir, _unprefixed_state_name(port) ) if legacy != path and os.path.isfile(legacy): path = legacy @@ -457,7 +463,7 @@ def load_board_state(port: str, mac, state_dir: str): if os.path.isfile(legacy): return load_state(port, state_dir), legacy unprefixed = os.path.join( - state_dir, f"{port.replace('/', '_').replace(':', '_').replace('\\', '_')}.json" + state_dir, _unprefixed_state_name(port) ) if unprefixed != legacy and os.path.isfile(unprefixed): return load_state(port, state_dir), unprefixed