# -*- coding: utf-8 -*- """补上 fix_watch_reports.py 里遗漏的 tag(元组少一个元素)。 注意:这个脚本必须独立存在 —— 用 PowerShell 内联 Python 时, 字符串里的引号和 $ 会被 PowerShell 先处理,改一次坏一次。 """ from __future__ import annotations import sys from pathlib import Path TARGET = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\_build" r"\fix_watch_reports.py") NEEDLE = """bigButton("连不上?点这里诊断", C_WARN, 15);'''),""" REPLACED = """bigButton("连不上?点这里诊断", C_WARN, 15);''', "首页按钮改成设备诊断"),""" def main() -> int: text = TARGET.read_text(encoding="utf-8") if NEEDLE not in text: print(" [失败] 没找到要修的那一行") return 1 text = text.replace(NEEDLE, REPLACED, 1) TARGET.write_text(text, encoding="utf-8") print(" 已补上 tag") import ast try: tree = ast.parse(text) except SyntaxError as exc: print(f" 语法错误: {exc}") return 1 # 检查每个 FIXES 元素是不是 4 元组 for node in ast.walk(tree): if isinstance(node, ast.Assign): for t in node.targets: if isinstance(t, ast.Name) and t.id == "FIXES": for i, elt in enumerate(node.value.elts): if len(elt.elts) != 4: print(f" [仍不对] 第 {i} 个元素有 {len(elt.elts)} 项") return 1 print(f" FIXES 里 {len(node.value.elts)} 个元素都是 4 元组") return 0 if __name__ == "__main__": sys.exit(main())