()
| 475 | |
| 476 | |
| 477 | def main() -> None: |
| 478 | from common import emit |
| 479 | |
| 480 | args = parser().parse_args() |
| 481 | primary = maybe_load_json_record(args.input) if args.input else None |
| 482 | evidence = maybe_load_json_record(args.evidence) if args.evidence else None |
| 483 | assets = maybe_load_json_record(args.assets) if args.assets else None |
| 484 | data = merge_inputs(primary, evidence, assets) |
| 485 | if not data: |
| 486 | raise SystemExit("plan_figures.py requires at least one JSON input.") |
| 487 | |
| 488 | evidence_pack = data.get("evidence_pack", {}) if isinstance(data.get("evidence_pack"), dict) else {} |
| 489 | page_assets = data.get("page_assets", []) if isinstance(data.get("page_assets"), list) else [] |
| 490 | image_assets = data.get("image_assets", []) if isinstance(data.get("image_assets"), list) else [] |
| 491 | figure_assets = data.get("figure_assets", []) if isinstance(data.get("figure_assets"), list) else [] |
| 492 | items = build_figure_items(evidence_pack, limit=args.max_items) |
| 493 | items = attach_candidate_images(items, page_assets, image_assets, figure_assets) |
| 494 | payload = { |
| 495 | "status": "ok", |
| 496 | "script": "plan_figures.py", |
| 497 | "paper_id": args.paper_id or data.get("paper_id", ""), |
| 498 | "figure_plan": { |
| 499 | "paper_id": args.paper_id or data.get("paper_id", ""), |
| 500 | "figures": items, |
| 501 | }, |
| 502 | } |
| 503 | emit(payload, args.output) |
| 504 | |
| 505 | |
| 506 | if __name__ == "__main__": |
no test coverage detected