Tue May 21 08:56:04 UTC 2024 I: starting to build pypdf/trixie/arm64 on jenkins on '2024-05-21 08:55' Tue May 21 08:56:04 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/arm64_13/19604/console.log Tue May 21 08:56:04 UTC 2024 I: Downloading source for trixie/pypdf=4.2.0-1 --2024-05-21 08:56:04-- http://deb.debian.org/debian/pool/main/p/pypdf/pypdf_4.2.0-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2231 (2.2K) [text/prs.lines.tag] Saving to: ‘pypdf_4.2.0-1.dsc’ 0K .. 100% 300M=0s 2024-05-21 08:56:04 (300 MB/s) - ‘pypdf_4.2.0-1.dsc’ saved [2231/2231] Tue May 21 08:56:04 UTC 2024 I: pypdf_4.2.0-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: pypdf Binary: python3-pypdf Architecture: all Version: 4.2.0-1 Maintainer: Debian Python Team Uploaders: Scott Kitterman , Daniel Kahn Gillmor , Homepage: https://pypdf.readthedocs.io/en/latest/ Standards-Version: 4.7.0 Vcs-Browser: https://salsa.debian.org/python-team/packages/pypdf Vcs-Git: https://salsa.debian.org/python-team/packages/pypdf.git Testsuite: autopkgtest-pkg-pybuild Build-Depends: debhelper-compat (= 13), dh-python, dh-sequence-python3, flit, pybuild-plugin-pyproject, python3-all, python3-pil , python3-pycryptodome , python3-pytest , python3-pytest-cov , python3-pytest-timeout , python3-yaml Package-List: python3-pypdf deb python optional arch=all Checksums-Sha1: 5846582c024816ea569184410d39d19169ce9a45 6809488 pypdf_4.2.0.orig.tar.xz efdca59c5600163e0d40b4f0bd89075e044ebf3b 8512 pypdf_4.2.0-1.debian.tar.xz Checksums-Sha256: 01faf4569813658dae749d5d04c376ecab9bbbfb2885d52af80676b1cfd4efdb 6809488 pypdf_4.2.0.orig.tar.xz 00c1a277e3e5e85c342c274571ae0eb186bf35a044f9903eb85aa02997d3207a 8512 pypdf_4.2.0-1.debian.tar.xz Files: c944a699b67c2216b82635fe06bd9280 6809488 pypdf_4.2.0.orig.tar.xz d40689e45b8912f085ff46752abd1126 8512 pypdf_4.2.0-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE53Kb/76FQA/u7iOxeNfe+5rVmvEFAmYVGfQACgkQeNfe+5rV mvFFSw/+MdkgPdRKN2FTU8M9b0nITExzIedblK3BO+Vy9hc5qUQMS5HERiTZIuwD J7WXmNE5fBOsUbW7WgrPy1hnBP0oIvh/lx5EWhbnETbGhINxTO8vudB7aWuUPqOF KCaYbgfev4ownMLYdNebC7XCZQ2nGMkZOz6M+CkLjInrYGytvjtI6tG8mIt6e7YY 6imf9XI6GY0x2/+64xu0MaLoAEsh02eUFTuOAawne64bADGFH7vDe/y9GqWtkulY NRNpTTnzms5xa6rVri0dF7MwOmrXNcRIcR9hMnVC7kh7cbsOWrW92DQ8dOWSDnPG HgVudqAlkc1MdFK9HotLNBBGnA8x7D07YeWrJZZBgLTdSEY02HPWId6rfNRlfmNz SaTFzIIUY3QEVDcudgivnUp6b2NTfyCvYmzpwpRfC66zHovsWl4ox4YhncWWGWi2 N5MUcy/sKIN/YWxz28vnr29w2Tfh9Kffr0r0QfH1zDYUSAGchksu+KK1ilfkdE8U Pc5HlZCLaxn92vjo1qo94/1l1X190BFxJoDmY7qFvr/QS1d0s8BJ6OZAizDhukR8 KS+QJCQOzZULCRLs9iiKR7U1mc0y+TXZDHRSlB/ztrMA0J5GrlSJ0yLjxtWyTqgs XJ7lY3olwogwy65jNwmuA7Kq6beg5+k9HjM8VZUHrRf53aHMmJ0= =RRfa -----END PGP SIGNATURE----- Tue May 21 08:56:04 UTC 2024 I: Checking whether the package is not for us Tue May 21 08:56:04 UTC 2024 I: Starting 1st build on remote node codethink01-arm64.debian.net. Tue May 21 08:56:04 UTC 2024 I: Preparing to do remote build '1' on codethink01-arm64.debian.net. Tue May 21 08:58:26 UTC 2024 I: Deleting $TMPDIR on codethink01-arm64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Mon Jun 23 03:19:05 -12 2025 I: pbuilder-time-stamp: 1750691945 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [pypdf_4.2.0-1.dsc] I: copying [./pypdf_4.2.0.orig.tar.xz] I: copying [./pypdf_4.2.0-1.debian.tar.xz] I: Extracting source gpgv: Signature made Tue Apr 9 10:35:32 2024 gpgv: using RSA key E7729BFFBE85400FEEEE23B178D7DEFB9AD59AF1 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./pypdf_4.2.0-1.dsc: no acceptable signature found dpkg-source: info: extracting pypdf in pypdf-4.2.0 dpkg-source: info: unpacking pypdf_4.2.0.orig.tar.xz dpkg-source: info: unpacking pypdf_4.2.0-1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 0001-Use-formal-Cryptodome-namespace.patch dpkg-source: info: applying 0002-Remove-addopts-for-pytest.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3862271/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='arm64' IFS=' ' INVOCATION_ID='0dac68396d9147e890a930338b7fe4ba' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='3862271' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/pbuilderrc_GQT9 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/b1 --logfile b1/build.log pypdf_4.2.0-1.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.4:3128' I: uname -a Linux codethink01-arm64 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Jun 22 17:48 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3862271/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: arm64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-python, dh-sequence-python3, flit, pybuild-plugin-pyproject, python3-all, python3-pil, python3-pycryptodome, python3-pytest, python3-pytest-cov, python3-pytest-timeout, python3-yaml dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19746 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on dh-sequence-python3; however: Package dh-sequence-python3 is not installed. pbuilder-satisfydepends-dummy depends on flit; however: Package flit is not installed. pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however: Package pybuild-plugin-pyproject is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-pil; however: Package python3-pil is not installed. pbuilder-satisfydepends-dummy depends on python3-pycryptodome; however: Package python3-pycryptodome is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-cov; however: Package python3-pytest-cov is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-timeout; however: Package python3-pytest-timeout is not installed. pbuilder-satisfydepends-dummy depends on python3-yaml; however: Package python3-yaml is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} docutils-common{a} dwz{a} file{a} flit{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libbrotli1{a} libbsd0{a} libdata-optlist-perl{a} libdebhelper-perl{a} libdeflate0{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libfreetype6{a} libfribidi0{a} libglib2.0-0t64{a} libgraphite2-3{a} libharfbuzz0b{a} libicu72{a} libimagequant0{a} libjbig0{a} libjpeg62-turbo{a} libjs-jquery{a} libjs-jquery-hotkeys{a} libjs-jquery-isonscreen{a} libjs-jquery-metadata{a} libjs-jquery-tablesorter{a} libjs-jquery-throttle-debounce{a} liblcms2-2{a} liblerc4{a} libmagic-mgc{a} libmagic1t64{a} libopenjp2-7{a} libparams-util-perl{a} libpipeline1{a} libpng16-16t64{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libraqm0{a} libreadline8t64{a} libsharpyuv0{a} libsub-exporter-perl{a} libsub-install-perl{a} libsub-override-perl{a} libsub-prototype-perl{a} libtiff6{a} libtool{a} libuchardet0{a} libwebp7{a} libwebpdemux2{a} libwebpmux3{a} libxau6{a} libxcb1{a} libxdmcp6{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-all{a} python3-build{a} python3-certifi{a} python3-chardet{a} python3-charset-normalizer{a} python3-coverage{a} python3-distutils{a} python3-docutils{a} python3-idna{a} python3-iniconfig{a} python3-installer{a} python3-lib2to3{a} python3-minimal{a} python3-packaging{a} python3-pil{a} python3-pkg-resources{a} python3-pluggy{a} python3-pycryptodome{a} python3-pyproject-hooks{a} python3-pytest{a} python3-pytest-cov{a} python3-pytest-timeout{a} python3-requests{a} python3-roman{a} python3-setuptools{a} python3-six{a} python3-toml{a} python3-tomli-w{a} python3-urllib3{a} python3-wheel{a} python3-yaml{a} python3.11{a} python3.11-minimal{a} python3.12{a} python3.12-minimal{a} readline-common{a} sensible-utils{a} sgml-base{a} tzdata{a} xml-core{a} The following packages are RECOMMENDED but will NOT be installed: curl javascript-common libarchive-cpio-perl libglib2.0-data libltdl-dev libmail-sendmail-perl libpaper-utils lynx python3-olefile python3-pygments shared-mime-info wget xdg-user-dirs 0 packages upgraded, 121 newly installed, 0 to remove and 0 not upgraded. Need to get 43.1 MB of archives. After unpacking 171 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 2 http://deb.debian.org/debian trixie/main arm64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] Get: 3 http://deb.debian.org/debian trixie/main arm64 libpython3.11-minimal arm64 3.11.9-1 [813 kB] Get: 4 http://deb.debian.org/debian trixie/main arm64 libexpat1 arm64 2.6.2-1 [88.7 kB] Get: 5 http://deb.debian.org/debian trixie/main arm64 python3.11-minimal arm64 3.11.9-1 [1767 kB] Get: 6 http://deb.debian.org/debian trixie/main arm64 python3-minimal arm64 3.11.8-1 [26.3 kB] Get: 7 http://deb.debian.org/debian trixie/main arm64 media-types all 10.1.0 [26.9 kB] Get: 8 http://deb.debian.org/debian trixie/main arm64 netbase all 6.4 [12.8 kB] Get: 9 http://deb.debian.org/debian trixie/main arm64 tzdata all 2024a-4 [255 kB] Get: 10 http://deb.debian.org/debian trixie/main arm64 readline-common all 8.2-4 [69.3 kB] Get: 11 http://deb.debian.org/debian trixie/main arm64 libreadline8t64 arm64 8.2-4 [157 kB] Get: 12 http://deb.debian.org/debian trixie/main arm64 libpython3.11-stdlib arm64 3.11.9-1 [1775 kB] Get: 13 http://deb.debian.org/debian trixie/main arm64 python3.11 arm64 3.11.9-1 [602 kB] Get: 14 http://deb.debian.org/debian trixie/main arm64 libpython3-stdlib arm64 3.11.8-1 [9332 B] Get: 15 http://deb.debian.org/debian trixie/main arm64 python3 arm64 3.11.8-1 [27.4 kB] Get: 16 http://deb.debian.org/debian trixie/main arm64 libpython3.12-minimal arm64 3.12.3-1 [802 kB] Get: 17 http://deb.debian.org/debian trixie/main arm64 python3.12-minimal arm64 3.12.3-1 [1931 kB] Get: 18 http://deb.debian.org/debian trixie/main arm64 sgml-base all 1.31 [15.4 kB] Get: 19 http://deb.debian.org/debian trixie/main arm64 sensible-utils all 0.0.22 [22.4 kB] Get: 20 http://deb.debian.org/debian trixie/main arm64 openssl arm64 3.2.1-3 [1324 kB] Get: 21 http://deb.debian.org/debian trixie/main arm64 ca-certificates all 20240203 [158 kB] Get: 22 http://deb.debian.org/debian trixie/main arm64 libmagic-mgc arm64 1:5.45-3 [314 kB] Get: 23 http://deb.debian.org/debian trixie/main arm64 libmagic1t64 arm64 1:5.45-3 [100 kB] Get: 24 http://deb.debian.org/debian trixie/main arm64 file arm64 1:5.45-3 [43.0 kB] Get: 25 http://deb.debian.org/debian trixie/main arm64 gettext-base arm64 0.21-14+b1 [160 kB] Get: 26 http://deb.debian.org/debian trixie/main arm64 libuchardet0 arm64 0.0.8-1+b1 [69.0 kB] Get: 27 http://deb.debian.org/debian trixie/main arm64 groff-base arm64 1.23.0-4 [1130 kB] Get: 28 http://deb.debian.org/debian trixie/main arm64 bsdextrautils arm64 2.40.1-1 [93.2 kB] Get: 29 http://deb.debian.org/debian trixie/main arm64 libpipeline1 arm64 1.5.7-2 [36.5 kB] Get: 30 http://deb.debian.org/debian trixie/main arm64 man-db arm64 2.12.1-1 [1394 kB] Get: 31 http://deb.debian.org/debian trixie/main arm64 m4 arm64 1.4.19-4 [277 kB] Get: 32 http://deb.debian.org/debian trixie/main arm64 autoconf all 2.71-3 [332 kB] Get: 33 http://deb.debian.org/debian trixie/main arm64 autotools-dev all 20220109.1 [51.6 kB] Get: 34 http://deb.debian.org/debian trixie/main arm64 automake all 1:1.16.5-1.3 [823 kB] Get: 35 http://deb.debian.org/debian trixie/main arm64 autopoint all 0.21-14 [496 kB] Get: 36 http://deb.debian.org/debian trixie/main arm64 libdebhelper-perl all 13.15.3 [88.0 kB] Get: 37 http://deb.debian.org/debian trixie/main arm64 libtool all 2.4.7-7 [517 kB] Get: 38 http://deb.debian.org/debian trixie/main arm64 dh-autoreconf all 20 [17.1 kB] Get: 39 http://deb.debian.org/debian trixie/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 40 http://deb.debian.org/debian trixie/main arm64 libparams-util-perl arm64 1.102-3 [23.4 kB] Get: 41 http://deb.debian.org/debian trixie/main arm64 libsub-install-perl all 0.929-1 [10.5 kB] Get: 42 http://deb.debian.org/debian trixie/main arm64 libdata-optlist-perl all 0.114-1 [10.6 kB] Get: 43 http://deb.debian.org/debian trixie/main arm64 libsub-exporter-perl all 0.990-1 [50.6 kB] Get: 44 http://deb.debian.org/debian trixie/main arm64 libsub-prototype-perl arm64 0.03-2+b2 [9776 B] Get: 45 http://deb.debian.org/debian trixie/main arm64 libsub-override-perl all 0.11-1 [10.4 kB] Get: 46 http://deb.debian.org/debian trixie/main arm64 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 47 http://deb.debian.org/debian trixie/main arm64 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 48 http://deb.debian.org/debian trixie/main arm64 libelf1t64 arm64 0.191-1+b1 [187 kB] Get: 49 http://deb.debian.org/debian trixie/main arm64 dwz arm64 0.15-1+b1 [102 kB] Get: 50 http://deb.debian.org/debian trixie/main arm64 libicu72 arm64 72.1-4+b1 [9224 kB] Get: 51 http://deb.debian.org/debian trixie/main arm64 libxml2 arm64 2.9.14+dfsg-1.3+b3 [624 kB] Get: 52 http://deb.debian.org/debian trixie/main arm64 gettext arm64 0.21-14+b1 [1249 kB] Get: 53 http://deb.debian.org/debian trixie/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 54 http://deb.debian.org/debian trixie/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 55 http://deb.debian.org/debian trixie/main arm64 debhelper all 13.15.3 [901 kB] Get: 56 http://deb.debian.org/debian trixie/main arm64 python3-pkg-resources all 68.1.2-2 [241 kB] Get: 57 http://deb.debian.org/debian trixie/main arm64 python3-lib2to3 all 3.12.3-1 [77.6 kB] Get: 58 http://deb.debian.org/debian trixie/main arm64 python3-distutils all 3.12.3-1 [131 kB] Get: 59 http://deb.debian.org/debian trixie/main arm64 python3-setuptools all 68.1.2-2 [468 kB] Get: 60 http://deb.debian.org/debian trixie/main arm64 dh-python all 6.20240422 [107 kB] Get: 61 http://deb.debian.org/debian trixie/main arm64 xml-core all 0.19 [20.1 kB] Get: 62 http://deb.debian.org/debian trixie/main arm64 docutils-common all 0.20.1+dfsg-3 [128 kB] Get: 63 http://deb.debian.org/debian trixie/main arm64 python3-roman all 3.3-3 [9880 B] Get: 64 http://deb.debian.org/debian trixie/main arm64 python3-docutils all 0.20.1+dfsg-3 [389 kB] Get: 65 http://deb.debian.org/debian trixie/main arm64 python3-certifi all 2023.11.17-1 [155 kB] Get: 66 http://deb.debian.org/debian trixie/main arm64 python3-charset-normalizer all 3.3.2-1 [51.6 kB] Get: 67 http://deb.debian.org/debian trixie/main arm64 python3-idna all 3.6-2 [37.0 kB] Get: 68 http://deb.debian.org/debian trixie/main arm64 python3-six all 1.16.0-6 [16.3 kB] Get: 69 http://deb.debian.org/debian trixie/main arm64 python3-urllib3 all 1.26.18-2 [116 kB] Get: 70 http://deb.debian.org/debian trixie/main arm64 python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 71 http://deb.debian.org/debian trixie/main arm64 python3-requests all 2.31.0+dfsg-2 [68.7 kB] Get: 72 http://deb.debian.org/debian trixie/main arm64 python3-tomli-w all 1.0.0-2 [8012 B] Get: 73 http://deb.debian.org/debian trixie/main arm64 flit all 3.9.0-2 [93.4 kB] Get: 74 http://deb.debian.org/debian trixie/main arm64 libbrotli1 arm64 1.1.0-2+b3 [295 kB] Get: 75 http://deb.debian.org/debian trixie/main arm64 libbsd0 arm64 0.12.2-1 [129 kB] Get: 76 http://deb.debian.org/debian trixie/main arm64 libdeflate0 arm64 1.20-1 [41.5 kB] Get: 77 http://deb.debian.org/debian trixie/main arm64 libpng16-16t64 arm64 1.6.43-5 [272 kB] Get: 78 http://deb.debian.org/debian trixie/main arm64 libfreetype6 arm64 2.13.2+dfsg-1+b4 [408 kB] Get: 79 http://deb.debian.org/debian trixie/main arm64 libfribidi0 arm64 1.0.13-3+b1 [71.3 kB] Get: 80 http://deb.debian.org/debian trixie/main arm64 libglib2.0-0t64 arm64 2.80.2-1 [1393 kB] Get: 81 http://deb.debian.org/debian trixie/main arm64 libgraphite2-3 arm64 1.3.14-2 [69.2 kB] Get: 82 http://deb.debian.org/debian trixie/main arm64 libharfbuzz0b arm64 8.3.0-2+b1 [2178 kB] Get: 83 http://deb.debian.org/debian trixie/main arm64 libimagequant0 arm64 2.18.0-1+b1 [34.6 kB] Get: 84 http://deb.debian.org/debian trixie/main arm64 libjbig0 arm64 2.1-6.1+b1 [30.4 kB] Get: 85 http://deb.debian.org/debian trixie/main arm64 libjpeg62-turbo arm64 1:2.1.5-3 [172 kB] Get: 86 http://deb.debian.org/debian trixie/main arm64 libjs-jquery-isonscreen all 1.2.0-1.1 [3196 B] Get: 87 http://deb.debian.org/debian trixie/main arm64 libjs-jquery-metadata all 12-4 [6532 B] Get: 88 http://deb.debian.org/debian trixie/main arm64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-3 [184 kB] Get: 89 http://deb.debian.org/debian trixie/main arm64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.2 kB] Get: 90 http://deb.debian.org/debian trixie/main arm64 liblcms2-2 arm64 2.14-2+b1 [144 kB] Get: 91 http://deb.debian.org/debian trixie/main arm64 liblerc4 arm64 4.0.0+ds-4+b1 [142 kB] Get: 92 http://deb.debian.org/debian trixie/main arm64 libopenjp2-7 arm64 2.5.0-2+b3 [177 kB] Get: 93 http://deb.debian.org/debian trixie/main arm64 libpython3.12-stdlib arm64 3.12.3-1 [1889 kB] Get: 94 http://deb.debian.org/debian trixie/main arm64 libraqm0 arm64 0.10.1-1+b1 [13.7 kB] Get: 95 http://deb.debian.org/debian trixie/main arm64 libsharpyuv0 arm64 1.4.0-0.1 [111 kB] Get: 96 http://deb.debian.org/debian trixie/main arm64 libwebp7 arm64 1.4.0-0.1 [267 kB] Get: 97 http://deb.debian.org/debian trixie/main arm64 libtiff6 arm64 4.5.1+git230720-4 [307 kB] Get: 98 http://deb.debian.org/debian trixie/main arm64 libwebpdemux2 arm64 1.4.0-0.1 [110 kB] Get: 99 http://deb.debian.org/debian trixie/main arm64 libwebpmux3 arm64 1.4.0-0.1 [122 kB] Get: 100 http://deb.debian.org/debian trixie/main arm64 libxau6 arm64 1:1.0.9-1+b1 [18.1 kB] Get: 101 http://deb.debian.org/debian trixie/main arm64 libxdmcp6 arm64 1:1.1.2-3+b1 [24.3 kB] Get: 102 http://deb.debian.org/debian trixie/main arm64 libxcb1 arm64 1.15-1 [143 kB] Get: 103 http://deb.debian.org/debian trixie/main arm64 libyaml-0-2 arm64 0.2.5-1+b1 [49.0 kB] Get: 104 http://deb.debian.org/debian trixie/main arm64 python3-packaging all 24.0-1 [45.5 kB] Get: 105 http://deb.debian.org/debian trixie/main arm64 python3-pyproject-hooks all 1.0.0-2 [10.6 kB] Get: 106 http://deb.debian.org/debian trixie/main arm64 python3-toml all 0.10.2-1 [16.2 kB] Get: 107 http://deb.debian.org/debian trixie/main arm64 python3-wheel all 0.43.0-1 [52.5 kB] Get: 108 http://deb.debian.org/debian trixie/main arm64 python3-build all 1.2.1-1 [34.1 kB] Get: 109 http://deb.debian.org/debian trixie/main arm64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 110 http://deb.debian.org/debian trixie/main arm64 pybuild-plugin-pyproject all 6.20240422 [11.1 kB] Get: 111 http://deb.debian.org/debian trixie/main arm64 python3.12 arm64 3.12.3-1 [659 kB] Get: 112 http://deb.debian.org/debian trixie/main arm64 python3-all arm64 3.11.8-1 [1056 B] Get: 113 http://deb.debian.org/debian trixie/main arm64 python3-coverage arm64 7.2.7+dfsg1-1+b1 [170 kB] Get: 114 http://deb.debian.org/debian trixie/main arm64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 115 http://deb.debian.org/debian trixie/main arm64 python3-pil arm64 10.3.0-2 [552 kB] Get: 116 http://deb.debian.org/debian trixie/main arm64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 117 http://deb.debian.org/debian trixie/main arm64 python3-pycryptodome arm64 3.11.0+dfsg1-4 [1010 kB] Get: 118 http://deb.debian.org/debian trixie/main arm64 python3-pytest all 7.4.4-3 [239 kB] Get: 119 http://deb.debian.org/debian trixie/main arm64 python3-pytest-cov all 5.0.0-1 [26.8 kB] Get: 120 http://deb.debian.org/debian trixie/main arm64 python3-pytest-timeout all 2.3.1-1 [21.9 kB] Get: 121 http://deb.debian.org/debian trixie/main arm64 python3-yaml arm64 6.0.1-2 [153 kB] Fetched 43.1 MB in 0s (117 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libjs-jquery. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19746 files and directories currently installed.) Preparing to unpack .../libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Selecting previously unselected package libjs-jquery-hotkeys. Preparing to unpack .../libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Selecting previously unselected package libpython3.11-minimal:arm64. Preparing to unpack .../libpython3.11-minimal_3.11.9-1_arm64.deb ... Unpacking libpython3.11-minimal:arm64 (3.11.9-1) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../libexpat1_2.6.2-1_arm64.deb ... Unpacking libexpat1:arm64 (2.6.2-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.9-1_arm64.deb ... Unpacking python3.11-minimal (3.11.9-1) ... Setting up libpython3.11-minimal:arm64 (3.11.9-1) ... Setting up libexpat1:arm64 (2.6.2-1) ... Setting up python3.11-minimal (3.11.9-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20088 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.8-1_arm64.deb ... Unpacking python3-minimal (3.11.8-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-4_all.deb ... Unpacking tzdata (2024a-4) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-4_all.deb ... Unpacking readline-common (8.2-4) ... Selecting previously unselected package libreadline8t64:arm64. Preparing to unpack .../5-libreadline8t64_8.2-4_arm64.deb ... Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:arm64 (8.2-4) ... Selecting previously unselected package libpython3.11-stdlib:arm64. Preparing to unpack .../6-libpython3.11-stdlib_3.11.9-1_arm64.deb ... Unpacking libpython3.11-stdlib:arm64 (3.11.9-1) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.9-1_arm64.deb ... Unpacking python3.11 (3.11.9-1) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../8-libpython3-stdlib_3.11.8-1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.11.8-1) ... Setting up python3-minimal (3.11.8-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21080 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.8-1_arm64.deb ... Unpacking python3 (3.11.8-1) ... Selecting previously unselected package libpython3.12-minimal:arm64. Preparing to unpack .../001-libpython3.12-minimal_3.12.3-1_arm64.deb ... Unpacking libpython3.12-minimal:arm64 (3.12.3-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../002-python3.12-minimal_3.12.3-1_arm64.deb ... Unpacking python3.12-minimal (3.12.3-1) ... Selecting previously unselected package sgml-base. Preparing to unpack .../003-sgml-base_1.31_all.deb ... Unpacking sgml-base (1.31) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../004-sensible-utils_0.0.22_all.deb ... Unpacking sensible-utils (0.0.22) ... Selecting previously unselected package openssl. Preparing to unpack .../005-openssl_3.2.1-3_arm64.deb ... Unpacking openssl (3.2.1-3) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../006-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../007-libmagic-mgc_1%3a5.45-3_arm64.deb ... Unpacking libmagic-mgc (1:5.45-3) ... Selecting previously unselected package libmagic1t64:arm64. Preparing to unpack .../008-libmagic1t64_1%3a5.45-3_arm64.deb ... Unpacking libmagic1t64:arm64 (1:5.45-3) ... Selecting previously unselected package file. Preparing to unpack .../009-file_1%3a5.45-3_arm64.deb ... Unpacking file (1:5.45-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../010-gettext-base_0.21-14+b1_arm64.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../011-libuchardet0_0.0.8-1+b1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../012-groff-base_1.23.0-4_arm64.deb ... Unpacking groff-base (1.23.0-4) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../013-bsdextrautils_2.40.1-1_arm64.deb ... Unpacking bsdextrautils (2.40.1-1) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../014-libpipeline1_1.5.7-2_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../015-man-db_2.12.1-1_arm64.deb ... Unpacking man-db (2.12.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../016-m4_1.4.19-4_arm64.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../017-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../018-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../019-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../020-autopoint_0.21-14_all.deb ... Unpacking autopoint (0.21-14) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../021-libdebhelper-perl_13.15.3_all.deb ... Unpacking libdebhelper-perl (13.15.3) ... Selecting previously unselected package libtool. Preparing to unpack .../022-libtool_2.4.7-7_all.deb ... Unpacking libtool (2.4.7-7) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../023-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../024-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libparams-util-perl. Preparing to unpack .../025-libparams-util-perl_1.102-3_arm64.deb ... Unpacking libparams-util-perl (1.102-3) ... Selecting previously unselected package libsub-install-perl. Preparing to unpack .../026-libsub-install-perl_0.929-1_all.deb ... Unpacking libsub-install-perl (0.929-1) ... Selecting previously unselected package libdata-optlist-perl. Preparing to unpack .../027-libdata-optlist-perl_0.114-1_all.deb ... Unpacking libdata-optlist-perl (0.114-1) ... Selecting previously unselected package libsub-exporter-perl. Preparing to unpack .../028-libsub-exporter-perl_0.990-1_all.deb ... Unpacking libsub-exporter-perl (0.990-1) ... Selecting previously unselected package libsub-prototype-perl. Preparing to unpack .../029-libsub-prototype-perl_0.03-2+b2_arm64.deb ... Unpacking libsub-prototype-perl (0.03-2+b2) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../030-libsub-override-perl_0.11-1_all.deb ... Unpacking libsub-override-perl (0.11-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../031-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../032-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1t64:arm64. Preparing to unpack .../033-libelf1t64_0.191-1+b1_arm64.deb ... Unpacking libelf1t64:arm64 (0.191-1+b1) ... Selecting previously unselected package dwz. Preparing to unpack .../034-dwz_0.15-1+b1_arm64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:arm64. Preparing to unpack .../035-libicu72_72.1-4+b1_arm64.deb ... Unpacking libicu72:arm64 (72.1-4+b1) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../036-libxml2_2.9.14+dfsg-1.3+b3_arm64.deb ... Unpacking libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../037-gettext_0.21-14+b1_arm64.deb ... Unpacking gettext (0.21-14+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../038-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../039-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../040-debhelper_13.15.3_all.deb ... Unpacking debhelper (13.15.3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../041-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../042-python3-lib2to3_3.12.3-1_all.deb ... Unpacking python3-lib2to3 (3.12.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../043-python3-distutils_3.12.3-1_all.deb ... Unpacking python3-distutils (3.12.3-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../044-python3-setuptools_68.1.2-2_all.deb ... Unpacking python3-setuptools (68.1.2-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../045-dh-python_6.20240422_all.deb ... Unpacking dh-python (6.20240422) ... Selecting previously unselected package xml-core. Preparing to unpack .../046-xml-core_0.19_all.deb ... Unpacking xml-core (0.19) ... Selecting previously unselected package docutils-common. Preparing to unpack .../047-docutils-common_0.20.1+dfsg-3_all.deb ... Unpacking docutils-common (0.20.1+dfsg-3) ... Selecting previously unselected package python3-roman. Preparing to unpack .../048-python3-roman_3.3-3_all.deb ... Unpacking python3-roman (3.3-3) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../049-python3-docutils_0.20.1+dfsg-3_all.deb ... Unpacking python3-docutils (0.20.1+dfsg-3) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../050-python3-certifi_2023.11.17-1_all.deb ... Unpacking python3-certifi (2023.11.17-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../051-python3-charset-normalizer_3.3.2-1_all.deb ... Unpacking python3-charset-normalizer (3.3.2-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../052-python3-idna_3.6-2_all.deb ... Unpacking python3-idna (3.6-2) ... Selecting previously unselected package python3-six. Preparing to unpack .../053-python3-six_1.16.0-6_all.deb ... Unpacking python3-six (1.16.0-6) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../054-python3-urllib3_1.26.18-2_all.deb ... Unpacking python3-urllib3 (1.26.18-2) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../055-python3-chardet_5.2.0+dfsg-1_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../056-python3-requests_2.31.0+dfsg-2_all.deb ... Unpacking python3-requests (2.31.0+dfsg-2) ... Selecting previously unselected package python3-tomli-w. Preparing to unpack .../057-python3-tomli-w_1.0.0-2_all.deb ... Unpacking python3-tomli-w (1.0.0-2) ... Selecting previously unselected package flit. Preparing to unpack .../058-flit_3.9.0-2_all.deb ... Unpacking flit (3.9.0-2) ... Selecting previously unselected package libbrotli1:arm64. Preparing to unpack .../059-libbrotli1_1.1.0-2+b3_arm64.deb ... Unpacking libbrotli1:arm64 (1.1.0-2+b3) ... Selecting previously unselected package libbsd0:arm64. Preparing to unpack .../060-libbsd0_0.12.2-1_arm64.deb ... Unpacking libbsd0:arm64 (0.12.2-1) ... Selecting previously unselected package libdeflate0:arm64. Preparing to unpack .../061-libdeflate0_1.20-1_arm64.deb ... Unpacking libdeflate0:arm64 (1.20-1) ... Selecting previously unselected package libpng16-16t64:arm64. Preparing to unpack .../062-libpng16-16t64_1.6.43-5_arm64.deb ... Unpacking libpng16-16t64:arm64 (1.6.43-5) ... Selecting previously unselected package libfreetype6:arm64. Preparing to unpack .../063-libfreetype6_2.13.2+dfsg-1+b4_arm64.deb ... Unpacking libfreetype6:arm64 (2.13.2+dfsg-1+b4) ... Selecting previously unselected package libfribidi0:arm64. Preparing to unpack .../064-libfribidi0_1.0.13-3+b1_arm64.deb ... Unpacking libfribidi0:arm64 (1.0.13-3+b1) ... Selecting previously unselected package libglib2.0-0t64:arm64. Preparing to unpack .../065-libglib2.0-0t64_2.80.2-1_arm64.deb ... Unpacking libglib2.0-0t64:arm64 (2.80.2-1) ... Selecting previously unselected package libgraphite2-3:arm64. Preparing to unpack .../066-libgraphite2-3_1.3.14-2_arm64.deb ... Unpacking libgraphite2-3:arm64 (1.3.14-2) ... Selecting previously unselected package libharfbuzz0b:arm64. Preparing to unpack .../067-libharfbuzz0b_8.3.0-2+b1_arm64.deb ... Unpacking libharfbuzz0b:arm64 (8.3.0-2+b1) ... Selecting previously unselected package libimagequant0:arm64. Preparing to unpack .../068-libimagequant0_2.18.0-1+b1_arm64.deb ... Unpacking libimagequant0:arm64 (2.18.0-1+b1) ... Selecting previously unselected package libjbig0:arm64. Preparing to unpack .../069-libjbig0_2.1-6.1+b1_arm64.deb ... Unpacking libjbig0:arm64 (2.1-6.1+b1) ... Selecting previously unselected package libjpeg62-turbo:arm64. Preparing to unpack .../070-libjpeg62-turbo_1%3a2.1.5-3_arm64.deb ... Unpacking libjpeg62-turbo:arm64 (1:2.1.5-3) ... Selecting previously unselected package libjs-jquery-isonscreen. Preparing to unpack .../071-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... Selecting previously unselected package libjs-jquery-metadata. Preparing to unpack .../072-libjs-jquery-metadata_12-4_all.deb ... Unpacking libjs-jquery-metadata (12-4) ... Selecting previously unselected package libjs-jquery-tablesorter. Preparing to unpack .../073-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-3_all.deb ... Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-3) ... Selecting previously unselected package libjs-jquery-throttle-debounce. Preparing to unpack .../074-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Selecting previously unselected package liblcms2-2:arm64. Preparing to unpack .../075-liblcms2-2_2.14-2+b1_arm64.deb ... Unpacking liblcms2-2:arm64 (2.14-2+b1) ... Selecting previously unselected package liblerc4:arm64. Preparing to unpack .../076-liblerc4_4.0.0+ds-4+b1_arm64.deb ... Unpacking liblerc4:arm64 (4.0.0+ds-4+b1) ... Selecting previously unselected package libopenjp2-7:arm64. Preparing to unpack .../077-libopenjp2-7_2.5.0-2+b3_arm64.deb ... Unpacking libopenjp2-7:arm64 (2.5.0-2+b3) ... Selecting previously unselected package libpython3.12-stdlib:arm64. Preparing to unpack .../078-libpython3.12-stdlib_3.12.3-1_arm64.deb ... Unpacking libpython3.12-stdlib:arm64 (3.12.3-1) ... Selecting previously unselected package libraqm0:arm64. Preparing to unpack .../079-libraqm0_0.10.1-1+b1_arm64.deb ... Unpacking libraqm0:arm64 (0.10.1-1+b1) ... Selecting previously unselected package libsharpyuv0:arm64. Preparing to unpack .../080-libsharpyuv0_1.4.0-0.1_arm64.deb ... Unpacking libsharpyuv0:arm64 (1.4.0-0.1) ... Selecting previously unselected package libwebp7:arm64. Preparing to unpack .../081-libwebp7_1.4.0-0.1_arm64.deb ... Unpacking libwebp7:arm64 (1.4.0-0.1) ... Selecting previously unselected package libtiff6:arm64. Preparing to unpack .../082-libtiff6_4.5.1+git230720-4_arm64.deb ... Unpacking libtiff6:arm64 (4.5.1+git230720-4) ... Selecting previously unselected package libwebpdemux2:arm64. Preparing to unpack .../083-libwebpdemux2_1.4.0-0.1_arm64.deb ... Unpacking libwebpdemux2:arm64 (1.4.0-0.1) ... Selecting previously unselected package libwebpmux3:arm64. Preparing to unpack .../084-libwebpmux3_1.4.0-0.1_arm64.deb ... Unpacking libwebpmux3:arm64 (1.4.0-0.1) ... Selecting previously unselected package libxau6:arm64. Preparing to unpack .../085-libxau6_1%3a1.0.9-1+b1_arm64.deb ... Unpacking libxau6:arm64 (1:1.0.9-1+b1) ... Selecting previously unselected package libxdmcp6:arm64. Preparing to unpack .../086-libxdmcp6_1%3a1.1.2-3+b1_arm64.deb ... Unpacking libxdmcp6:arm64 (1:1.1.2-3+b1) ... Selecting previously unselected package libxcb1:arm64. Preparing to unpack .../087-libxcb1_1.15-1_arm64.deb ... Unpacking libxcb1:arm64 (1.15-1) ... Selecting previously unselected package libyaml-0-2:arm64. Preparing to unpack .../088-libyaml-0-2_0.2.5-1+b1_arm64.deb ... Unpacking libyaml-0-2:arm64 (0.2.5-1+b1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../089-python3-packaging_24.0-1_all.deb ... Unpacking python3-packaging (24.0-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../090-python3-pyproject-hooks_1.0.0-2_all.deb ... Unpacking python3-pyproject-hooks (1.0.0-2) ... Selecting previously unselected package python3-toml. Preparing to unpack .../091-python3-toml_0.10.2-1_all.deb ... Unpacking python3-toml (0.10.2-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../092-python3-wheel_0.43.0-1_all.deb ... Unpacking python3-wheel (0.43.0-1) ... Selecting previously unselected package python3-build. Preparing to unpack .../093-python3-build_1.2.1-1_all.deb ... Unpacking python3-build (1.2.1-1) ... Selecting previously unselected package python3-installer. Preparing to unpack .../094-python3-installer_0.7.0+dfsg1-3_all.deb ... Unpacking python3-installer (0.7.0+dfsg1-3) ... Selecting previously unselected package pybuild-plugin-pyproject. Preparing to unpack .../095-pybuild-plugin-pyproject_6.20240422_all.deb ... Unpacking pybuild-plugin-pyproject (6.20240422) ... Selecting previously unselected package python3.12. Preparing to unpack .../096-python3.12_3.12.3-1_arm64.deb ... Unpacking python3.12 (3.12.3-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../097-python3-all_3.11.8-1_arm64.deb ... Unpacking python3-all (3.11.8-1) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../098-python3-coverage_7.2.7+dfsg1-1+b1_arm64.deb ... Unpacking python3-coverage (7.2.7+dfsg1-1+b1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../099-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-pil:arm64. Preparing to unpack .../100-python3-pil_10.3.0-2_arm64.deb ... Unpacking python3-pil:arm64 (10.3.0-2) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../101-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pycryptodome. Preparing to unpack .../102-python3-pycryptodome_3.11.0+dfsg1-4_arm64.deb ... Unpacking python3-pycryptodome (3.11.0+dfsg1-4) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../103-python3-pytest_7.4.4-3_all.deb ... Unpacking python3-pytest (7.4.4-3) ... Selecting previously unselected package python3-pytest-cov. Preparing to unpack .../104-python3-pytest-cov_5.0.0-1_all.deb ... Unpacking python3-pytest-cov (5.0.0-1) ... Selecting previously unselected package python3-pytest-timeout. Preparing to unpack .../105-python3-pytest-timeout_2.3.1-1_all.deb ... Unpacking python3-pytest-timeout (2.3.1-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../106-python3-yaml_6.0.1-2_arm64.deb ... Unpacking python3-yaml (6.0.1-2) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:arm64 (1.5.7-2) ... Setting up libgraphite2-3:arm64 (1.3.14-2) ... Setting up liblcms2-2:arm64 (2.14-2+b1) ... Setting up libsharpyuv0:arm64 (1.4.0-0.1) ... Setting up libxau6:arm64 (1:1.0.9-1+b1) ... Setting up libicu72:arm64 (72.1-4+b1) ... Setting up liblerc4:arm64 (4.0.0+ds-4+b1) ... Setting up bsdextrautils (2.40.1-1) ... Setting up libmagic-mgc (1:5.45-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:arm64 (0.2.5-1+b1) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libbrotli1:arm64 (1.1.0-2+b3) ... Setting up libmagic1t64:arm64 (1:5.45-3) ... Setting up libpython3.12-minimal:arm64 (3.12.3-1) ... Setting up libdeflate0:arm64 (1.20-1) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-3) ... Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Setting up libjbig0:arm64 (2.1-6.1+b1) ... Setting up libsub-install-perl (0.929-1) ... Setting up libelf1t64:arm64 (0.191-1+b1) ... Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' Local time is now: Mon Jun 23 15:19:28 UTC 2025. Universal Time is now: Mon Jun 23 15:19:28 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up libglib2.0-0t64:arm64 (2.80.2-1) ... No schema files found: doing nothing. Setting up libjpeg62-turbo:arm64 (1:2.1.5-3) ... Setting up libfribidi0:arm64 (1.0.13-3+b1) ... Setting up libimagequant0:arm64 (2.18.0-1+b1) ... Setting up libpng16-16t64:arm64 (1.6.43-5) ... Setting up autopoint (0.21-14) ... Setting up libparams-util-perl (1.102-3) ... Setting up autoconf (2.71-3) ... Setting up libwebp7:arm64 (1.4.0-0.1) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.22) ... Setting up libtiff6:arm64 (4.5.1+git230720-4) ... Setting up libuchardet0:arm64 (0.0.8-1+b1) ... Setting up libopenjp2-7:arm64 (2.5.0-2+b3) ... Setting up netbase (6.4) ... Setting up sgml-base (1.31) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Setting up openssl (3.2.1-3) ... Setting up libwebpmux3:arm64 (1.4.0-0.1) ... Setting up libbsd0:arm64 (0.12.2-1) ... Setting up readline-common (8.2-4) ... Setting up libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up python3.12-minimal (3.12.3-1) ... Setting up libxdmcp6:arm64 (1:1.1.2-3+b1) ... Setting up libxcb1:arm64 (1.15-1) ... Setting up gettext (0.21-14+b1) ... Setting up libtool (2.4.7-7) ... Setting up libwebpdemux2:arm64 (1.4.0-0.1) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libfreetype6:arm64 (2.13.2+dfsg-1+b4) ... Setting up libjs-jquery-metadata (12-4) ... Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... Setting up libdata-optlist-perl (0.114-1) ... Setting up libreadline8t64:arm64 (8.2-4) ... Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-3) ... Setting up groff-base (1.23.0-4) ... Setting up xml-core (0.19) ... Setting up libharfbuzz0b:arm64 (8.3.0-2+b1) ... Setting up libsub-exporter-perl (0.990-1) ... Setting up libpython3.12-stdlib:arm64 (3.12.3-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:arm64 (3.11.9-1) ... Setting up python3.12 (3.12.3-1) ... Setting up libsub-prototype-perl (0.03-2+b2) ... Setting up man-db (2.12.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libraqm0:arm64 (0.10.1-1+b1) ... Setting up libsub-override-perl (0.11-1) ... Setting up libpython3-stdlib:arm64 (3.11.8-1) ... Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up python3.11 (3.11.9-1) ... Setting up python3 (3.11.8-1) ... Setting up python3-wheel (0.43.0-1) ... Setting up python3-six (1.16.0-6) ... Setting up python3-pil:arm64 (10.3.0-2) ... Setting up python3-roman (3.3-3) ... Setting up python3-packaging (24.0-1) ... Setting up python3-pyproject-hooks (1.0.0-2) ... Setting up python3-certifi (2023.11.17-1) ... Setting up python3-idna (3.6-2) ... Setting up python3-toml (0.10.2-1) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-urllib3 (1.26.18-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up python3-build (1.2.1-1) ... Setting up python3-lib2to3 (3.12.3-1) ... Setting up python3-tomli-w (1.0.0-2) ... Setting up python3-pkg-resources (68.1.2-2) ... Setting up python3-distutils (3.12.3-1) ... python3.12: can't get files for byte-compilation Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-setuptools (68.1.2-2) ... Setting up python3-charset-normalizer (3.3.2-1) ... Setting up python3-pytest (7.4.4-3) ... Setting up python3-pycryptodome (3.11.0+dfsg1-4) ... Setting up python3-all (3.11.8-1) ... Setting up python3-coverage (7.2.7+dfsg1-1+b1) ... Setting up python3-yaml (6.0.1-2) ... Setting up debhelper (13.15.3) ... Setting up python3-pytest-cov (5.0.0-1) ... Setting up python3-chardet (5.2.0+dfsg-1) ... Setting up python3-requests (2.31.0+dfsg-2) ... Setting up dh-python (6.20240422) ... Setting up python3-pytest-timeout (2.3.1-1) ... Setting up pybuild-plugin-pyproject (6.20240422) ... Processing triggers for libc-bin (2.38-11) ... Processing triggers for sgml-base (1.31) ... Setting up docutils-common (0.20.1+dfsg-3) ... Processing triggers for sgml-base (1.31) ... Setting up python3-docutils (0.20.1+dfsg-3) ... Setting up flit (3.9.0-2) ... Processing triggers for ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/pypdf-4.2.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../pypdf_4.2.0-1_source.changes dpkg-buildpackage: info: source package pypdf dpkg-buildpackage: info: source version 4.2.0-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Scott Kitterman dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.12 * Building wheel... Successfully built pypdf-4.2.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" module I: pybuild base:311: python3.11 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.11 * Building wheel... Successfully built pypdf-4.2.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with "installer" module dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.12/build; python3.12 -m pytest --cov --cov-report term-missing -vv -m 'not samples and not enable_socket' ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.5.0 -- /usr/bin/python3.12 cachedir: .pytest_cache rootdir: /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.12/build configfile: pyproject.toml testpaths: tests plugins: timeout-2.3.1, cov-5.0.0 collecting ... collected 860 items / 321 deselected / 539 selected tests/test_annotations.py::test_text_annotation PASSED [ 0%] tests/test_annotations.py::test_free_text_annotation PASSED [ 0%] tests/test_constants.py::test_slash_prefix PASSED [ 0%] tests/test_constants.py::test_user_access_permissions__dict_handling PASSED [ 0%] tests/test_constants.py::test_user_access_permissions__all PASSED [ 0%] tests/test_encryption.py::test_encryption[unencrypted.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-empty-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r3-empty-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-user-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-owner-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r3-user-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-user-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-owner-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-aes-user-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-empty-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-user-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-owner-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-empty-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-user-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-owner-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_pdf_with_both_passwords[r6-both-passwords.pdf-foo-bar] PASSED [ 3%] tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password0] PASSED [ 4%] tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password1] PASSED [ 4%] tests/test_encryption.py::test_merge_encrypted_pdfs[names0] PASSED [ 4%] tests/test_encryption.py::test_encrypt_decrypt_with_cipher_class[CryptRC4] PASSED [ 4%] tests/test_encryption.py::test_attempt_decrypt_unencrypted_pdf PASSED [ 4%] tests/test_encryption.py::test_alg_v5_generate_values PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[RC4-40-False] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[RC4-128-False] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-128-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-256-R5-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-256-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[ABCD-False] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[1] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[2] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[3] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[4] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[5] PASSED [ 7%] tests/test_encryption.py::test_pdf_encrypt_multiple[10] PASSED [ 7%] tests/test_encryption.py::test_aes_decrypt_corrupted_data PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyz] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-ABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-0123456789] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1-0123456789abcdefABCDEF] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1-!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1- \t\n\r\x0b\x0c] PASSED [ 8%] tests/test_filters.py::test_flatedecode_unsupported_predictor PASSED [ 8%] tests/test_filters.py::test_flate_decode_decompress_with_array_params[params0] PASSED [ 9%] tests/test_filters.py::test_flate_decode_decompress_with_array_params[params1] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[empty] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_lowercase] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_uppercase] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_letters] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[digits] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[digits_whitespace] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[hexdigits] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[whitespace] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_missing_eod PASSED [ 10%] tests/test_filters.py::test_ascii85decode_with_overflow XFAIL [ 11%] tests/test_filters.py::test_ascii85decode_five_zero_bytes PASSED [ 11%] tests/test_filters.py::test_ccitparameters PASSED [ 11%] tests/test_filters.py::test_ccitt_get_parameters[None-0] PASSED [ 11%] tests/test_filters.py::test_ccitt_get_parameters[parameters1-1] PASSED [ 11%] tests/test_filters.py::test_ccitt_fax_decode PASSED [ 12%] tests/test_generic.py::test_float_object_exception PASSED [ 12%] tests/test_generic.py::test_number_object_exception PASSED [ 12%] tests/test_generic.py::test_number_object_no_exception PASSED [ 12%] tests/test_generic.py::test_create_string_object_exception PASSED [ 12%] tests/test_generic.py::test_boolean_object[true-true-4] PASSED [ 12%] tests/test_generic.py::test_boolean_object[false-false-5] PASSED [ 13%] tests/test_generic.py::test_boolean_object_write PASSED [ 13%] tests/test_generic.py::test_boolean_eq PASSED [ 13%] tests/test_generic.py::test_boolean_object_exception PASSED [ 13%] tests/test_generic.py::test_array_object_exception PASSED [ 13%] tests/test_generic.py::test_null_object_exception PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[False] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo bar] PASSED [ 15%] tests/test_generic.py::test_read_hex_string_from_stream PASSED [ 15%] tests/test_generic.py::test_read_hex_string_from_stream_exception PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_exception PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_not_in_escapedict_no_digit PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_multichar_eol PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_multichar_eol2 PASSED [ 16%] tests/test_generic.py::test_read_string_from_stream_excape_digit PASSED [ 16%] tests/test_generic.py::test_read_string_from_stream_excape_digit2 PASSED [ 16%] tests/test_generic.py::test_name_object PASSED [ 16%] tests/test_generic.py::test_destination_fit_r PASSED [ 16%] tests/test_generic.py::test_destination_fit_v PASSED [ 17%] tests/test_generic.py::test_outline_item_write_to_stream PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_keyerror PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_returns_bytes[] PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_returns_bytes[data] PASSED [ 17%] tests/test_generic.py::test_read_object_comment_exception PASSED [ 17%] tests/test_generic.py::test_read_object_empty PASSED [ 18%] tests/test_generic.py::test_read_object_invalid PASSED [ 18%] tests/test_generic.py::test_read_object_comment PASSED [ 18%] tests/test_generic.py::test_bytestringobject PASSED [ 18%] tests/test_generic.py::test_dictionaryobject_key_is_no_pdfobject PASSED [ 18%] tests/test_generic.py::test_dictionaryobject_xmp_meta PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_value_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_key_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_value_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_value PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_read_from_stream PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_broken PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_unexpected_end PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_newline PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[True] PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[False] PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-6-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-10-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-4-True] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-6-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-10-False] PASSED [ 21%] tests/test_generic.py::test_rectangleobject PASSED [ 22%] tests/test_generic.py::test_textstringobject_exc PASSED [ 22%] tests/test_generic.py::test_textstringobject_autodetect_utf16 PASSED [ 22%] tests/test_generic.py::test_remove_child_not_in_tree PASSED [ 22%] tests/test_generic.py::test_remove_child_not_in_that_tree PASSED [ 22%] tests/test_generic.py::test_remove_child_not_found_in_tree PASSED [ 23%] tests/test_generic.py::test_remove_child_found_in_tree PASSED [ 23%] tests/test_generic.py::test_remove_child_in_tree PASSED [ 23%] tests/test_generic.py::test_annotation_builder_free_text PASSED [ 23%] tests/test_generic.py::test_annotation_builder_polygon PASSED [ 23%] tests/test_generic.py::test_annotation_builder_polyline PASSED [ 23%] tests/test_generic.py::test_annotation_builder_line PASSED [ 24%] tests/test_generic.py::test_annotation_builder_square PASSED [ 24%] tests/test_generic.py::test_annotation_builder_highlight PASSED [ 24%] tests/test_generic.py::test_annotation_builder_circle PASSED [ 24%] tests/test_generic.py::test_annotation_builder_link PASSED [ 24%] tests/test_generic.py::test_annotation_builder_text PASSED [ 25%] tests/test_generic.py::test_annotation_builder_popup PASSED [ 25%] tests/test_generic.py::test_checkboxradiobuttonattributes_opt PASSED [ 25%] tests/test_generic.py::test_name_object_invalid_decode PASSED [ 25%] tests/test_generic.py::test_indirect_object_invalid_read PASSED [ 25%] tests/test_generic.py::test_create_string_object_utf16be_bom PASSED [ 25%] tests/test_generic.py::test_create_string_object_utf16le_bom PASSED [ 26%] tests/test_generic.py::test_create_string_object_force PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.000000-0.0] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.00] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[1.0-10] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.123000-0.123] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0.000123000-0.000123] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.01] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0-0.0] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[1-1] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[1.0-11] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[1.01-1.01] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[1.010-1.01] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[0000.0000-0.0] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[0.10101010-0.1010101] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[50000000000-50000000000] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123-99900000000000000000] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123.456000-99900000000000000000] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123-0.00000000000000000000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000123-0.00000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123000-0.00000000000000000000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[-4.6--4.6] PASSED [ 30%] tests/test_generic.py::test_cloning PASSED [ 30%] tests/test_generic.py::test_encodedstream_set_data PASSED [ 30%] tests/test_generic.py::test_array_operators PASSED [ 30%] tests/test_javascript.py::test_add_js PASSED [ 30%] tests/test_javascript.py::test_added_js PASSED [ 30%] tests/test_merger.py::test_merger_operations_by_traditional_usage PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_traditional_usage_with_writer PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_semi_traditional_usage PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_semi_traditional_usage_with_writer PASSED [ 31%] tests/test_merger.py::test_merger_operation_by_new_usage PASSED [ 31%] tests/test_merger.py::test_merger_operation_by_new_usage_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_page_exception PASSED [ 32%] tests/test_merger.py::test_merge_page_exception_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_page_tuple PASSED [ 32%] tests/test_merger.py::test_merge_page_tuple_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_write_closed_fh PASSED [ 33%] tests/test_merger.py::test_merge_write_closed_fh_with_writer PASSED [ 33%] tests/test_merger.py::test_deprecate_pdfmerger PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[175-680-844] PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[45-994-994] PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[-80-888-742] PASSED [ 33%] tests/test_page.py::test_transformation_equivalence PASSED [ 34%] tests/test_page.py::test_transformation_equivalence2 PASSED [ 34%] tests/test_page.py::test_get_user_unit_property PASSED [ 34%] tests/test_page.py::test_page_transformations PASSED [ 34%] tests/test_page.py::test_compress_content_streams[pdf_path0-None] PASSED [ 34%] tests/test_page.py::test_compress_content_streams[pdf_path1-None] PASSED [ 35%] tests/test_page.py::test_compress_content_streams[pdf_path2-None] PASSED [ 35%] tests/test_page.py::test_compress_content_streams[pdf_path3-openpassword] PASSED [ 35%] tests/test_page.py::test_page_properties PASSED [ 35%] tests/test_page.py::test_page_rotation PASSED [ 35%] tests/test_page.py::test_page_indirect_rotation PASSED [ 35%] tests/test_page.py::test_page_scale PASSED [ 36%] tests/test_page.py::test_add_transformation_on_page_without_contents PASSED [ 36%] tests/test_page.py::test_extract_text_visitor_callbacks PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path0-None-embedded0-unembedded0] PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path1-None-embedded1-unembedded1] PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path2-openpassword-embedded2-unembedded2] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path3-None-embedded3-unembedded3] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path4-None-embedded4-unembedded4] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path5-None-embedded5-unembedded5] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path6-None-embedded6-unembedded6] PASSED [ 37%] tests/test_page.py::test_annotation_getter PASSED [ 38%] tests/test_page.py::test_annotation_setter PASSED [ 38%] tests/test_page.py::test_merge_page_reproducible_with_proc_set PASSED [ 38%] tests/test_page.py::test_merge_resources[no resources] PASSED [ 38%] tests/test_page.py::test_merge_resources[no overlap] PASSED [ 38%] tests/test_page.py::test_merge_resources[overlap, matching values] PASSED [ 38%] tests/test_page.py::test_merge_resources[overlap, different values] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, different values] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, matching value in chain] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, different value] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, matching value] PASSED [ 39%] tests/test_page.py::test_merge_page_resources_smoke_test PASSED [ 40%] tests/test_page.py::test_pages_printing PASSED [ 40%] tests/test_page.py::test_pdf_pages_missing_type PASSED [ 40%] tests/test_page.py::test_merge_with_no_resources PASSED [ 40%] tests/test_page.py::test_get_contents_from_nullobject PASSED [ 40%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[1-I] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[2-II] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[3-III] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[4-IV] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[5-V] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[6-VI] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[7-VII] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[8-VIII] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[9-IX] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[10-X] PASSED [ 42%] tests/test_page_labels.py::test_number2lowercase_roman_numeral PASSED [ 42%] tests/test_page_labels.py::test_number2lowercase_letter[1-a] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[2-b] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[3-c] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[25-y] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[26-z] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[27-aa] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[28-ab] PASSED [ 44%] tests/test_page_labels.py::test_number2uppercase_letter PASSED [ 44%] tests/test_page_labels.py::test_get_label_from_nums__empty_nums_list PASSED [ 44%] tests/test_page_labels.py::test_index2label__empty_kids_list PASSED [ 44%] tests/test_pagerange.py::test_equality PASSED [ 44%] tests/test_pagerange.py::test_str[page_range0-0:5] PASSED [ 45%] tests/test_pagerange.py::test_str[page_range1-0:5:2] PASSED [ 45%] tests/test_pagerange.py::test_str[-1--1:] PASSED [ 45%] tests/test_pagerange.py::test_str[0-0] PASSED [ 45%] tests/test_pagerange.py::test_repr[page_range0-PageRange('0:5')] PASSED [ 45%] tests/test_pagerange.py::test_repr[page_range1-PageRange('0:5:2')] PASSED [ 46%] tests/test_pagerange.py::test_equality_other_objectc PASSED [ 46%] tests/test_pagerange.py::test_idempotency PASSED [ 46%] tests/test_pagerange.py::test_str_init[42-expected0] PASSED [ 46%] tests/test_pagerange.py::test_str_init[1:2-expected1] PASSED [ 46%] tests/test_pagerange.py::test_str_init_error PASSED [ 46%] tests/test_pagerange.py::test_parse_filename_page_ranges[params0-expected0] PASSED [ 47%] tests/test_pagerange.py::test_parse_filename_page_ranges[params1-expected1] PASSED [ 47%] tests/test_pagerange.py::test_parse_filename_page_ranges_err PASSED [ 47%] tests/test_pagerange.py::test_addition[a0-b0-expected0] PASSED [ 47%] tests/test_pagerange.py::test_addition[a1-b1-expected1] PASSED [ 47%] tests/test_pagerange.py::test_addition[a2-b2-expected2] PASSED [ 48%] tests/test_pagerange.py::test_addition_gap[a0-b0] PASSED [ 48%] tests/test_pagerange.py::test_addition_gap[a1-b1] PASSED [ 48%] tests/test_pagerange.py::test_addition_non_page_range PASSED [ 48%] tests/test_pagerange.py::test_addition_stride PASSED [ 48%] tests/test_papersizes.py::test_din_a0_paper_size PASSED [ 48%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions0] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions1] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions2] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions3] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions4] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions5] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions6] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions7] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions8] PASSED [ 50%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a0-dimensions_b0] PASSED [ 50%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a1-dimensions_b1] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a2-dimensions_b2] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a3-dimensions_b3] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a4-dimensions_b4] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a5-dimensions_b5] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a6-dimensions_b6] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a7-dimensions_b7] PASSED [ 52%] tests/test_protocols.py::test_pdfobjectprotocol PASSED [ 52%] tests/test_reader.py::test_get_num_pages[selenium-pypdf-issue-177.pdf-1] PASSED [ 52%] tests/test_reader.py::test_get_num_pages[pdflatex-outline.pdf-4] PASSED [ 52%] tests/test_reader.py::test_read_metadata[crazyones] PASSED [ 52%] tests/test_reader.py::test_read_metadata[metadata] PASSED [ 53%] tests/test_reader.py::test_iss1943 PASSED [ 53%] tests/test_reader.py::test_get_annotations[src0] PASSED [ 53%] tests/test_reader.py::test_get_annotations[src1] PASSED [ 53%] tests/test_reader.py::test_get_attachments[src0-1] PASSED [ 53%] tests/test_reader.py::test_get_attachments[src1-0] PASSED [ 53%] tests/test_reader.py::test_get_outline[src0-9] PASSED [ 54%] tests/test_reader.py::test_get_outline[src1-0] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[True-False--1-False-warning_msgs0] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[True-True--1-True-] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[False-False--1-False-warning_msgs2] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[False-True--1-False-warning_msgs3] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[True-False-0-True-] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[True-True-0-True-] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[False-False-0-False-warning_msgs6] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[False-True-0-False-warning_msgs7] PASSED [ 55%] tests/test_reader.py::test_issue297 PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False0] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False1] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True0] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True1] PASSED [ 56%] tests/test_reader.py::test_get_form[form.pdf-expected0-expected_get_fields0] PASSED [ 56%] tests/test_reader.py::test_get_form[form_acrobatReader.pdf-expected1-expected_get_fields1] PASSED [ 57%] tests/test_reader.py::test_get_form[form_evince.pdf-expected2-expected_get_fields2] PASSED [ 57%] tests/test_reader.py::test_get_form[crazyones.pdf-expected3-None] PASSED [ 57%] tests/test_reader.py::test_get_page_number[form.pdf-0] PASSED [ 57%] tests/test_reader.py::test_get_page_number[pdflatex-outline.pdf-2] PASSED [ 57%] tests/test_reader.py::test_get_page_layout[form.pdf-None] PASSED [ 58%] tests/test_reader.py::test_get_page_layout[AutoCad_Simple.pdf-/SinglePage] PASSED [ 58%] tests/test_reader.py::test_get_page_mode[form.pdf-/UseNone] PASSED [ 58%] tests/test_reader.py::test_get_page_mode[crazyones.pdf-None] PASSED [ 58%] tests/test_reader.py::test_read_empty PASSED [ 58%] tests/test_reader.py::test_read_malformed_header PASSED [ 58%] tests/test_reader.py::test_read_malformed_body PASSED [ 59%] tests/test_reader.py::test_read_prev_0_trailer PASSED [ 59%] tests/test_reader.py::test_read_missing_startxref PASSED [ 59%] tests/test_reader.py::test_read_unknown_zero_pages PASSED [ 59%] tests/test_reader.py::test_read_encrypted_without_decryption PASSED [ 59%] tests/test_reader.py::test_get_destination_page_number PASSED [ 60%] tests/test_reader.py::test_do_not_get_stuck_on_large_files_without_start_xref PASSED [ 60%] tests/test_reader.py::test_reader_properties PASSED [ 60%] tests/test_reader.py::test_issue604[True] PASSED [ 60%] tests/test_reader.py::test_issue604[False] PASSED [ 60%] tests/test_reader.py::test_decode_permissions PASSED [ 61%] tests/test_reader.py::test_user_access_permissions PASSED [ 61%] tests/test_reader.py::test_pages_attribute PASSED [ 61%] tests/test_reader.py::test_convert_to_int PASSED [ 61%] tests/test_reader.py::test_convert_to_int_error PASSED [ 61%] tests/test_reader.py::test_get_object PASSED [ 61%] tests/test_reader.py::test_extract_text_hello_world PASSED [ 62%] tests/test_reader.py::test_read_path PASSED [ 62%] tests/test_reader.py::test_read_not_binary_mode PASSED [ 62%] tests/test_reader.py::test_form_topname_with_and_without_acroform PASSED [ 62%] tests/test_reader.py::test_xfa[src0] PASSED [ 62%] tests/test_reader.py::test_xfa[src1] PASSED [ 63%] tests/test_reader.py::test_header[src0-%PDF-1.5] PASSED [ 63%] tests/test_reader.py::test_header[src1-%PDF-1.5] PASSED [ 63%] tests/test_reader.py::test_outline_missing_title PASSED [ 63%] tests/test_reader.py::test_outline_with_invalid_destinations PASSED [ 63%] tests/test_reader.py::test_wrong_password_error PASSED [ 64%] tests/test_reader.py::test_get_page_number_by_indirect PASSED [ 64%] tests/test_reader.py::test_broken_file_header PASSED [ 64%] tests/test_text_extraction.py::test_visitor_text_matrices[inkscape-abc.pdf-constraints0] PASSED [ 64%] tests/test_text_extraction.py::test_layout_mode_font_class_to_dict PASSED [ 64%] tests/test_text_extraction.py::test_layout_mode_uncommon_operators PASSED [ 64%] tests/test_utils.py::test_skip_over_whitespace[stream0-False] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream1-False] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream2-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream3-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream4-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream5-True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[foo-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ a-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ a\n b-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[-True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [ 67%] tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [ 67%] tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [ 67%] tests/test_utils.py::test_read_until_whitespace PASSED [ 67%] tests/test_utils.py::test_skip_over_comment[stream0-] PASSED [ 67%] tests/test_utils.py::test_skip_over_comment[stream1-] PASSED [ 68%] tests/test_utils.py::test_skip_over_comment[stream2- ] PASSED [ 68%] tests/test_utils.py::test_skip_over_comment[stream3-bar] PASSED [ 68%] tests/test_utils.py::test_read_until_regex_premature_ending_name PASSED [ 68%] tests/test_utils.py::test_matrix_multiply[a0-b0-expected0] PASSED [ 68%] tests/test_utils.py::test_matrix_multiply[a1-b1-expected1] PASSED [ 69%] tests/test_utils.py::test_matrix_multiply[a2-b2-expected2] PASSED [ 69%] tests/test_utils.py::test_mark_location PASSED [ 69%] tests/test_utils.py::test_b[foo-foo] PASSED [ 69%] tests/test_utils.py::test_b[\U0001f600-\xf0\x9f\x98\x80] PASSED [ 69%] tests/test_utils.py::test_b[\u2030-\xe2\x80\xb0] PASSED [ 69%] tests/test_utils.py::test_b[\u25b7-\xe2\x96\xb7] PASSED [ 70%] tests/test_utils.py::test_b[\u4e16-\xe4\xb8\x96] PASSED [ 70%] tests/test_utils.py::test_b[\U0001f600\U0001f603-\xf0\x9f\x98\x80\xf0\x9f\x98\x83] PASSED [ 70%] tests/test_utils.py::test_deprecate_no_replacement PASSED [ 70%] tests/test_utils.py::test_paeth_predictor[0-0-0-0] PASSED [ 70%] tests/test_utils.py::test_paeth_predictor[1-0-0-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[0-1-0-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[0-0-1-0] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[1-2-3-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[2-1-3-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[1-3-2-2] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[3-1-2-2] PASSED [ 72%] tests/test_utils.py::test_paeth_predictor[3-2-1-3] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-1-0--1] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-1-1-a-0] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-2-1-b-1] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-2-2-ab-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-1-c-2] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-2-bc-1] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-3-abc-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[-0-1-None-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[a-0-1-None-0] PASSED [ 74%] tests/test_utils.py::test_read_block_backwards[abc-0-10-None-0] PASSED [ 74%] tests/test_utils.py::test_read_block_backwards_at_start PASSED [ 74%] tests/test_utils.py::test_read_previous_line[0] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[1] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[2] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[3] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[4] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[5] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[6] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[7] PASSED [ 75%] tests/test_utils.py::test_read_previous_line2 PASSED [ 76%] tests/test_utils.py::test_get_max_pdf_version_header PASSED [ 76%] tests/test_utils.py::test_read_block_backwards_exception PASSED [ 76%] tests/test_utils.py::test_deprecate_with_replacement PASSED [ 76%] tests/test_utils.py::test_deprecation_no_replacement PASSED [ 76%] tests/test_utils.py::test_rename_kwargs PASSED [ 76%] tests/test_utils.py::test_human_readable_bytes[123-123 Byte] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234-1.2 kB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[123456-123.5 kB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567-1.2 MB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567890-1.2 GB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567890000-1234.6 GB] PASSED [ 78%] tests/test_utils.py::test_file_class PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:20210318000756-2021-03-18T00:07:56] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[20210318000756-2021-03-18T00:07:56] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:2021-2021-01-01T00:00:00] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:202103-2021-03-01T00:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210304-2021-03-04T00:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:2021030402-2021-03-04T02:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711-2021-04-08T05:47:11] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z-2021-04-08T05:47:11+00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z00-2021-04-08T05:47:11+00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z0000-2021-04-08T05:47:11+00:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime[D:20210408075331+02'00'-2021-04-08T07:53:31+02:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime[D:20210408075331-03'00'-2021-04-08T07:53:31-03:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime_err PASSED [ 80%] tests/test_utils.py::test_is_sublist PASSED [ 80%] tests/test_utils.py::test_version_compare[1-2-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[2-1-False] PASSED [ 81%] tests/test_utils.py::test_version_compare[1-1-False] PASSED [ 81%] tests/test_utils.py::test_version_compare[1.0-1.1-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[1-1.1-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[1a-2-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[2a-1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1a-1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1.0a-1.1-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[1a-1.1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1-2a-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[2-1a-False] PASSED [ 83%] tests/test_utils.py::test_version_compare[1-1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1.0-1.1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1-1.1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[-0.0.0-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1.0a-1.0-False] PASSED [ 84%] tests/test_utils.py::test_version_compare[1.0-1.0a-True] PASSED [ 84%] tests/test_utils.py::test_version_compare_equal_str PASSED [ 84%] tests/test_utils.py::test_version_compare_lt_str PASSED [ 84%] tests/test_utils.py::test_bad_version PASSED [ 84%] tests/test_workflows.py::test_basic_features PASSED [ 84%] tests/test_workflows.py::test_dropdown_items PASSED [ 85%] tests/test_workflows.py::test_pdfreader_file_load PASSED [ 85%] tests/test_workflows.py::test_pdfreader_jpeg_image PASSED [ 85%] tests/test_workflows.py::test_decrypt PASSED [ 85%] tests/test_workflows.py::test_text_extraction_encrypted PASSED [ 85%] tests/test_workflows.py::test_rotate[0] PASSED [ 86%] tests/test_workflows.py::test_rotate[90] PASSED [ 86%] tests/test_workflows.py::test_rotate[180] PASSED [ 86%] tests/test_workflows.py::test_rotate[270] PASSED [ 86%] tests/test_workflows.py::test_rotate[360] PASSED [ 86%] tests/test_workflows.py::test_rotate[-90] PASSED [ 87%] tests/test_workflows.py::test_rotate_45 PASSED [ 87%] tests/test_workflows.py::test_orientations PASSED [ 87%] tests/test_workflows.py::test_merge_output PASSED [ 87%] tests/test_workflows.py::test_replace_image PASSED [ 87%] tests/test_workflows.py::test_text_extraction_invalid_mode PASSED [ 87%] tests/test_writer.py::test_writer_exception_non_binary PASSED [ 88%] tests/test_writer.py::test_writer_clone PASSED [ 88%] tests/test_writer.py::test_writer_clone_bookmarks PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[str-True] PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[Path-True] PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[convert2-False] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[str-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[Path-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[convert2-False] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[str-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[Path-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[convert2-False] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[str-True] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[Path-True] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[convert2-False] PASSED [ 90%] tests/test_writer.py::test_remove_images[side-by-side-subfig.pdf] PASSED [ 90%] tests/test_writer.py::test_remove_images[reportlab-inline-image.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text[side-by-side-subfig.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text[reportlab-inline-image.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text_all_operators PASSED [ 91%] tests/test_writer.py::test_write_metadata PASSED [ 91%] tests/test_writer.py::test_fill_form PASSED [ 92%] tests/test_writer.py::test_fill_form_with_qualified PASSED [ 92%] tests/test_writer.py::test_encrypt[True-userpwd-ownerpwd] PASSED [ 92%] tests/test_writer.py::test_encrypt[False-userpwd-ownerpwd] PASSED [ 92%] tests/test_writer.py::test_add_outline_item PASSED [ 92%] tests/test_writer.py::test_add_named_destination PASSED [ 92%] tests/test_writer.py::test_add_named_destination_sort_order PASSED [ 93%] tests/test_writer.py::test_add_uri PASSED [ 93%] tests/test_writer.py::test_link_annotation PASSED [ 93%] tests/test_writer.py::test_io_streams PASSED [ 93%] tests/test_writer.py::test_regression_issue670 PASSED [ 93%] tests/test_writer.py::test_issue301 PASSED [ 94%] tests/test_writer.py::test_append_pages_from_reader_append PASSED [ 94%] tests/test_writer.py::test_pdf_header PASSED [ 94%] tests/test_writer.py::test_write_dict_stream_object PASSED [ 94%] tests/test_writer.py::test_add_single_annotation PASSED [ 94%] tests/test_writer.py::test_startup_dest PASSED [ 94%] tests/test_writer.py::test_threads_empty PASSED [ 95%] tests/test_writer.py::test_attachments PASSED [ 95%] tests/test_writer.py::test_update_form_fields PASSED [ 95%] tests/test_writer.py::test_empty_objects_before_cloning PASSED [ 95%] tests/test_writer.py::test_watermarking_reportlab_rendering SKIPPED [ 95%] tests/test_writer.py::test_missing_fields PASSED [ 96%] tests/test_writer.py::test_missing_info PASSED [ 96%] tests/test_writer.py::test_extra_spaces_in_da_text PASSED [ 96%] tests/test_writer.py::test_remove_image_per_type PASSED [ 96%] tests/test_writer.py::test_merging_many_temporary_files SKIPPED (could not import 'fpdf': No module named 'fpdf') [ 96%] tests/test_writer.py::test_get_pagenumber_from_indirectobject PASSED [ 97%] tests/test_writer.py::test_replace_object PASSED [ 97%] tests/test_writer.py::test_mime_jupyter PASSED [ 97%] tests/test_xmp.py::test_read_xmp_metadata[src0-True] PASSED [ 97%] tests/test_xmp.py::test_read_xmp_metadata[src1-False] PASSED [ 97%] tests/test_xmp.py::test_converter_date PASSED [ 97%] tests/test_xmp.py::test_modify_date PASSED [ 98%] tests/test_xmp.py::test_identity_function[a] PASSED [ 98%] tests/test_xmp.py::test_identity_function[42] PASSED [ 98%] tests/test_xmp.py::test_identity_function[3.141] PASSED [ 98%] tests/test_xmp.py::test_identity_function[False] PASSED [ 98%] tests/test_xmp.py::test_identity_function[True] PASSED [ 99%] tests/test_xmp.py::test_xmp_getter_bag_function PASSED [ 99%] tests/test_xobject_image_helpers.py::test_handle_flate__image_mode_1 PASSED [ 99%] tests/scripts/test_make_release.py::test_get_git_commits_since_tag SKIPPED [ 99%] tests/scripts/test_make_release.py::test_get_formatted_changes SKIPPED [ 99%] tests/scripts/test_make_release.py::test_get_formatted_changes__other SKIPPED [100%] ---------- coverage: platform linux, python 3.12.3-final-0 ----------- Name Stmts Miss Branch BrPart Cover Missing -------------------------------------------------------------------------------------------------------- pypdf/__init__.py 18 2 0 0 89% 26-27 pypdf/_cmap.py 272 55 136 17 78% 70, 77->76, 88-90, 158, 178-184, 188-193, 205-208, 257-259, 261, 280, 328-342, 350-361, 385->389, 414, 428-432, 453, 469-472, 487, 496, 503-510, 512 pypdf/_codecs/__init__.py 32 0 6 0 100% pypdf/_codecs/adobe_glyphs.py 6 0 2 0 100% pypdf/_codecs/pdfdoc.py 2 0 0 0 100% pypdf/_codecs/std.py 1 0 0 0 100% pypdf/_codecs/symbol.py 2 0 0 0 100% pypdf/_codecs/zapfding.py 2 0 0 0 100% pypdf/_crypt_providers/__init__.py 11 4 0 0 64% 42-44, 61-62 pypdf/_crypt_providers/_base.py 3 0 0 0 100% pypdf/_crypt_providers/_cryptography.py 57 55 4 0 3% 31-112 pypdf/_crypt_providers/_fallback.py 43 25 4 0 38% 39-43, 46-55, 58, 63, 66, 69, 73, 77, 81, 85, 89, 93 pypdf/_crypt_providers/_pycryptodome.py 43 0 4 0 100% pypdf/_doc_common.py 600 111 350 29 79% 294, 321-331, 397-403, 405->414, 439, 442->445, 460, 463-464, 470, 472->456, 475-484, 524, 542, 592, 602->exit, 638->622, 646, 672, 684->683, 686, 713-754, 817, 830->834, 837->840, 856-860, 967-974, 977->993, 996-997, 1025, 1109, 1117->1119, 1120->1115, 1123->exit, 1155-1178, 1249-1262, 1341->1343 pypdf/_encryption.py 389 9 160 9 97% 73-74, 198, 839, 936, 945-946, 1004, 1013, 1101->1103, 1103->1105, 1105->1108 pypdf/_merger.py 241 10 118 6 94% 380, 406-408, 433->432, 463-467, 470->461, 472, 515->519, 596->581 pypdf/_page.py 921 167 445 47 81% 92, 103->107, 108, 435->437, 439, 449-453, 455->457, 457->459, 468, 472, 480->482, 483, 485, 492, 511-512, 561, 565, 591-643, 810-815, 858, 905-913, 985-986, 989-990, 996->993, 1061, 1125, 1161-1162, 1190->1192, 1240-1241, 1272->1274, 1409-1448, 1458, 1469-1471, 1482->exit, 1505, 1510-1511, 1583, 1587-1590, 1591->1594, 1606->1614, 1608-1609, 1683-1684, 1705, 1707, 1714, 1732-1734, 1742-1743, 1765-1766, 1809-1810, 1812-1815, 1832, 1837, 1849-1867, 1882, 1969, 2117, 2226, 2236-2274, 2347-2348, 2399, 2402, 2417-2420, 2424, 2428, 2430, 2434-2435 pypdf/_page_labels.py 98 42 50 9 49% 85->exit, 132-138, 139->exit, 150-152, 168, 171, 172->197, 176->197, 180-191, 219-230, 248-256, 272-279 pypdf/_protocols.py 41 2 24 0 97% 10-11 pypdf/_reader.py 590 115 264 30 79% 171, 175, 210->214, 214->218, 256->258, 313, 322-325, 368, 377-401, 404-405, 413, 436-439, 445-466, 503, 518-521, 570-571, 654, 661, 681-687, 701-702, 718-742, 787, 794-795, 799-807, 813-816, 827, 840-841, 869-891, 909, 920-923, 948, 958, 961, 1014-1015, 1045 pypdf/_text_extraction/__init__.py 128 20 82 10 80% 52-64, 123->199, 142->199, 145, 161->199, 164, 178->199, 180->199, 183, 233-237, 272, 281 pypdf/_text_extraction/_layout_mode/__init__.py 3 0 0 0 100% pypdf/_text_extraction/_layout_mode/_fixed_width_page.py 170 18 87 11 86% 18, 100-101, 107, 116, 120->124, 134-140, 153->155, 194, 237-240, 284-291, 299, 376->380 pypdf/_text_extraction/_layout_mode/_font.py 46 21 24 3 51% 33-34, 42-94, 96->exit pypdf/_text_extraction/_layout_mode/_font_widths.py 7 0 0 0 100% pypdf/_text_extraction/_layout_mode/_text_state_manager.py 84 4 24 2 94% 59, 94, 102-103 pypdf/_text_extraction/_layout_mode/_text_state_params.py 52 6 12 4 84% 44->exit, 57-61, 65-66, 76, 127 pypdf/_utils.py 282 8 120 4 97% 58, 388-390, 426, 448, 483->482, 609, 616 pypdf/_version.py 1 0 0 0 100% pypdf/_writer.py 1192 245 594 72 77% 256, 261-267, 303->307, 307->311, 343, 363->367, 398->401, 429, 443-445, 586->exit, 813, 820, 998-1032, 1182, 1206, 1226->1225, 1338-1339, 1348-1352, 1357-1379, 1408-1437, 1450-1452, 1517, 1526->1529, 1541->1549, 1586, 1591, 1596, 1597->1602, 1600-1601, 1603-1607, 1701-1702, 1716->1718, 1720, 1736-1738, 1742, 1744, 1748, 1845-1846, 1879, 2113, 2121, 2149, 2198, 2203, 2221-2228, 2283->2285, 2287-2289, 2355, 2365->2370, 2373, 2405, 2409-2417, 2418->2393, 2446->2455, 2465, 2474->2471, 2476-2481, 2486->exit, 2506-2551, 2571-2572, 2576-2584, 2593, 2595, 2598-2599, 2602-2603, 2614, 2626-2637, 2642->2615, 2645-2652, 2674, 2677, 2680->2704, 2690, 2693, 2698->2703, 2710->2716, 2714, 2716->2723, 2735, 2756->exit, 2797-2810, 2847-2860, 2895-2925, 2961->2963, 2970, 2976->2978, 2978->2980 pypdf/_xobj_image_helpers.py 155 85 87 16 41% 23, 28, 33-34, 58, 65-109, 142-156, 166-167, 169-170, 175->177, 178, 180, 223-245, 250-252, 254-255, 273->276, 277, 281, 284-285, 290 pypdf/annotations/__init__.py 4 0 0 0 100% pypdf/annotations/_base.py 15 1 4 0 95% 20 pypdf/annotations/_markup_annotations.py 119 2 42 2 98% 23, 52 pypdf/annotations/_non_markup_annotations.py 17 0 2 1 95% 32->exit pypdf/constants.py 392 0 30 0 100% pypdf/errors.py 12 0 0 0 100% pypdf/filters.py 408 148 209 25 63% 88-89, 126-127, 156-162, 177, 186, 188-189, 193-226, 281->283, 340-361, 374-382, 385-386, 389-406, 420-449, 469, 580->582, 582->585, 672, 681->712, 688, 690, 692, 699-704, 757, 765, 799-805, 813-830, 851, 852->exit, 865, 869, 871, 873, 879-880, 893-894 pypdf/generic/__init__.py 70 0 20 0 100% pypdf/generic/_base.py 299 10 90 2 97% 268-270, 293, 300-303, 557-558 pypdf/generic/_data_structures.py 858 85 387 37 89% 89, 106, 115-120, 124, 129, 329->336, 342, 431->434, 480, 496, 513-519, 525-531, 540, 544, 561, 608, 644->exit, 686, 688, 695, 701, 705-715, 744->exit, 868-869, 929-931, 1037->1035, 1064->1069, 1065, 1077, 1162, 1168, 1179-1181, 1188-1189, 1200-1212, 1239-1240, 1258->exit, 1266, 1346-1353, 1463, 1465, 1467, 1485-1486, 1490-1491, 1493, 1574, 1585, 1596 pypdf/generic/_fit.py 31 0 14 0 100% pypdf/generic/_outline.py 20 0 2 0 100% pypdf/generic/_rectangle.py 67 1 46 0 99% 34 pypdf/generic/_utils.py 99 0 50 0 100% pypdf/generic/_viewerpref.py 72 55 20 0 21% 43, 46, 49, 52-56, 59, 62-70, 73, 76, 80, 83-155, 158-164 pypdf/pagerange.py 61 0 28 0 100% pypdf/papersizes.py 16 0 0 0 100% pypdf/types.py 20 2 4 2 83% 10, 16 pypdf/xmp.py 214 60 78 11 64% 114, 117-122, 134-151, 160-175, 186, 188->194, 190, 194->196, 217-218, 231, 235->234, 238, 243->242, 247, 255->254, 373-392 -------------------------------------------------------------------------------------------------------- TOTAL 8286 1368 3623 349 81% ========== 533 passed, 5 skipped, 321 deselected, 1 xfailed in 32.61s ========== I: pybuild pybuild:334: rm -f .pybuild/*/build/.coverage I: pybuild base:311: cd /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.11/build; python3.11 -m pytest --cov --cov-report term-missing -vv -m 'not samples and not enable_socket' ============================= test session starts ============================== platform linux -- Python 3.11.9, pytest-7.4.4, pluggy-1.5.0 -- /usr/bin/python3.11 cachedir: .pytest_cache rootdir: /build/reproducible-path/pypdf-4.2.0/.pybuild/cpython3_3.11/build configfile: pyproject.toml testpaths: tests plugins: timeout-2.3.1, cov-5.0.0 collecting ... collected 860 items / 321 deselected / 539 selected tests/test_annotations.py::test_text_annotation PASSED [ 0%] tests/test_annotations.py::test_free_text_annotation PASSED [ 0%] tests/test_constants.py::test_slash_prefix PASSED [ 0%] tests/test_constants.py::test_user_access_permissions__dict_handling PASSED [ 0%] tests/test_constants.py::test_user_access_permissions__all PASSED [ 0%] tests/test_encryption.py::test_encryption[unencrypted.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-empty-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r3-empty-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-user-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r2-owner-password.pdf-False] PASSED [ 1%] tests/test_encryption.py::test_encryption[r3-user-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-user-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-owner-password.pdf-False] PASSED [ 2%] tests/test_encryption.py::test_encryption[r4-aes-user-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-empty-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-user-password.pdf-True] PASSED [ 2%] tests/test_encryption.py::test_encryption[r5-owner-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-empty-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-user-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_encryption[r6-owner-password.pdf-True] PASSED [ 3%] tests/test_encryption.py::test_pdf_with_both_passwords[r6-both-passwords.pdf-foo-bar] PASSED [ 3%] tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password0] PASSED [ 4%] tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password1] PASSED [ 4%] tests/test_encryption.py::test_merge_encrypted_pdfs[names0] PASSED [ 4%] tests/test_encryption.py::test_encrypt_decrypt_with_cipher_class[CryptRC4] PASSED [ 4%] tests/test_encryption.py::test_attempt_decrypt_unencrypted_pdf PASSED [ 4%] tests/test_encryption.py::test_alg_v5_generate_values PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[RC4-40-False] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[RC4-128-False] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-128-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-256-R5-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[AES-256-True] PASSED [ 5%] tests/test_encryption.py::test_pdf_encrypt[ABCD-False] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[1] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[2] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[3] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[4] PASSED [ 6%] tests/test_encryption.py::test_pdf_encrypt_multiple[5] PASSED [ 7%] tests/test_encryption.py::test_pdf_encrypt_multiple[10] PASSED [ 7%] tests/test_encryption.py::test_aes_decrypt_corrupted_data PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyz] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-ABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 7%] tests/test_filters.py::test_flate_decode_encode[1-0123456789] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1-0123456789abcdefABCDEF] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1-!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~] PASSED [ 8%] tests/test_filters.py::test_flate_decode_encode[1- \t\n\r\x0b\x0c] PASSED [ 8%] tests/test_filters.py::test_flatedecode_unsupported_predictor PASSED [ 8%] tests/test_filters.py::test_flate_decode_decompress_with_array_params[params0] PASSED [ 9%] tests/test_filters.py::test_flate_decode_decompress_with_array_params[params1] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[empty] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_lowercase] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_uppercase] PASSED [ 9%] tests/test_filters.py::test_ascii_hex_decode_method[ascii_letters] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[digits] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[digits_whitespace] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[hexdigits] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_method[whitespace] PASSED [ 10%] tests/test_filters.py::test_ascii_hex_decode_missing_eod PASSED [ 10%] tests/test_filters.py::test_ascii85decode_with_overflow XFAIL [ 11%] tests/test_filters.py::test_ascii85decode_five_zero_bytes PASSED [ 11%] tests/test_filters.py::test_ccitparameters PASSED [ 11%] tests/test_filters.py::test_ccitt_get_parameters[None-0] PASSED [ 11%] tests/test_filters.py::test_ccitt_get_parameters[parameters1-1] PASSED [ 11%] tests/test_filters.py::test_ccitt_fax_decode PASSED [ 12%] tests/test_generic.py::test_float_object_exception PASSED [ 12%] tests/test_generic.py::test_number_object_exception PASSED [ 12%] tests/test_generic.py::test_number_object_no_exception PASSED [ 12%] tests/test_generic.py::test_create_string_object_exception PASSED [ 12%] tests/test_generic.py::test_boolean_object[true-true-4] PASSED [ 12%] tests/test_generic.py::test_boolean_object[false-false-5] PASSED [ 13%] tests/test_generic.py::test_boolean_object_write PASSED [ 13%] tests/test_generic.py::test_boolean_eq PASSED [ 13%] tests/test_generic.py::test_boolean_object_exception PASSED [ 13%] tests/test_generic.py::test_array_object_exception PASSED [ 13%] tests/test_generic.py::test_null_object_exception PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[False] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 14%] tests/test_generic.py::test_indirect_object_premature[foo bar] PASSED [ 15%] tests/test_generic.py::test_read_hex_string_from_stream PASSED [ 15%] tests/test_generic.py::test_read_hex_string_from_stream_exception PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_exception PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_not_in_escapedict_no_digit PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_multichar_eol PASSED [ 15%] tests/test_generic.py::test_read_string_from_stream_multichar_eol2 PASSED [ 16%] tests/test_generic.py::test_read_string_from_stream_excape_digit PASSED [ 16%] tests/test_generic.py::test_read_string_from_stream_excape_digit2 PASSED [ 16%] tests/test_generic.py::test_name_object PASSED [ 16%] tests/test_generic.py::test_destination_fit_r PASSED [ 16%] tests/test_generic.py::test_destination_fit_v PASSED [ 17%] tests/test_generic.py::test_outline_item_write_to_stream PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_keyerror PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_returns_bytes[] PASSED [ 17%] tests/test_generic.py::test_encode_pdfdocencoding_returns_bytes[data] PASSED [ 17%] tests/test_generic.py::test_read_object_comment_exception PASSED [ 17%] tests/test_generic.py::test_read_object_empty PASSED [ 18%] tests/test_generic.py::test_read_object_invalid PASSED [ 18%] tests/test_generic.py::test_read_object_comment PASSED [ 18%] tests/test_generic.py::test_bytestringobject PASSED [ 18%] tests/test_generic.py::test_dictionaryobject_key_is_no_pdfobject PASSED [ 18%] tests/test_generic.py::test_dictionaryobject_xmp_meta PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_value_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_key_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_value_is_no_pdfobject PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_setdefault_value PASSED [ 19%] tests/test_generic.py::test_dictionaryobject_read_from_stream PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_broken PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_unexpected_end PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_newline PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[True] PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[False] PASSED [ 20%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-6-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-10-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-4-True] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-6-False] PASSED [ 21%] tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-10-False] PASSED [ 21%] tests/test_generic.py::test_rectangleobject PASSED [ 22%] tests/test_generic.py::test_textstringobject_exc PASSED [ 22%] tests/test_generic.py::test_textstringobject_autodetect_utf16 PASSED [ 22%] tests/test_generic.py::test_remove_child_not_in_tree PASSED [ 22%] tests/test_generic.py::test_remove_child_not_in_that_tree PASSED [ 22%] tests/test_generic.py::test_remove_child_not_found_in_tree PASSED [ 23%] tests/test_generic.py::test_remove_child_found_in_tree PASSED [ 23%] tests/test_generic.py::test_remove_child_in_tree PASSED [ 23%] tests/test_generic.py::test_annotation_builder_free_text PASSED [ 23%] tests/test_generic.py::test_annotation_builder_polygon PASSED [ 23%] tests/test_generic.py::test_annotation_builder_polyline PASSED [ 23%] tests/test_generic.py::test_annotation_builder_line PASSED [ 24%] tests/test_generic.py::test_annotation_builder_square PASSED [ 24%] tests/test_generic.py::test_annotation_builder_highlight PASSED [ 24%] tests/test_generic.py::test_annotation_builder_circle PASSED [ 24%] tests/test_generic.py::test_annotation_builder_link PASSED [ 24%] tests/test_generic.py::test_annotation_builder_text PASSED [ 25%] tests/test_generic.py::test_annotation_builder_popup PASSED [ 25%] tests/test_generic.py::test_checkboxradiobuttonattributes_opt PASSED [ 25%] tests/test_generic.py::test_name_object_invalid_decode PASSED [ 25%] tests/test_generic.py::test_indirect_object_invalid_read PASSED [ 25%] tests/test_generic.py::test_create_string_object_utf16be_bom PASSED [ 25%] tests/test_generic.py::test_create_string_object_utf16le_bom PASSED [ 26%] tests/test_generic.py::test_create_string_object_force PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.000000-0.0] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.00] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[1.0-10] PASSED [ 26%] tests/test_generic.py::test_float_object_decimal_to_string[0.123000-0.123] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0.000123000-0.000123] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.01] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[0-0.0] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[1-1] PASSED [ 27%] tests/test_generic.py::test_float_object_decimal_to_string[1.0-11] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[1.01-1.01] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[1.010-1.01] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[0000.0000-0.0] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[0.10101010-0.1010101] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[50000000000-50000000000] PASSED [ 28%] tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123-99900000000000000000] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123.456000-99900000000000000000] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123-0.00000000000000000000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000123-0.00000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123000-0.00000000000000000000123] PASSED [ 29%] tests/test_generic.py::test_float_object_decimal_to_string[-4.6--4.6] PASSED [ 30%] tests/test_generic.py::test_cloning PASSED [ 30%] tests/test_generic.py::test_encodedstream_set_data PASSED [ 30%] tests/test_generic.py::test_array_operators PASSED [ 30%] tests/test_javascript.py::test_add_js PASSED [ 30%] tests/test_javascript.py::test_added_js PASSED [ 30%] tests/test_merger.py::test_merger_operations_by_traditional_usage PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_traditional_usage_with_writer PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_semi_traditional_usage PASSED [ 31%] tests/test_merger.py::test_merger_operations_by_semi_traditional_usage_with_writer PASSED [ 31%] tests/test_merger.py::test_merger_operation_by_new_usage PASSED [ 31%] tests/test_merger.py::test_merger_operation_by_new_usage_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_page_exception PASSED [ 32%] tests/test_merger.py::test_merge_page_exception_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_page_tuple PASSED [ 32%] tests/test_merger.py::test_merge_page_tuple_with_writer PASSED [ 32%] tests/test_merger.py::test_merge_write_closed_fh PASSED [ 33%] tests/test_merger.py::test_merge_write_closed_fh_with_writer PASSED [ 33%] tests/test_merger.py::test_deprecate_pdfmerger PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[175-680-844] PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[45-994-994] PASSED [ 33%] tests/test_page.py::test_mediabox_expansion_after_rotation[-80-888-742] PASSED [ 33%] tests/test_page.py::test_transformation_equivalence PASSED [ 34%] tests/test_page.py::test_transformation_equivalence2 PASSED [ 34%] tests/test_page.py::test_get_user_unit_property PASSED [ 34%] tests/test_page.py::test_page_transformations PASSED [ 34%] tests/test_page.py::test_compress_content_streams[pdf_path0-None] PASSED [ 34%] tests/test_page.py::test_compress_content_streams[pdf_path1-None] PASSED [ 35%] tests/test_page.py::test_compress_content_streams[pdf_path2-None] PASSED [ 35%] tests/test_page.py::test_compress_content_streams[pdf_path3-openpassword] PASSED [ 35%] tests/test_page.py::test_page_properties PASSED [ 35%] tests/test_page.py::test_page_rotation PASSED [ 35%] tests/test_page.py::test_page_indirect_rotation PASSED [ 35%] tests/test_page.py::test_page_scale PASSED [ 36%] tests/test_page.py::test_add_transformation_on_page_without_contents PASSED [ 36%] tests/test_page.py::test_extract_text_visitor_callbacks PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path0-None-embedded0-unembedded0] PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path1-None-embedded1-unembedded1] PASSED [ 36%] tests/test_page.py::test_get_fonts[pdf_path2-openpassword-embedded2-unembedded2] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path3-None-embedded3-unembedded3] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path4-None-embedded4-unembedded4] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path5-None-embedded5-unembedded5] PASSED [ 37%] tests/test_page.py::test_get_fonts[pdf_path6-None-embedded6-unembedded6] PASSED [ 37%] tests/test_page.py::test_annotation_getter PASSED [ 38%] tests/test_page.py::test_annotation_setter PASSED [ 38%] tests/test_page.py::test_merge_page_reproducible_with_proc_set PASSED [ 38%] tests/test_page.py::test_merge_resources[no resources] PASSED [ 38%] tests/test_page.py::test_merge_resources[no overlap] PASSED [ 38%] tests/test_page.py::test_merge_resources[overlap, matching values] PASSED [ 38%] tests/test_page.py::test_merge_resources[overlap, different values] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, different values] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, matching value in chain] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, different value] PASSED [ 39%] tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, matching value] PASSED [ 39%] tests/test_page.py::test_merge_page_resources_smoke_test PASSED [ 40%] tests/test_page.py::test_pages_printing PASSED [ 40%] tests/test_page.py::test_pdf_pages_missing_type PASSED [ 40%] tests/test_page.py::test_merge_with_no_resources PASSED [ 40%] tests/test_page.py::test_get_contents_from_nullobject PASSED [ 40%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[1-I] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[2-II] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[3-III] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[4-IV] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[5-V] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[6-VI] PASSED [ 41%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[7-VII] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[8-VIII] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[9-IX] PASSED [ 42%] tests/test_page_labels.py::test_number2uppercase_roman_numeral[10-X] PASSED [ 42%] tests/test_page_labels.py::test_number2lowercase_roman_numeral PASSED [ 42%] tests/test_page_labels.py::test_number2lowercase_letter[1-a] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[2-b] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[3-c] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[25-y] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[26-z] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[27-aa] PASSED [ 43%] tests/test_page_labels.py::test_number2lowercase_letter[28-ab] PASSED [ 44%] tests/test_page_labels.py::test_number2uppercase_letter PASSED [ 44%] tests/test_page_labels.py::test_get_label_from_nums__empty_nums_list PASSED [ 44%] tests/test_page_labels.py::test_index2label__empty_kids_list PASSED [ 44%] tests/test_pagerange.py::test_equality PASSED [ 44%] tests/test_pagerange.py::test_str[page_range0-0:5] PASSED [ 45%] tests/test_pagerange.py::test_str[page_range1-0:5:2] PASSED [ 45%] tests/test_pagerange.py::test_str[-1--1:] PASSED [ 45%] tests/test_pagerange.py::test_str[0-0] PASSED [ 45%] tests/test_pagerange.py::test_repr[page_range0-PageRange('0:5')] PASSED [ 45%] tests/test_pagerange.py::test_repr[page_range1-PageRange('0:5:2')] PASSED [ 46%] tests/test_pagerange.py::test_equality_other_objectc PASSED [ 46%] tests/test_pagerange.py::test_idempotency PASSED [ 46%] tests/test_pagerange.py::test_str_init[42-expected0] PASSED [ 46%] tests/test_pagerange.py::test_str_init[1:2-expected1] PASSED [ 46%] tests/test_pagerange.py::test_str_init_error PASSED [ 46%] tests/test_pagerange.py::test_parse_filename_page_ranges[params0-expected0] PASSED [ 47%] tests/test_pagerange.py::test_parse_filename_page_ranges[params1-expected1] PASSED [ 47%] tests/test_pagerange.py::test_parse_filename_page_ranges_err PASSED [ 47%] tests/test_pagerange.py::test_addition[a0-b0-expected0] PASSED [ 47%] tests/test_pagerange.py::test_addition[a1-b1-expected1] PASSED [ 47%] tests/test_pagerange.py::test_addition[a2-b2-expected2] PASSED [ 48%] tests/test_pagerange.py::test_addition_gap[a0-b0] PASSED [ 48%] tests/test_pagerange.py::test_addition_gap[a1-b1] PASSED [ 48%] tests/test_pagerange.py::test_addition_non_page_range PASSED [ 48%] tests/test_pagerange.py::test_addition_stride PASSED [ 48%] tests/test_papersizes.py::test_din_a0_paper_size PASSED [ 48%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions0] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions1] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions2] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions3] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions4] PASSED [ 49%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions5] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions6] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions7] PASSED [ 50%] tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions8] PASSED [ 50%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a0-dimensions_b0] PASSED [ 50%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a1-dimensions_b1] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a2-dimensions_b2] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a3-dimensions_b3] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a4-dimensions_b4] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a5-dimensions_b5] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a6-dimensions_b6] PASSED [ 51%] tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a7-dimensions_b7] PASSED [ 52%] tests/test_protocols.py::test_pdfobjectprotocol PASSED [ 52%] tests/test_reader.py::test_get_num_pages[selenium-pypdf-issue-177.pdf-1] PASSED [ 52%] tests/test_reader.py::test_get_num_pages[pdflatex-outline.pdf-4] PASSED [ 52%] tests/test_reader.py::test_read_metadata[crazyones] PASSED [ 52%] tests/test_reader.py::test_read_metadata[metadata] PASSED [ 53%] tests/test_reader.py::test_iss1943 PASSED [ 53%] tests/test_reader.py::test_get_annotations[src0] PASSED [ 53%] tests/test_reader.py::test_get_annotations[src1] PASSED [ 53%] tests/test_reader.py::test_get_attachments[src0-1] PASSED [ 53%] tests/test_reader.py::test_get_attachments[src1-0] PASSED [ 53%] tests/test_reader.py::test_get_outline[src0-9] PASSED [ 54%] tests/test_reader.py::test_get_outline[src1-0] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[True-False--1-False-warning_msgs0] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[True-True--1-True-] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[False-False--1-False-warning_msgs2] PASSED [ 54%] tests/test_reader.py::test_get_images_raw[False-True--1-False-warning_msgs3] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[True-False-0-True-] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[True-True-0-True-] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[False-False-0-False-warning_msgs6] PASSED [ 55%] tests/test_reader.py::test_get_images_raw[False-True-0-False-warning_msgs7] PASSED [ 55%] tests/test_reader.py::test_issue297 PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False0] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False1] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True0] PASSED [ 56%] tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True1] PASSED [ 56%] tests/test_reader.py::test_get_form[form.pdf-expected0-expected_get_fields0] PASSED [ 56%] tests/test_reader.py::test_get_form[form_acrobatReader.pdf-expected1-expected_get_fields1] PASSED [ 57%] tests/test_reader.py::test_get_form[form_evince.pdf-expected2-expected_get_fields2] PASSED [ 57%] tests/test_reader.py::test_get_form[crazyones.pdf-expected3-None] PASSED [ 57%] tests/test_reader.py::test_get_page_number[form.pdf-0] PASSED [ 57%] tests/test_reader.py::test_get_page_number[pdflatex-outline.pdf-2] PASSED [ 57%] tests/test_reader.py::test_get_page_layout[form.pdf-None] PASSED [ 58%] tests/test_reader.py::test_get_page_layout[AutoCad_Simple.pdf-/SinglePage] PASSED [ 58%] tests/test_reader.py::test_get_page_mode[form.pdf-/UseNone] PASSED [ 58%] tests/test_reader.py::test_get_page_mode[crazyones.pdf-None] PASSED [ 58%] tests/test_reader.py::test_read_empty PASSED [ 58%] tests/test_reader.py::test_read_malformed_header PASSED [ 58%] tests/test_reader.py::test_read_malformed_body PASSED [ 59%] tests/test_reader.py::test_read_prev_0_trailer PASSED [ 59%] tests/test_reader.py::test_read_missing_startxref PASSED [ 59%] tests/test_reader.py::test_read_unknown_zero_pages PASSED [ 59%] tests/test_reader.py::test_read_encrypted_without_decryption PASSED [ 59%] tests/test_reader.py::test_get_destination_page_number PASSED [ 60%] tests/test_reader.py::test_do_not_get_stuck_on_large_files_without_start_xref PASSED [ 60%] tests/test_reader.py::test_reader_properties PASSED [ 60%] tests/test_reader.py::test_issue604[True] PASSED [ 60%] tests/test_reader.py::test_issue604[False] PASSED [ 60%] tests/test_reader.py::test_decode_permissions PASSED [ 61%] tests/test_reader.py::test_user_access_permissions PASSED [ 61%] tests/test_reader.py::test_pages_attribute PASSED [ 61%] tests/test_reader.py::test_convert_to_int PASSED [ 61%] tests/test_reader.py::test_convert_to_int_error PASSED [ 61%] tests/test_reader.py::test_get_object PASSED [ 61%] tests/test_reader.py::test_extract_text_hello_world PASSED [ 62%] tests/test_reader.py::test_read_path PASSED [ 62%] tests/test_reader.py::test_read_not_binary_mode PASSED [ 62%] tests/test_reader.py::test_form_topname_with_and_without_acroform PASSED [ 62%] tests/test_reader.py::test_xfa[src0] PASSED [ 62%] tests/test_reader.py::test_xfa[src1] PASSED [ 63%] tests/test_reader.py::test_header[src0-%PDF-1.5] PASSED [ 63%] tests/test_reader.py::test_header[src1-%PDF-1.5] PASSED [ 63%] tests/test_reader.py::test_outline_missing_title PASSED [ 63%] tests/test_reader.py::test_outline_with_invalid_destinations PASSED [ 63%] tests/test_reader.py::test_wrong_password_error PASSED [ 64%] tests/test_reader.py::test_get_page_number_by_indirect PASSED [ 64%] tests/test_reader.py::test_broken_file_header PASSED [ 64%] tests/test_text_extraction.py::test_visitor_text_matrices[inkscape-abc.pdf-constraints0] PASSED [ 64%] tests/test_text_extraction.py::test_layout_mode_font_class_to_dict PASSED [ 64%] tests/test_text_extraction.py::test_layout_mode_uncommon_operators PASSED [ 64%] tests/test_utils.py::test_skip_over_whitespace[stream0-False] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream1-False] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream2-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream3-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream4-True] PASSED [ 65%] tests/test_utils.py::test_skip_over_whitespace[stream5-True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[foo-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ a-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ a\n b-False] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[-True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [ 66%] tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [ 67%] tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [ 67%] tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [ 67%] tests/test_utils.py::test_read_until_whitespace PASSED [ 67%] tests/test_utils.py::test_skip_over_comment[stream0-] PASSED [ 67%] tests/test_utils.py::test_skip_over_comment[stream1-] PASSED [ 68%] tests/test_utils.py::test_skip_over_comment[stream2- ] PASSED [ 68%] tests/test_utils.py::test_skip_over_comment[stream3-bar] PASSED [ 68%] tests/test_utils.py::test_read_until_regex_premature_ending_name PASSED [ 68%] tests/test_utils.py::test_matrix_multiply[a0-b0-expected0] PASSED [ 68%] tests/test_utils.py::test_matrix_multiply[a1-b1-expected1] PASSED [ 69%] tests/test_utils.py::test_matrix_multiply[a2-b2-expected2] PASSED [ 69%] tests/test_utils.py::test_mark_location PASSED [ 69%] tests/test_utils.py::test_b[foo-foo] PASSED [ 69%] tests/test_utils.py::test_b[\U0001f600-\xf0\x9f\x98\x80] PASSED [ 69%] tests/test_utils.py::test_b[\u2030-\xe2\x80\xb0] PASSED [ 69%] tests/test_utils.py::test_b[\u25b7-\xe2\x96\xb7] PASSED [ 70%] tests/test_utils.py::test_b[\u4e16-\xe4\xb8\x96] PASSED [ 70%] tests/test_utils.py::test_b[\U0001f600\U0001f603-\xf0\x9f\x98\x80\xf0\x9f\x98\x83] PASSED [ 70%] tests/test_utils.py::test_deprecate_no_replacement PASSED [ 70%] tests/test_utils.py::test_paeth_predictor[0-0-0-0] PASSED [ 70%] tests/test_utils.py::test_paeth_predictor[1-0-0-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[0-1-0-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[0-0-1-0] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[1-2-3-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[2-1-3-1] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[1-3-2-2] PASSED [ 71%] tests/test_utils.py::test_paeth_predictor[3-1-2-2] PASSED [ 72%] tests/test_utils.py::test_paeth_predictor[3-2-1-3] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-1-0--1] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-1-1-a-0] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-2-1-b-1] PASSED [ 72%] tests/test_utils.py::test_read_block_backwards[abc-2-2-ab-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-1-c-2] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-2-bc-1] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[abc-3-3-abc-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[-0-1-None-0] PASSED [ 73%] tests/test_utils.py::test_read_block_backwards[a-0-1-None-0] PASSED [ 74%] tests/test_utils.py::test_read_block_backwards[abc-0-10-None-0] PASSED [ 74%] tests/test_utils.py::test_read_block_backwards_at_start PASSED [ 74%] tests/test_utils.py::test_read_previous_line[0] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[1] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[2] PASSED [ 74%] tests/test_utils.py::test_read_previous_line[3] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[4] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[5] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[6] PASSED [ 75%] tests/test_utils.py::test_read_previous_line[7] PASSED [ 75%] tests/test_utils.py::test_read_previous_line2 PASSED [ 76%] tests/test_utils.py::test_get_max_pdf_version_header PASSED [ 76%] tests/test_utils.py::test_read_block_backwards_exception PASSED [ 76%] tests/test_utils.py::test_deprecate_with_replacement PASSED [ 76%] tests/test_utils.py::test_deprecation_no_replacement PASSED [ 76%] tests/test_utils.py::test_rename_kwargs PASSED [ 76%] tests/test_utils.py::test_human_readable_bytes[123-123 Byte] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234-1.2 kB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[123456-123.5 kB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567-1.2 MB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567890-1.2 GB] PASSED [ 77%] tests/test_utils.py::test_human_readable_bytes[1234567890000-1234.6 GB] PASSED [ 78%] tests/test_utils.py::test_file_class PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:20210318000756-2021-03-18T00:07:56] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[20210318000756-2021-03-18T00:07:56] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:2021-2021-01-01T00:00:00] PASSED [ 78%] tests/test_utils.py::test_parse_datetime[D:202103-2021-03-01T00:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210304-2021-03-04T00:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:2021030402-2021-03-04T02:00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711-2021-04-08T05:47:11] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z-2021-04-08T05:47:11+00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z00-2021-04-08T05:47:11+00:00] PASSED [ 79%] tests/test_utils.py::test_parse_datetime[D:20210408054711Z0000-2021-04-08T05:47:11+00:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime[D:20210408075331+02'00'-2021-04-08T07:53:31+02:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime[D:20210408075331-03'00'-2021-04-08T07:53:31-03:00] PASSED [ 80%] tests/test_utils.py::test_parse_datetime_err PASSED [ 80%] tests/test_utils.py::test_is_sublist PASSED [ 80%] tests/test_utils.py::test_version_compare[1-2-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[2-1-False] PASSED [ 81%] tests/test_utils.py::test_version_compare[1-1-False] PASSED [ 81%] tests/test_utils.py::test_version_compare[1.0-1.1-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[1-1.1-True] PASSED [ 81%] tests/test_utils.py::test_version_compare[1a-2-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[2a-1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1a-1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1.0a-1.1-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[1a-1.1-False] PASSED [ 82%] tests/test_utils.py::test_version_compare[1-2a-True] PASSED [ 82%] tests/test_utils.py::test_version_compare[2-1a-False] PASSED [ 83%] tests/test_utils.py::test_version_compare[1-1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1.0-1.1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1-1.1a-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[-0.0.0-True] PASSED [ 83%] tests/test_utils.py::test_version_compare[1.0a-1.0-False] PASSED [ 84%] tests/test_utils.py::test_version_compare[1.0-1.0a-True] PASSED [ 84%] tests/test_utils.py::test_version_compare_equal_str PASSED [ 84%] tests/test_utils.py::test_version_compare_lt_str PASSED [ 84%] tests/test_utils.py::test_bad_version PASSED [ 84%] tests/test_workflows.py::test_basic_features PASSED [ 84%] tests/test_workflows.py::test_dropdown_items PASSED [ 85%] tests/test_workflows.py::test_pdfreader_file_load PASSED [ 85%] tests/test_workflows.py::test_pdfreader_jpeg_image PASSED [ 85%] tests/test_workflows.py::test_decrypt PASSED [ 85%] tests/test_workflows.py::test_text_extraction_encrypted PASSED [ 85%] tests/test_workflows.py::test_rotate[0] PASSED [ 86%] tests/test_workflows.py::test_rotate[90] PASSED [ 86%] tests/test_workflows.py::test_rotate[180] PASSED [ 86%] tests/test_workflows.py::test_rotate[270] PASSED [ 86%] tests/test_workflows.py::test_rotate[360] PASSED [ 86%] tests/test_workflows.py::test_rotate[-90] PASSED [ 87%] tests/test_workflows.py::test_rotate_45 PASSED [ 87%] tests/test_workflows.py::test_orientations PASSED [ 87%] tests/test_workflows.py::test_merge_output PASSED [ 87%] tests/test_workflows.py::test_replace_image PASSED [ 87%] tests/test_workflows.py::test_text_extraction_invalid_mode PASSED [ 87%] tests/test_writer.py::test_writer_exception_non_binary PASSED [ 88%] tests/test_writer.py::test_writer_clone PASSED [ 88%] tests/test_writer.py::test_writer_clone_bookmarks PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[str-True] PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[Path-True] PASSED [ 88%] tests/test_writer.py::test_writer_operations_by_traditional_usage[convert2-False] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[str-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[Path-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[convert2-False] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[str-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[Path-True] PASSED [ 89%] tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[convert2-False] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[str-True] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[Path-True] PASSED [ 90%] tests/test_writer.py::test_writer_operation_by_new_usage[convert2-False] PASSED [ 90%] tests/test_writer.py::test_remove_images[side-by-side-subfig.pdf] PASSED [ 90%] tests/test_writer.py::test_remove_images[reportlab-inline-image.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text[side-by-side-subfig.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text[reportlab-inline-image.pdf] PASSED [ 91%] tests/test_writer.py::test_remove_text_all_operators PASSED [ 91%] tests/test_writer.py::test_write_metadata PASSED [ 91%] tests/test_writer.py::test_fill_form PASSED [ 92%] tests/test_writer.py::test_fill_form_with_qualified PASSED [ 92%] tests/test_writer.py::test_encrypt[True-userpwd-ownerpwd] PASSED [ 92%] tests/test_writer.py::test_encrypt[False-userpwd-ownerpwd] PASSED [ 92%] tests/test_writer.py::test_add_outline_item PASSED [ 92%] tests/test_writer.py::test_add_named_destination PASSED [ 92%] tests/test_writer.py::test_add_named_destination_sort_order PASSED [ 93%] tests/test_writer.py::test_add_uri PASSED [ 93%] tests/test_writer.py::test_link_annotation PASSED [ 93%] tests/test_writer.py::test_io_streams PASSED [ 93%] tests/test_writer.py::test_regression_issue670 PASSED [ 93%] tests/test_writer.py::test_issue301 PASSED [ 94%] tests/test_writer.py::test_append_pages_from_reader_append PASSED [ 94%] tests/test_writer.py::test_pdf_header PASSED [ 94%] tests/test_writer.py::test_write_dict_stream_object PASSED [ 94%] tests/test_writer.py::test_add_single_annotation PASSED [ 94%] tests/test_writer.py::test_startup_dest PASSED [ 94%] tests/test_writer.py::test_threads_empty PASSED [ 95%] tests/test_writer.py::test_attachments PASSED [ 95%] tests/test_writer.py::test_update_form_fields PASSED [ 95%] tests/test_writer.py::test_empty_objects_before_cloning PASSED [ 95%] tests/test_writer.py::test_watermarking_reportlab_rendering SKIPPED [ 95%] tests/test_writer.py::test_missing_fields PASSED [ 96%] tests/test_writer.py::test_missing_info PASSED [ 96%] tests/test_writer.py::test_extra_spaces_in_da_text PASSED [ 96%] tests/test_writer.py::test_remove_image_per_type PASSED [ 96%] tests/test_writer.py::test_merging_many_temporary_files SKIPPED (could not import 'fpdf': No module named 'fpdf') [ 96%] tests/test_writer.py::test_get_pagenumber_from_indirectobject PASSED [ 97%] tests/test_writer.py::test_replace_object PASSED [ 97%] tests/test_writer.py::test_mime_jupyter PASSED [ 97%] tests/test_xmp.py::test_read_xmp_metadata[src0-True] PASSED [ 97%] tests/test_xmp.py::test_read_xmp_metadata[src1-False] PASSED [ 97%] tests/test_xmp.py::test_converter_date PASSED [ 97%] tests/test_xmp.py::test_modify_date PASSED [ 98%] tests/test_xmp.py::test_identity_function[a] PASSED [ 98%] tests/test_xmp.py::test_identity_function[42] PASSED [ 98%] tests/test_xmp.py::test_identity_function[3.141] PASSED [ 98%] tests/test_xmp.py::test_identity_function[False] PASSED [ 98%] tests/test_xmp.py::test_identity_function[True] PASSED [ 99%] tests/test_xmp.py::test_xmp_getter_bag_function PASSED [ 99%] tests/test_xobject_image_helpers.py::test_handle_flate__image_mode_1 PASSED [ 99%] tests/scripts/test_make_release.py::test_get_git_commits_since_tag SKIPPED [ 99%] tests/scripts/test_make_release.py::test_get_formatted_changes SKIPPED [ 99%] tests/scripts/test_make_release.py::test_get_formatted_changes__other SKIPPED [100%] ---------- coverage: platform linux, python 3.11.9-final-0 ----------- Name Stmts Miss Branch BrPart Cover Missing -------------------------------------------------------------------------------------------------------- pypdf/__init__.py 18 2 0 0 89% 26-27 pypdf/_cmap.py 272 55 142 17 78% 70, 77->76, 88-90, 158, 178-184, 188-193, 205-208, 257-259, 261, 280, 328-342, 350-361, 385->389, 414, 428-432, 453, 469-472, 487, 496, 503-510, 512 pypdf/_codecs/__init__.py 32 0 6 0 100% pypdf/_codecs/adobe_glyphs.py 6 0 2 0 100% pypdf/_codecs/pdfdoc.py 2 0 0 0 100% pypdf/_codecs/std.py 1 0 0 0 100% pypdf/_codecs/symbol.py 2 0 0 0 100% pypdf/_codecs/zapfding.py 2 0 0 0 100% pypdf/_crypt_providers/__init__.py 11 4 0 0 64% 42-44, 61-62 pypdf/_crypt_providers/_base.py 3 0 0 0 100% pypdf/_crypt_providers/_cryptography.py 57 55 4 0 3% 31-112 pypdf/_crypt_providers/_fallback.py 43 25 6 0 37% 39-43, 46-55, 58, 63, 66, 69, 73, 77, 81, 85, 89, 93 pypdf/_crypt_providers/_pycryptodome.py 43 0 4 0 100% pypdf/_doc_common.py 600 111 364 29 79% 294, 321-331, 397-403, 405->414, 439, 442->445, 460, 463-464, 470, 472->456, 475-484, 524, 542, 592, 602->exit, 638->622, 646, 672, 684->683, 686, 713-754, 817, 830->834, 837->840, 856-860, 967-974, 977->993, 996-997, 1025, 1109, 1117->1119, 1120->1115, 1123->exit, 1155-1178, 1249-1262, 1341->1343 pypdf/_encryption.py 389 9 160 9 97% 73-74, 198, 839, 936, 945-946, 1004, 1013, 1101->1103, 1103->1105, 1105->1108 pypdf/_merger.py 241 10 118 6 94% 380, 406-408, 433->432, 463-467, 470->461, 472, 515->519, 596->581 pypdf/_page.py 921 167 457 47 80% 92, 103->107, 108, 435->437, 439, 449-453, 455->457, 457->459, 468, 472, 480->482, 483, 485, 492, 511-512, 561, 565, 591-643, 810-815, 858, 905-913, 985-986, 989-990, 996->993, 1061, 1125, 1161-1162, 1190->1192, 1240-1241, 1272->1274, 1409-1448, 1458, 1469-1471, 1482->exit, 1505, 1510-1511, 1583, 1587-1590, 1591->1594, 1606->1614, 1608-1609, 1683-1684, 1705, 1707, 1714, 1732-1734, 1742-1743, 1765-1766, 1809-1810, 1812-1815, 1832, 1837, 1849-1867, 1882, 1969, 2117, 2226, 2236-2274, 2347-2348, 2399, 2402, 2417-2420, 2424, 2428, 2430, 2434-2435 pypdf/_page_labels.py 98 42 52 9 50% 85->exit, 132-138, 139->exit, 150-152, 168, 171, 172->197, 176->197, 180-191, 219-230, 248-256, 272-279 pypdf/_protocols.py 41 2 24 0 97% 10-11 pypdf/_reader.py 590 115 272 30 79% 171, 175, 210->214, 214->218, 256->258, 313, 322-325, 368, 377-401, 404-405, 413, 436-439, 445-466, 503, 518-521, 570-571, 654, 661, 681-687, 701-702, 718-742, 787, 794-795, 799-807, 813-816, 827, 840-841, 869-891, 909, 920-923, 948, 958, 961, 1014-1015, 1045 pypdf/_text_extraction/__init__.py 128 20 87 10 80% 52-64, 123->199, 142->199, 145, 161->199, 164, 178->199, 180->199, 183, 233-237, 272, 281 pypdf/_text_extraction/_layout_mode/__init__.py 3 0 0 0 100% pypdf/_text_extraction/_layout_mode/_fixed_width_page.py 170 18 91 11 87% 18, 100-101, 107, 116, 120->124, 134-140, 153->155, 194, 237-240, 284-291, 299, 376->380 pypdf/_text_extraction/_layout_mode/_font.py 46 21 36 3 49% 33-34, 42-94, 96->exit pypdf/_text_extraction/_layout_mode/_font_widths.py 7 0 6 0 100% pypdf/_text_extraction/_layout_mode/_text_state_manager.py 84 4 24 2 94% 59, 94, 102-103 pypdf/_text_extraction/_layout_mode/_text_state_params.py 52 6 14 4 82% 44->exit, 57-61, 65-66, 76, 127 pypdf/_utils.py 282 8 120 4 97% 58, 388-390, 426, 448, 483->482, 609, 616 pypdf/_version.py 1 0 0 0 100% pypdf/_writer.py 1192 245 620 72 77% 256, 261-267, 303->307, 307->311, 343, 363->367, 398->401, 429, 443-445, 586->exit, 813, 820, 998-1032, 1182, 1206, 1226->1225, 1338-1339, 1348-1352, 1357-1379, 1408-1437, 1450-1452, 1517, 1526->1529, 1541->1549, 1586, 1591, 1596, 1597->1602, 1600-1601, 1603-1607, 1701-1702, 1716->1718, 1720, 1736-1738, 1742, 1744, 1748, 1845-1846, 1879, 2113, 2121, 2149, 2198, 2203, 2221-2228, 2283->2285, 2287-2289, 2355, 2365->2370, 2373, 2405, 2409-2417, 2418->2393, 2446->2455, 2465, 2474->2471, 2476-2481, 2486->exit, 2506-2551, 2571-2572, 2576-2584, 2593, 2595, 2598-2599, 2602-2603, 2614, 2626-2637, 2642->2615, 2645-2652, 2674, 2677, 2680->2704, 2690, 2693, 2698->2703, 2710->2716, 2714, 2716->2723, 2735, 2756->exit, 2797-2810, 2847-2860, 2895-2925, 2961->2963, 2970, 2976->2978, 2978->2980 pypdf/_xobj_image_helpers.py 155 85 91 16 41% 23, 28, 33-34, 58, 65-109, 142-156, 166-167, 169-170, 175->177, 178, 180, 223-245, 250-252, 254-255, 273->276, 277, 281, 284-285, 290 pypdf/annotations/__init__.py 4 0 0 0 100% pypdf/annotations/_base.py 15 1 4 0 95% 20 pypdf/annotations/_markup_annotations.py 119 2 54 2 98% 23, 52 pypdf/annotations/_non_markup_annotations.py 17 0 2 1 95% 32->exit pypdf/constants.py 392 0 30 0 100% pypdf/errors.py 12 0 0 0 100% pypdf/filters.py 408 148 210 25 63% 88-89, 126-127, 156-162, 177, 186, 188-189, 193-226, 281->283, 340-361, 374-382, 385-386, 389-406, 420-449, 469, 580->582, 582->585, 672, 681->712, 688, 690, 692, 699-704, 757, 765, 799-805, 813-830, 851, 852->exit, 865, 869, 871, 873, 879-880, 893-894 pypdf/generic/__init__.py 70 0 20 0 100% pypdf/generic/_base.py 299 10 92 2 97% 268-270, 293, 300-303, 557-558 pypdf/generic/_data_structures.py 858 85 391 37 89% 89, 106, 115-120, 124, 129, 329->336, 342, 431->434, 480, 496, 513-519, 525-531, 540, 544, 561, 608, 644->exit, 686, 688, 695, 701, 705-715, 744->exit, 868-869, 929-931, 1037->1035, 1064->1069, 1065, 1077, 1162, 1168, 1179-1181, 1188-1189, 1200-1212, 1239-1240, 1258->exit, 1266, 1346-1353, 1463, 1465, 1467, 1485-1486, 1490-1491, 1493, 1574, 1585, 1596 pypdf/generic/_fit.py 31 0 16 0 100% pypdf/generic/_outline.py 20 0 3 0 100% pypdf/generic/_rectangle.py 67 1 48 0 99% 34 pypdf/generic/_utils.py 99 0 50 0 100% pypdf/generic/_viewerpref.py 72 55 20 0 21% 43, 46, 49, 52-56, 59, 62-70, 73, 76, 80, 83-155, 158-164 pypdf/pagerange.py 61 0 30 0 100% pypdf/papersizes.py 16 0 0 0 100% pypdf/types.py 20 2 4 2 83% 10, 16 pypdf/xmp.py 214 60 78 11 64% 114, 117-122, 134-151, 160-175, 186, 188->194, 190, 194->196, 217-218, 231, 235->234, 238, 243->242, 247, 255->254, 373-392 -------------------------------------------------------------------------------------------------------- TOTAL 8286 1368 3752 349 81% ========== 533 passed, 5 skipped, 321 deselected, 1 xfailed in 35.72s ========== I: pybuild pybuild:334: rm -f .pybuild/*/build/.coverage create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild dh_auto_install --destdir=debian/python3-pypdf/ -O--buildsystem=pybuild I: pybuild plugin_pyproject:178: Copying package built for python3.12 to destdir I: pybuild plugin_pyproject:178: Copying package built for python3.11 to destdir dh_installdocs -O--buildsystem=pybuild dh_installchangelogs -O--buildsystem=pybuild dh_python3 -O--buildsystem=pybuild I: dh_python3 pydist:302: Cannot find package that provides dataclasses. Please add package that provides it to Build-Depends or add "dataclasses python3-dataclasses" line to debian/py3dist-overrides or add proper dependency to Depends by hand and ignore this info. dh_installsystemduser -O--buildsystem=pybuild dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild dh_strip_nondeterminism -O--buildsystem=pybuild dh_compress -O--buildsystem=pybuild dh_fixperms -O--buildsystem=pybuild dh_missing -O--buildsystem=pybuild dh_installdeb -O--buildsystem=pybuild dh_gencontrol -O--buildsystem=pybuild dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'python3-pypdf' in '../python3-pypdf_4.2.0-1_all.deb'. dpkg-genbuildinfo --build=binary -O../pypdf_4.2.0-1_arm64.buildinfo dpkg-genchanges --build=binary -O../pypdf_4.2.0-1_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/3862271 and its subdirectories I: Current time: Mon Jun 23 03:21:22 -12 2025 I: pbuilder-time-stamp: 1750692082 Tue May 21 08:58:27 UTC 2024 I: 1st build successful. Starting 2nd build on remote node codethink02-arm64.debian.net. Tue May 21 08:58:27 UTC 2024 I: Preparing to do remote build '2' on codethink02-arm64.debian.net. Tue May 21 09:00:54 UTC 2024 I: Deleting $TMPDIR on codethink02-arm64.debian.net. Tue May 21 09:00:55 UTC 2024 I: pypdf_4.2.0-1_arm64.changes: Format: 1.8 Date: Tue, 09 Apr 2024 06:29:24 -0400 Source: pypdf Binary: python3-pypdf Architecture: all Version: 4.2.0-1 Distribution: unstable Urgency: medium Maintainer: Debian Python Team Changed-By: Scott Kitterman Description: python3-pypdf - Pure-Python library built as a PDF toolkit (Python 3) Changes: pypdf (4.2.0-1) unstable; urgency=medium . * New upstream release - Drop d/p/0003-Fix-test-exceptions.patch, incorporated upstream * Bump standards-version to 4.7.0 without further change Checksums-Sha1: 62619e9fc47733f0272dc4d5198102301889e0fe 7742 pypdf_4.2.0-1_arm64.buildinfo e3ba3e257152537482decb8d1429d83e2bb18e2f 223708 python3-pypdf_4.2.0-1_all.deb Checksums-Sha256: c007676042abaad3901df670e6c54fa8a29f8e591b7343ddf163863644eddb31 7742 pypdf_4.2.0-1_arm64.buildinfo 57fe0e13ceafc8a2ccc95e734a4c9978ccec04af822f6775efae88c4df069f2a 223708 python3-pypdf_4.2.0-1_all.deb Files: a4a2ed73c507a5c5c9adc12e238feaeb 7742 python optional pypdf_4.2.0-1_arm64.buildinfo 26ccef2bf6a72aa7f150ca4b25e0a766 223708 python optional python3-pypdf_4.2.0-1_all.deb Tue May 21 09:00:56 UTC 2024 I: diffoscope 266 will be used to compare the two builds: Running as unit: rb-diffoscope-arm64_13-19604.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/pypdf_4.2.0-1.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/pypdf_4.2.0-1.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/pypdf_4.2.0-1.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/b1/pypdf_4.2.0-1_arm64.changes /srv/reproducible-results/rbuild-debian/r-b-build.ReG1rHAS/b2/pypdf_4.2.0-1_arm64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call abc.DotChangesFile ## main (total time: 0.378s) 0.378s 2 calls outputs 0.000s 1 call cleanup ## recognizes (total time: 0.017s) 0.017s 12 calls diffoscope.comparators.binary.FilesystemFile ## specialize (total time: 0.000s) 0.000s 1 call specialize Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 797ms CPU time consumed: 797ms Tue May 21 09:00:57 UTC 2024 I: diffoscope 266 found no differences in the changes files, and a .buildinfo file also exists. Tue May 21 09:00:57 UTC 2024 I: pypdf from trixie built successfully and reproducibly on arm64. Tue May 21 09:00:58 UTC 2024 I: Submitting .buildinfo files to external archives: Tue May 21 09:00:58 UTC 2024 I: Submitting 12K b1/pypdf_4.2.0-1_arm64.buildinfo.asc Tue May 21 09:01:00 UTC 2024 I: Submitting 12K b2/pypdf_4.2.0-1_arm64.buildinfo.asc Tue May 21 09:01:01 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Tue May 21 09:01:01 UTC 2024 I: Done submitting .buildinfo files. Tue May 21 09:01:01 UTC 2024 I: Removing signed pypdf_4.2.0-1_arm64.buildinfo.asc files: removed './b1/pypdf_4.2.0-1_arm64.buildinfo.asc' removed './b2/pypdf_4.2.0-1_arm64.buildinfo.asc'