"""CLI: compute a view_hash or awareness_hash over a document. python -m informed_decision [view|awareness] """ from __future__ import annotations import json import pathlib import sys from .canonicalize import awareness_hash, view_hash def main(argv: list[str]) -> int: if not argv: print(__doc__, file=sys.stderr) return 2 data = json.loads(pathlib.Path(argv[0]).read_text(encoding="utf-8")) kind = argv[1] if len(argv) > 1 else "view" if kind not in ("view", "awareness"): print(f"unknown kind {kind!r}; expected 'view' or 'awareness'", file=sys.stderr) return 2 result = view_hash(data) if kind == "view" else awareness_hash(data) print(result["canonical"]) print(result["hex"]) return 0 if __name__ == "__main__": raise SystemExit(main(sys.argv[1:]))