#!/usr/bin/env python3 from __future__ import annotations import argparse import yaml from pathlib import Path ROOT = Path(__file__).resolve().parents[1] def main() -> int: ap = argparse.ArgumentParser() ap.add_argument("--in", dest="input_file", default="spec/13_formula_registry.yaml") ap.add_argument("--out", dest="output_file", default="spec/03_formulas/formula_registry.normalized.yaml") args = ap.parse_args() in_path = ROOT / args.input_file out_path = ROOT / args.output_file if not in_path.exists(): print(f"Input registry file not found: {in_path}") return 1 try: data = yaml.safe_load(in_path.read_text(encoding="utf-8")) except Exception as e: print(f"Error parsing input YAML: {e}") return 1 # Simple validation and copying to normalized version # Each formula should have owner, inputs, outputs, etc. formulas = data.get("formula_registry", {}).get("formulas", {}) # Let's ensure the output structure is clean normalized = { "schema_version": "formula_registry.normalized.v2", "description": "Normalized formula registry for QEDD development framework", "formulas": formulas } out_path.parent.mkdir(parents=True, exist_ok=True) out_path.write_text(yaml.safe_dump(normalized, sort_keys=False, allow_unicode=True), encoding="utf-8") print(f"Successfully normalized registry: {out_path}") return 0 if __name__ == "__main__": import sys sys.exit(main())