| 10 | |
| 11 | |
| 12 | def parser() -> argparse.ArgumentParser: |
| 13 | p = argparse.ArgumentParser(description=__doc__ or "plan figures") |
| 14 | p.add_argument("--input", default="", help="Primary JSON path or string.") |
| 15 | p.add_argument("--evidence", default="", help="Evidence JSON path or string.") |
| 16 | p.add_argument("--assets", default="", help="PDF assets JSON path or string.") |
| 17 | p.add_argument("--output", default="", help="Output JSON path.") |
| 18 | p.add_argument("--paper-id", default="", help="Canonical paper id.") |
| 19 | p.add_argument("--max-items", type=int, default=12, help="Maximum number of figure/table items to keep. 0 means keep all.") |
| 20 | return p |
| 21 | |
| 22 | |
| 23 | def merge_inputs(primary: dict | None, evidence: dict | None, assets: dict | None) -> dict: |