| |
| """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()) |
|
|