From c3d53c6a4de88936bfaa6e6c86a8e19540529f81 Mon Sep 17 00:00:00 2001 From: Ernad Husremovic Date: Tue, 2 Sep 2025 19:00:48 +0200 Subject: [PATCH] Add cloneReaderDocumentRoot compatibility method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix additional PyPDF2 3.0+ deprecation error for cloneReaderDocumentRoot method which was replaced with clone_reader_document_root. Changes: - Add cloneReaderDocumentRoot compatibility method to PdfFileWriter wrapper - Update documentation to include the new method mapping - Resolves account_edi PDF generation error Resolves PyPDF2.errors.DeprecationError: cloneReaderDocumentRoot is deprecated and was removed in PyPDF2 3.0.0. Use clone_reader_document_root instead. 🤖 assisted by claude --- odoo-bringout-oca-ocb-base/doc/PATCH_PDFWRITER.md | 2 ++ odoo-bringout-oca-ocb-base/odoo/tools/pdf.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/odoo-bringout-oca-ocb-base/doc/PATCH_PDFWRITER.md b/odoo-bringout-oca-ocb-base/doc/PATCH_PDFWRITER.md index 3230f3f5..7960027d 100644 --- a/odoo-bringout-oca-ocb-base/doc/PATCH_PDFWRITER.md +++ b/odoo-bringout-oca-ocb-base/doc/PATCH_PDFWRITER.md @@ -19,6 +19,7 @@ In PyPDF2 3.0.0, several classes and methods were deprecated and removed: - `getPage(n)` → `pages[n]` - `appendPagesFromReader()` → `append_pages_from_reader()` - `_addObject()` → `_add_object()` +- `cloneReaderDocumentRoot()` → `clone_reader_document_root()` ## Solution @@ -79,6 +80,7 @@ except ImportError: | `PdfFileReader.getNumPages()` | `len(PdfReader.pages)` | ✅ Wrapped | | `PdfFileReader.getPage()` | `PdfReader.pages[]` | ✅ Wrapped | | `PdfFileWriter.appendPagesFromReader()` | `PdfWriter.append_pages_from_reader()` | ✅ Wrapped | +| `PdfFileWriter.cloneReaderDocumentRoot()` | `PdfWriter.clone_reader_document_root()` | ✅ Wrapped | ## Testing diff --git a/odoo-bringout-oca-ocb-base/odoo/tools/pdf.py b/odoo-bringout-oca-ocb-base/odoo/tools/pdf.py index acdaa8cb..f4ba002b 100644 --- a/odoo-bringout-oca-ocb-base/odoo/tools/pdf.py +++ b/odoo-bringout-oca-ocb-base/odoo/tools/pdf.py @@ -46,6 +46,10 @@ try: def addMetadata(self, metadata): """Compatibility method for old API""" return self.add_metadata(metadata) + + def cloneReaderDocumentRoot(self, reader): + """Compatibility method for old API""" + return self.clone_reader_document_root(reader) PyPDF2.PdfFileReader = PdfFileReader PyPDF2.PdfFileWriter = PdfFileWriter