annator / src /agents /validation_agent.py
techprotrade's picture
Add src directory
734b5b4 verified
Raw
History Blame Contribute Delete
890 Bytes
from __future__ import annotations
from pathlib import Path
import fitz
from src.services.pdf_ops import rebuild_pdf
class OfflineValidationAgent:
name = "validation_agent"
def run(self, input_pdf: Path, output_pdf: Path) -> tuple[Path, dict]:
report = {"validated": False, "rebuilt": False, "page_count": 0}
try:
doc = fitz.open(input_pdf)
report["page_count"] = doc.page_count
report["validated"] = True
output_pdf.parent.mkdir(parents=True, exist_ok=True)
doc.save(output_pdf, garbage=4, deflate=True, clean=True)
return output_pdf, report
except Exception:
rebuilt = rebuild_pdf(input_pdf, output_pdf)
doc = fitz.open(rebuilt)
report.update({"validated": True, "rebuilt": True, "page_count": doc.page_count})
return rebuilt, report