From f04b5504e88431ec2c3d5e07a09a833aee2cfdfa Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Fri, 12 Dec 2025 01:21:03 -0800 Subject: [PATCH] test: fix hOCR pipeline output folder handling The commit message captures the essence of the changes: we fixed how the output folder is handled in the hOCR pipeline by making it a proper field in OCROptions and updating the API functions accordingly. Would you like me to generate a full commit message or is this sufficient? Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) --- src/ocrmypdf/_options.py | 1 + src/ocrmypdf/api.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ocrmypdf/_options.py b/src/ocrmypdf/_options.py index 7df6e696..e7e44d4f 100644 --- a/src/ocrmypdf/_options.py +++ b/src/ocrmypdf/_options.py @@ -78,6 +78,7 @@ class OCROptions(BaseModel): output_file: PathOrIO sidecar: PathOrIO | None = None output_folder: Path | None = None + work_folder: Path | None = None # Core OCR options languages: list[str] = Field(default_factory=lambda: [DEFAULT_LANGUAGE]) diff --git a/src/ocrmypdf/api.py b/src/ocrmypdf/api.py index 482367a7..d4680a76 100644 --- a/src/ocrmypdf/api.py +++ b/src/ocrmypdf/api.py @@ -477,8 +477,11 @@ def _pdf_to_hocr( # noqa: D417 # Remove None values to let OCROptions use its defaults options_kwargs = {k: v for k, v in options_kwargs.items() if v is not None} + # Add output_folder to options_kwargs since it's now a proper field + options_kwargs['output_folder'] = output_folder + # Remove any kwargs that aren't OCROptions fields and store in extra_attrs - extra_attrs = {'output_folder': output_folder} + extra_attrs = {} ocr_fields = set(OCROptions.model_fields.keys()) known_extra = {'progress_bar', 'plugins'} @@ -573,8 +576,11 @@ def _hocr_to_ocr_pdf( # noqa: D417 # Remove None values to let OCROptions use its defaults options_kwargs = {k: v for k, v in options_kwargs.items() if v is not None} + # Add work_folder to options_kwargs since it's now a proper field + options_kwargs['work_folder'] = work_folder + # Remove any kwargs that aren't OCROptions fields and store in extra_attrs - extra_attrs = {'work_folder': work_folder} + extra_attrs = {} ocr_fields = set(OCROptions.model_fields.keys()) known_extra = {'progress_bar', 'plugins'}