python3-pikepdf: Upgrade 10.11.0 -> 10.13.0.post1

Upgrade to release 10.13.0.post1:

- Behavior change: pikepdf.DataDecodingError now derives from
  pikepdf.PdfError. A stream that will not decode is a defect in
  the document, and the same call that raises it -
  Object.read_bytes() - already raised PdfError for other kinds of
  damage, so except PdfError was a handler that looked correct,
  passed on healthy files, and let a traceback escape on damaged
  ones. Code catching DataDecodingError by name is unaffected. Code
  that orders except PdfError before except DataDecodingError will
  now take the first branch; if the distinction matters, reverse
  the order.
- Behavior change: pikepdf.PdfParsingError now derives from
  pikepdf.PdfError, for the same reason.
- pikepdf.PasswordError remains a sibling of PdfError, not a
  subclass. A wrong password does not mean the document is
  defective, and handlers that report the two separately depend on
  except PdfError not catching it.
- pikepdf.NotExtractableError is now exported. It was already the
  base class of the exported HifiPrintImageNotTranscodableError but
  could not be caught by name.
- Fixed the exceptions documentation, which referenced a nonexistent
  FormCopyWarning (the class is PageCopyWarning) and omitted
  ReferenceCycleError, PageCopyWarning and NotExtractableError.
- XMP assigns a type to every standard property, and software that
  reads XMP discards a property whose type is wrong - Ghostscript
  strips these silently, and PDF/A validators reject them. pikepdf
  used to choose the RDF container from the Python type of the
  value it was handed, so meta['dc:subject'] = ['a', 'b'] wrote an
  rdf:Seq where the specification requires an rdf:Bag, and
  meta['dc:creator'] = 'Author' wrote a bare string where an
  rdf:Seq belongs. pikepdf now knows the type of the properties in
  the standard schemas and converts values to it.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Leon Anavi
2026-09-22 11:36:20 -07:00
committed by Khem Raj
parent 76eef1fd48
commit ae0db48cac
2 changed files with 16 additions and 8 deletions
@@ -1,52 +0,0 @@
SUMMARY = "Read, write, repair, and transform PDFs in Python, powered by qpdf"
DESCRIPTION = "A Python library for reading and writing PDF, powered by QPDF"
HOMEPAGE = "https://github.com/pikepdf/pikepdf"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9741c346eef56131163e13b9db1241b3"
SRC_URI[sha256sum] = "4bebc59ac74411064e7c97a4036174023e22ccbecd22b78750ab76551eb38988"
SRC_URI += "file://0001-pyproject.toml-Do-not-strip.patch"
inherit pypi python_setuptools_build_meta ptest-python-pytest
# pikepdf uses the C++20 language but no C++20 named modules. CMake's module
# dependency scanning (clang-scan-deps) does not work in the cross environment,
# so turn it off.
export CMAKE_ARGS = "-DCMAKE_CXX_SCAN_FOR_MODULES=OFF"
CVE_PRODUCT = "pikepdf"
DEPENDS += " \
python3-pybind11-native \
python3-nanobind-native \
python3-scikit-build-core-native \
ninja-native \
qpdf \
"
RDEPENDS:${PN} += " \
qpdf \
python3-pillow \
python3-lxml \
"
RDEPENDS:${PN}-ptest += " \
python3-attrs \
python3-hypothesis \
python3-numpy \
python3-pytest-cov \
python3-pytest-timeout \
python3-pytest-xdist \
python3-psutil \
python3-dateutil \
python3-python-xmp-toolkit \
python3-tomli \
"
do_install_ptest:append() {
install -m 0644 ${S}/pyproject.toml ${D}${PTEST_PATH}/
}
BBCLASSEXTEND = "native nativesdk"