from __future__ import annotations import json import re from pathlib import Path from refactor_master_helpers import ROOT, collect_gas_files, read_text FORBIDDEN_OUTPUT_TERMS = ("--out", "write_json", "save_json", "write_text", "append_text") TEMP_RUNTIME_HINTS = ("Temp/",) def main() -> int: violations: list[dict[str, str]] = [] for path in collect_gas_files(): text = read_text(path) for lineno, line in enumerate(text.splitlines(), start=1): if "Temp/" not in line: continue if any(hint in line for hint in TEMP_RUNTIME_HINTS): violations.append({"file": str(path.relative_to(ROOT)), "line": str(lineno), "text": line.strip()}) result = { "formula_id": "NO_TEMP_RUNTIME_READ_V1", "violation_count": len(violations), "violations": violations[:200], "gate": "PASS" if not violations else "FAIL", } out = ROOT / "Temp" / "no_temp_runtime_read_v1.json" out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8") print(json.dumps(result, ensure_ascii=True, indent=2)) return 0 if not violations else 1 if __name__ == "__main__": raise SystemExit(main())