"""Wrapper around enterprise_pdf_checker.py — runs in Celery worker.""" import sys import os import tempfile import structlog from pathlib import Path # enterprise_pdf_checker.py lives at repo root (parent of backend/) REPO_ROOT = Path(__file__).parents[3] if str(REPO_ROOT) not in sys.path: sys.path.insert(0, str(REPO_ROOT)) from enterprise_pdf_checker import EnterprisePDFChecker # noqa: E402 logger = structlog.get_logger() def run_check(pdf_bytes: bytes, filename: str) -> dict: """Run WCAG accessibility check on PDF bytes. Returns result dict.""" with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as tmp: tmp.write(pdf_bytes) tmp_path = tmp.name try: checker = EnterprisePDFChecker(tmp_path) result = checker.check_all() result["filename"] = filename logger.info("check_complete", filename=filename, score=result.get("accessibility_score")) return result except Exception as exc: logger.error("check_failed", filename=filename, error=str(exc)) raise finally: os.unlink(tmp_path)