#!/usr/bin/env python3 """Accept a complete attempt or verify the complete accepted identity set.""" from __future__ import annotations import argparse import json import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src")) from repro_control.aggregation import accept_attempt, load_complete_units def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("--registry", type=Path, required=True) sub = parser.add_subparsers(dest="action", required=True) accept = sub.add_parser("accept") accept.add_argument("--logical-id", required=True) accept.add_argument("--attempt-id", required=True) accept.add_argument("--prefix", type=Path, required=True) verify = sub.add_parser("verify") verify.add_argument("--required-json", type=Path, required=True) args = parser.parse_args() if args.action == "accept": row = accept_attempt( args.registry, logical_id=args.logical_id, attempt_id=args.attempt_id, prefix=args.prefix, ) print(json.dumps(row, sort_keys=True)) else: required = set(json.loads(args.required_json.read_text())) print(json.dumps(load_complete_units(args.registry, required), sort_keys=True)) return 0 if __name__ == "__main__": raise SystemExit(main())