#1029739 pypdf2 is deprecated, please move from python3-pypdf2 to python3-pypdf

#1029739#5
Date:
2023-01-26 21:39:39 UTC
From:
To:
Package: src:pypdf2
Severity: wishlist
Control: affects -1 src:pypdf
Control: clone -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11
Control: reassign -2 bookletimposer
Control: reassign -3 kraft
Control: reassign -4 krop
Control: reassign -5 odoo-14
Control: reassign -6 orangeassassin
Control: reassign -7 pdfposter
Control: reassign -8 python3-xhtml2pdf
Control: reassign -9 tryton-modules-stock-package-shipping-dpd
Control: reassign -10 diffoscope
Control: reassign -11 diffoscope-minimal
Control: block -1 by -2 -3 -4 -5 -6 -7 -8 -9 -10 -11

As noted in https://bugs.debian.org/1028559, upstream for the PyPDF2
Python module has moved to the "pypdf" namespace.

Correspondingly, there is a new python3-pypdf package in debian
unstable.

The packages listed above all currently depend on (or recommend) PyPDF2,
but probably should move to the updated version.  When all these bug
reports are closed, we can consider removing the pypdf2 source package
and python3-pypdf2 from debian.

The migration should be relatively straightforward; much of the API
remains the same, just under the "pypdf" module name instead of the
"PyPDF2" module name.  Where the API differs, the version of PyPDF2
currently in debian testing/unstable (2.12.1-3) emits a
PendingDeprecationWarning wherever a piece of the API will break.

For example:

   foo.py:76: PendingDeprecationWarning: getObject is deprecated and will be removed in PyPDF2 3.0.0. Use get_object instead.

(PyPDF2 version 3.x is basically a terminal version of PyPDF2, and pypdf
takes over from 3.1.x onward; PyPDF2 version 3.x will not enter debian,
as it is an API break from 2.x, and pypdf 3.x supercedes it)

To transition a given package:

 - run tests with as complete coverage as possible and note the
   PendingDeprecation warnings

 - for each warning, patch the upstream line as recommended

 - ensure that the tests pass without PendingDeprecationWarnings

 - convert from "PyPDF2" to "pypdf" on any import or scoped reference in
   python

 - update dependency indicators in upstream metadata annotations
   (e.g. pyproject.toml, setup.cfg, etc)

 - update dependency indicators in debian packaging (from python3-pypdf2
   to python3-pypdf).

 - run the tests again

Please send any upstream fixes back upstream as well, of course!

Regards,

#1029739#18
Date:
2023-05-13 11:56:46 UTC
From:
To:
Upstream switched to pypdf with 0.2.9.
#1029739#23
Date:
2024-01-21 18:03:44 UTC
From:
To:
removed in PyPDF2 3.0.0. Use get_object instead.

As we approach the first anniversary for this bug, an update:

I've recently adopted pypdf and pypdf2 into the Debian Python Team in response
to an RFA for both packages.  As these are somewhat security sensitive
packages (among my first acts after adopting the packages was to upload
proposed updates for both to address minor security issues in Bookworm in the
next point release - same bug in both), I do not think we should release
pypdf2 in Trixie and have filed an RC bug to that effect.

If you want this package to be in Trixie, you will need to use pypdf instead
of pypdf2.  There is a new upstream release that supports this transition, but
packaging it will be non-trivial.

Scott K

#1029739#28
Date:
2024-02-03 13:25:11 UTC
From:
To:
Control: block -1 by 1062808

The pyHanko library is needed, which needs to be packaged.