From 021de21e8cdcf35276c945d8070d04435fa1a19c Mon Sep 17 00:00:00 2001 From: xmo-odoo <xmo@odoo.com> Date: Fri, 12 May 2017 13:28:57 +0200 Subject: [PATCH] [FIX] P3: replace PyPDF by PyPDF2 PyPDF is unmaintained and abandoned (as noted on its home page http://pybrary.net/pyPdf/) and was never updated to Python 3. PyPDF2 is a fork which provides a mostly compatible API and is P3-compatible. Replace PyPDF by PyPDF2. --- addons/document/models/ir_attachment.py | 4 ++-- odoo/addons/base/ir/ir_actions_report.py | 4 ++-- requirements.txt | 2 +- setup.py | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/document/models/ir_attachment.py b/addons/document/models/ir_attachment.py index 7480a657ff66..53ae1f1f463b 100644 --- a/addons/document/models/ir_attachment.py +++ b/addons/document/models/ir_attachment.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import logging -import pyPdf +import PyPDF2 import xml.dom.minidom import zipfile @@ -110,7 +110,7 @@ class IrAttachment(models.Model): if bin_data.startswith('%PDF-'): f = StringIO(bin_data) try: - pdf = pyPdf.PdfFileReader(f) + pdf = PyPDF2.PdfFileReader(f, overwriteWarnings=False) for page in pdf.pages: buf += page.extractText() except Exception: diff --git a/odoo/addons/base/ir/ir_actions_report.py b/odoo/addons/base/ir/ir_actions_report.py index 466f4960300d..192cdad6e4d3 100644 --- a/odoo/addons/base/ir/ir_actions_report.py +++ b/odoo/addons/base/ir/ir_actions_report.py @@ -19,7 +19,7 @@ import re from collections import namedtuple from contextlib import closing -from pyPdf import PdfFileWriter, PdfFileReader +from PyPDF2 import PdfFileWriter, PdfFileReader from distutils.version import LooseVersion from reportlab.graphics.barcode import createBarcodeDrawing @@ -84,7 +84,7 @@ def _merge_pdf(documents): for document in documents: pdfreport = open(document, 'rb') streams.append(pdfreport) - reader = PdfFileReader(pdfreport) + reader = PdfFileReader(pdfreport, overwriteWarnings=False) for page in range(0, reader.getNumPages()): writer.addPage(reader.getPage(page)) diff --git a/requirements.txt b/requirements.txt index 23abdb04f190..f06962769788 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,7 +21,7 @@ psycopg2==2.6.2 pydot==1.2.3 pyldap==2.4.28 pyparsing==2.1.10 -pyPdf==1.13 +PyPDF2==1.26.0 pyserial==3.1.1 python-dateutil==2.5.3 python-openid==2.2.5 diff --git a/setup.py b/setup.py index 465f40b1f0ab..5d6c75b88424 100644 --- a/setup.py +++ b/setup.py @@ -94,7 +94,7 @@ def py2exe_options(): 'pychart', 'pydot', 'pyparsing', - 'pyPdf', + 'PyPDF2', 'pytz', 'reportlab', 'requests', @@ -153,7 +153,7 @@ setup( 'pydot', 'pyldap', # optional 'pyparsing', - 'pypdf', + 'pypdf2', 'pyserial', 'python-dateutil', 'python-openid', -- GitLab