39 lines
962 B
Python
39 lines
962 B
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
import asyncio
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from . import build_audit_report
|
|
|
|
__all__ = ["build_audit_report", "main"]
|
|
|
|
|
|
def _load_payload(path: Path) -> dict:
|
|
text = path.read_text(encoding="utf-8")
|
|
return json.loads(text)
|
|
|
|
|
|
def _print_report(report: dict) -> None:
|
|
print(json.dumps(report, indent=2))
|
|
|
|
|
|
def main(argv: list[str] | None = None) -> None:
|
|
parser = argparse.ArgumentParser(
|
|
description="Validate a Form 990 extraction payload using the Form Auditor agent."
|
|
)
|
|
parser.add_argument(
|
|
"payload",
|
|
nargs="?",
|
|
default="example_data.json",
|
|
help="Path to a JSON file containing the extraction payload.",
|
|
)
|
|
args = parser.parse_args(argv)
|
|
|
|
payload_path = Path(args.payload).expanduser()
|
|
payload = _load_payload(payload_path)
|
|
|
|
report = asyncio.run(build_audit_report(payload))
|
|
_print_report(report.model_dump())
|