From 7575dddefc951a9931991249d4721f295ab18138 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Mon, 8 Dec 2025 17:13:59 -0800 Subject: [PATCH] fix: add lossless_reconstruction attribute to OCROptions for compatibility Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) fix: resolve recursion error in lossless_reconstruction option Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) fix: ensure lossless_reconstruction attribute is added to Namespace Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) fix: ensure lossless_reconstruction attribute is correctly propagated to PageContext Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) --- src/ocrmypdf/_jobcontext.py | 2 +- src/ocrmypdf/_options.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ocrmypdf/_jobcontext.py b/src/ocrmypdf/_jobcontext.py index 8e9cb520..04df33b3 100644 --- a/src/ocrmypdf/_jobcontext.py +++ b/src/ocrmypdf/_jobcontext.py @@ -38,7 +38,7 @@ class PdfContext: # Accept both types during transition if isinstance(options, Namespace): self.options = OCROptions.from_namespace(options) - self._namespace_options = options # Keep original for PageContext + self._namespace_options = self.options.to_namespace() # Use converted namespace with computed attributes elif isinstance(options, OCROptions): self.options = options self._namespace_options = options.to_namespace() # Convert immediately for PageContext diff --git a/src/ocrmypdf/_options.py b/src/ocrmypdf/_options.py index 3f947a1d..22274926 100644 --- a/src/ocrmypdf/_options.py +++ b/src/ocrmypdf/_options.py @@ -147,8 +147,6 @@ class OCROptions(BaseModel): # Plugin system plugins: Sequence[Path | str] | None = None - # Computed/derived options (set during validation) - lossless_reconstruction: bool = False # Store any extra attributes (for plugins and dynamic options) extra_attrs: dict[str, Any] = Field( @@ -217,7 +215,7 @@ class OCROptions(BaseModel): field_value = getattr(self, field_name) setattr(ns, field_name, field_value) - # Add extra attributes + # Add extra attributes (including computed ones like lossless_reconstruction) for key, value in self.extra_attrs.items(): setattr(ns, key, value)