| from pathlib import Path |
| from paper2lab.inference.pipeline import PaperPipeline |
|
|
| p = PaperPipeline(refinement_mode="nemotron") |
|
|
| total = 0 |
| errors = 0 |
| weak = 0 |
|
|
| for pdf in Path("Data/papers").rglob("*.pdf"): |
| total += 1 |
|
|
| try: |
| r = p.run(str(pdf)) |
| c = r["paper_card_final"] |
|
|
| roadmap = c.get("reproduction_roadmap") or {} |
| if not isinstance(roadmap, dict): |
| roadmap = {} |
|
|
| kit = c.get("lab_starter_kit") or {} |
| if not isinstance(kit, dict): |
| kit = {} |
|
|
| datasets = c.get("datasets_or_data_sources") or [] |
| findings = c.get("key_findings") or [] |
| roadmap_steps = roadmap.get("experimental_steps") or [] |
| kit_structure = kit.get("project_structure") or [] |
| kit_risks = kit.get("reproducibility_risks") or [] |
|
|
| is_weak = ( |
| not c.get("title") |
| or not c.get("paper_type") |
| or not roadmap |
| or not kit |
| or len(kit_structure) == 0 |
| ) |
|
|
| if is_weak: |
| weak += 1 |
|
|
| print("\n---", pdf.name) |
| print("type:", c.get("paper_type")) |
| print("datasets:", len(datasets), datasets[:3]) |
| print("findings:", len(findings)) |
| print("roadmap steps:", len(roadmap_steps)) |
| print("lab kit structure:", len(kit_structure)) |
| print("lab risks:", len(kit_risks)) |
| print("refinement:", r["refinement"]["status"]) |
| print("weak:", is_weak) |
|
|
| except Exception as e: |
| errors += 1 |
| print("\nERROR:", pdf.name) |
| print(str(e)) |
|
|
| print("\n====================") |
| print("TOTAL:", total) |
| print("ERRORS:", errors) |
| print("WEAK:", weak) |
| print("====================") |