INNER CODE UNIT · Python
ensure_pdf
gokayfem/awesome-vlm-architectures · scripts/extract_architecture_figures.py:28
def ensure_pdf(arxiv_id: str) -> Path:
"""Return a cached primary-source PDF, downloading it when necessary."""
PDF_DIR.mkdir(parents=True, exist_ok=True)
pdf = PDF_DIR / f"{arxiv_id}.pdf"
if pdf.exists() and pdf.stat().st_size >= 50_000:
return pdf
temporary = pdf.with_suffix(".pdf.part")
request = urllib.request.Request(
f"https://arxiv.org/pdf/{arxiv_id}",
headers={"User-Agent": "awesome-vlm-architectures/figure-extractor"},
)
with urllib.request.urlopen(request, timeout=90) as response:
temporary.write_bytes(response.read())
temporary.replace(pdf)
time.sleep(0.15)
return pdf