from __future__ import annotations import subprocess import sys import os from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parent.parent SCRIPT_DIR = PROJECT_ROOT / "scripts" CASES: tuple[tuple[str, tuple[str, ...]], ...] = ( ( "Edge fillet/chamfer and existing fillet rebuild checks", ("verify_edge_round_chamfer.py",), ), ( "Property editor exposes round/chamfer actions without generic Face leakage", ("verify_property_editor_specs.py",), ), ) def main() -> int: env = os.environ.copy() env.setdefault("PYTHONIOENCODING", "utf-8") env.setdefault("PYTHONUTF8", "1") for index, (label, command) in enumerate(CASES, start=1): print(f"\n[{index}/{len(CASES)}] {label}", flush=True) subprocess.run( (sys.executable, str(SCRIPT_DIR / command[0]), *command[1:]), cwd=PROJECT_ROOT, env=env, check=True, ) print("\nRound/chamfer edit suite passed.", flush=True) return 0 if __name__ == "__main__": raise SystemExit(main())