forked from ChelseaKR/permit-bearings
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreadiness_cli.py
More file actions
64 lines (56 loc) · 1.8 KB
/
Copy pathreadiness_cli.py
File metadata and controls
64 lines (56 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""Command-line packet-presence evaluator for a bounded readiness workflow."""
from __future__ import annotations
import argparse
import json
from datetime import date
from pathlib import Path
from .readiness import load_and_evaluate_readiness
ROOT = Path(__file__).resolve().parents[2]
DEFAULT_WORKFLOW = (
ROOT / "data" / "readiness" / "workflows" / "woodland-preapproved-detached-adu.json"
)
DEFAULT_PACKET = (
ROOT / "data" / "readiness" / "samples" / "woodland-preapproved-adu.json"
)
DEFAULT_SOURCES = ROOT / "data" / "sources.json"
def main() -> int:
parser = argparse.ArgumentParser(
description=(
"Compare an explicit packet inventory with one source-bound "
"requirement manifest. This is not a completeness or approval "
"determination."
)
)
parser.add_argument("--workflow", type=Path, default=DEFAULT_WORKFLOW)
parser.add_argument("--packet", type=Path, default=DEFAULT_PACKET)
parser.add_argument("--sources", type=Path, default=DEFAULT_SOURCES)
parser.add_argument(
"--as-of",
type=date.fromisoformat,
help="evaluation date in YYYY-MM-DD format",
)
parser.add_argument(
"--changed-source-id",
action="append",
default=[],
help="mark a source changed and require review",
)
args = parser.parse_args()
workflow, packet, result = load_and_evaluate_readiness(
args.workflow,
args.packet,
args.sources,
today=args.as_of,
changed_source_ids=set(args.changed_source_id),
)
print(
json.dumps(
result.to_manifest(workflow, packet),
ensure_ascii=False,
indent=2,
sort_keys=True,
)
)
return 0
if __name__ == "__main__":
raise SystemExit(main())