Files

41 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""Generate, freeze, or unblind confirmatory artifact-review packets."""
from __future__ import annotations
import argparse
import json
from pathlib import Path
from messageboardbench.blinded_review import freeze_labels, generate_packets, join_labels
def main(argv=None) -> int:
parser = argparse.ArgumentParser(description=__doc__)
sub = parser.add_subparsers(dest="command", required=True)
generate = sub.add_parser("generate")
generate.add_argument("--report", type=Path, required=True)
generate.add_argument("--packets", type=Path, required=True)
generate.add_argument("--mapping", type=Path, required=True)
freeze = sub.add_parser("freeze")
freeze.add_argument("--labels", type=Path, required=True)
freeze.add_argument("--mapping", type=Path, required=True)
freeze.add_argument("--out", type=Path, required=True)
join = sub.add_parser("join")
join.add_argument("--frozen-labels", type=Path, required=True)
join.add_argument("--mapping", type=Path, required=True)
join.add_argument("--out", type=Path, required=True)
args = parser.parse_args(argv)
if args.command == "generate":
result = generate_packets(args.report, args.packets, args.mapping)
elif args.command == "freeze":
result = freeze_labels(args.labels, args.mapping, args.out)
else:
result = join_labels(args.frozen_labels, args.mapping, args.out)
print(json.dumps(result, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())