Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 883520 Details for
Bug 923221
dev-python/pypdf-4.0.1 fails tests
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log
build.log (text/plain), 188.56 KB, created by
Agostino Sarubbo
on 2024-01-29 07:43:30 UTC
(
hide
)
Description:
build.log
Filename:
MIME Type:
Creator:
Agostino Sarubbo
Created:
2024-01-29 07:43:30 UTC
Size:
188.56 KB
patch
obsolete
> * Package: dev-python/pypdf-4.0.1:0 > * Repository: gentoo > * Maintainer: python@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 test > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; >This ebuild was merged at the following commit: >https://github.com/gentoo/gentoo/commit/48292d4f9dc87233d5e81bf6decbc9299f686223 (Mon Jan 29 05:01:08 UTC 2024) >@@@@@ END @@@@@ > > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This ebuild was merged (directly or as a dependency) because of the following commit: >https://github.com/gentoo/gentoo/commit/ec74b7d4c268498454b86b133fe525409e858209 >@@@@@ END @@@@@ > > > >################## ># emerge --info: # >################## >Portage 3.0.61 (python 3.12.1-final-0, default/linux/amd64/17.1, gcc-13, glibc-2.38-r9, 6.1.66-gentoo-dist x86_64) >================================================================= >System uname: Linux-6.1.66-gentoo-dist-x86_64-AMD_EPYC_7513_32-Core_Processor-with-glibc2.38 >KiB Mem: 263452516 total, 53048856 free >KiB Swap: 0 total, 0 free >sh bash 5.2_p26 >ld GNU ld (Gentoo 2.41 p5) 2.41.0 >app-misc/pax-utils: 1.3.7::gentoo >app-shells/bash: 5.2_p26::gentoo >dev-build/autoconf: 2.72-r1::gentoo >dev-build/automake: 1.16.5-r1::gentoo >dev-build/cmake: 3.28.1-r1::gentoo >dev-build/libtool: 2.4.7-r2::gentoo >dev-build/make: 4.4.1-r1::gentoo >dev-build/meson: 1.3.1-r1::gentoo >dev-java/java-config: 2.3.3-r1::gentoo >dev-lang/perl: 5.38.2-r1::gentoo >dev-lang/python: 3.10.13::gentoo, 3.11.7::gentoo, 3.12.1_p1::gentoo >dev-lang/rust-bin: 1.74.1::gentoo >sys-apps/baselayout: 2.14-r1::gentoo >sys-apps/openrc: 0.53::gentoo >sys-apps/sandbox: 2.38::gentoo >sys-devel/binutils: 2.41-r5::gentoo >sys-devel/binutils-config: 5.5::gentoo >sys-devel/gcc: 13.2.1_p20240113-r1::gentoo >sys-devel/gcc-config: 2.11::gentoo >sys-kernel/linux-headers: 6.7::gentoo (virtual/os-headers) >sys-libs/glibc: 2.38-r9::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > volatile: True > sync-rsync-verify-metamanifest: yes > sync-rsync-verify-max-age: 3 > sync-rsync-verify-jobs: 1 > sync-rsync-extra-opts: > >ACCEPT_KEYWORDS="amd64 ~amd64" >ACCEPT_LICENSE="* BSD-2" >CBUILD="x86_64-pc-linux-gnu" >CFLAGS="-O2 -march=x86-64 -pipe -pipe -frecord-gcc-switches -fno-diagnostics-color -fmessage-length=0" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXXFLAGS="-O2 -march=x86-64 -pipe -pipe -frecord-gcc-switches -fno-diagnostics-color -fmessage-length=0" >DISTDIR="/var/tmp/portage/dev-python/pypdf-4.0.1/distdir" >EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -k -b --backtrack=100" >ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" >FCFLAGS="-O2 -march=x86-64 -pipe -pipe -frecord-gcc-switches -fno-diagnostics-color -fmessage-length=0" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -march=x86-64 -pipe -pipe -frecord-gcc-switches -fno-diagnostics-color -fmessage-length=0" >GENTOO_MIRRORS="http://mirror.leaseweb.com/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo/ http://ftp.belnet.be/pub/rsync.gentoo.org/gentoo/ http://distfiles.gentoo.org" >LANG="en_US.utf8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0" >LEX="flex" >MAKEOPTS="-j63" >PKGDIR="/root/tbci/binpkg" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >SHELL="/bin/bash" >USE="acl amd64 bzip2 cli crypt debug dri elogind fortran gdbm iconv ipv6 jumbo-build libtirpc multilib native-symlinks ncurses nls openmp pam pcre readline seccomp split-usr ssl test test-rust unicode xattr zlib" ABI_X86="64" ELIBC="glibc" KERNEL="linux" PYTHON_TARGETS="python3_10 python3_11 python3_12" >Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS > > > > > >############################## ># emerge history (qlop -mv): # >############################## >2024-01-29T06:08:37 >>> sys-apps/lsb-release-3.3 >2024-01-29T06:08:37 >>> app-eselect/eselect-rust-20210703 >2024-01-29T06:08:37 >>> app-eselect/eselect-java-0.5.0 >2024-01-29T06:08:38 >>> dev-libs/libyaml-0.2.5 >2024-01-29T06:08:38 >>> media-libs/lcms-2.16 >2024-01-29T06:08:38 >>> app-crypt/p11-kit-0.25.3-r2 >2024-01-29T06:08:38 >>> dev-lang/nasm-2.16.01-r1 >2024-01-29T06:08:39 >>> x11-libs/libXau-1.0.11 >2024-01-29T06:08:39 >>> x11-libs/libXdmcp-1.1.4-r2 >2024-01-29T06:08:39 >>> dev-python/iniconfig-2.0.0 >2024-01-29T06:08:39 >>> dev-python/exceptiongroup-1.2.0 >2024-01-29T06:08:39 >>> dev-python/olefile-0.47 >2024-01-29T06:08:40 >>> dev-python/semantic-version-2.10.0 >2024-01-29T06:08:40 >>> dev-python/ply-3.11-r2 >2024-01-29T06:08:40 >>> dev-python/flit_scm-1.7.0 >2024-01-29T06:08:40 >>> dev-python/hatch-vcs-0.4.0 >2024-01-29T06:08:44 >>> dev-lang/rust-bin-1.74.1 >2024-01-29T06:08:49 >>> dev-python/pyyaml-6.0.1-r1 >2024-01-29T06:08:55 >>> sys-apps/baselayout-java-0.1.0-r2 >2024-01-29T06:09:02 >>> x11-libs/libxcb-1.16-r1 >2024-01-29T06:09:12 >>> dev-python/pycparser-2.21-r2 >2024-01-29T06:09:15 >>> dev-python/pytest-8.0.0 >2024-01-29T06:09:20 >>> virtual/rust-1.74.1 >2024-01-29T06:09:24 >>> dev-java/java-config-2.3.3-r1 >2024-01-29T06:09:27 >>> x11-libs/libX11-1.8.7 >2024-01-29T06:09:29 >>> dev-python/cffi-1.16.0 >2024-01-29T06:09:34 >>> dev-python/setuptools-rust-1.8.1 >2024-01-29T06:09:40 >>> x11-libs/libXext-1.3.5 >2024-01-29T06:09:41 >>> x11-libs/libXfixes-6.0.1 >2024-01-29T06:09:45 >>> dev-python/cryptography-42.0.1 >2024-01-29T06:09:50 >>> x11-libs/libXi-1.8.1 >2024-01-29T06:09:55 >>> x11-libs/libXtst-1.2.4 >2024-01-29T06:09:57 >>> dev-java/openjdk-bin-21.0.1_p12 >2024-01-29T06:10:09 >>> virtual/jdk-21 >2024-01-29T06:10:11 >>> virtual/jre-21 >2024-01-29T06:10:13 >>> media-libs/libjpeg-turbo-3.0.1 >2024-01-29T06:10:16 >>> media-libs/tiff-4.6.0 >2024-01-29T06:10:18 >>> media-libs/openjpeg-2.5.0-r6 >2024-01-29T06:10:21 >>> dev-python/pillow-10.2.0 > > > > >####################################### ># installed packages (qlist -ICvUSS): # >####################################### >acct-group/audio-0-r2:0 >acct-group/cdrom-0-r2:0 >acct-group/dialout-0-r2:0 >acct-group/disk-0-r2:0 >acct-group/floppy-0-r1:0 >acct-group/input-0-r2:0 >acct-group/kmem-0-r2:0 >acct-group/kvm-0-r2:0 >acct-group/lp-0-r2:0 >acct-group/man-0-r2:0 >acct-group/messagebus-0-r2:0 >acct-group/polkitd-0-r2:0 >acct-group/portage-0-r1:0 >acct-group/render-0-r2:0 >acct-group/root-0-r1:0 >acct-group/sgx-0-r1:0 >acct-group/sshd-0-r2:0 >acct-group/tape-0-r2:0 >acct-group/tty-0-r2:0 >acct-group/usb-0-r2:0 >acct-group/video-0-r2:0 >acct-user/man-1-r2:0 >acct-user/messagebus-0-r2:0 >acct-user/polkitd-0-r2:0 >acct-user/portage-0-r2:0 >acct-user/sshd-0-r2:0 >app-admin/eselect-1.4.27-r1:0 -doc -emacs -vim-syntax >app-admin/perl-cleaner-2.31:0 -pkgcore >app-alternatives/awk-4:0 -busybox gawk -mawk -nawk split-usr >app-alternatives/bc-0:0 -gh gnu >app-alternatives/bzip2-1:0 -lbzip2 -pbzip2 reference split-usr >app-alternatives/cpio-0:0 gnu -libarchive split-usr >app-alternatives/gzip-1:0 -pigz reference split-usr >app-alternatives/lex-0-r1:0 flex -reflex >app-alternatives/ninja-1:0 reference -samurai >app-alternatives/sh-0:0 bash -busybox -dash -ksh -lksh -mksh >app-alternatives/tar-0:0 gnu -libarchive split-usr >app-alternatives/yacc-1-r2:0 bison -byacc -reference >app-arch/bzip2-1.0.8-r4:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 split-usr -static -static-libs -verify-sig >app-arch/cpio-2.15:0 nls >app-arch/gzip-1.13:0 -pic -static -verify-sig >app-arch/libarchive-3.7.2:0/13 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 acl -blake2 bzip2 e2fsprogs -expat iconv -lz4 lzma -lzo -nettle -static-libs -verify-sig xattr -zstd >app-arch/tar-1.35:0 acl -minimal nls -selinux -verify-sig xattr >app-arch/unzip-6.0_p27-r1:0 bzip2 -natspec unicode >app-arch/xz-utils-5.4.6:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc extra-filters nls -pgo split-usr -static-libs -verify-sig >app-arch/zstd-1.5.5:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -lz4 lzma split-usr -static-libs -test zlib >app-crypt/gnupg-2.4.4:0 bzip2 -doc -ldap nls readline -selinux smartcard ssl -test tofu -tools -tpm -usb -user-socket -verify-sig -wks-server >app-crypt/gpgme-1.23.2:1/11.6.15.2 -common-lisp cxx debug -python python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -qt5 -qt6 -static-libs -test -verify-sig >app-crypt/libb2-0.98.1-r3:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -native-cflags openmp -static-libs >app-crypt/libmd-1.1.0:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >app-crypt/p11-kit-0.25.3-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -gtk-doc libffi nls -systemd -test >app-crypt/pinentry-1.2.1-r4:0 -X -caps -efl -emacs -gtk -keyring ncurses -qt5 -verify-sig -wayland >app-crypt/rhash-1.4.4-r1:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug nls ssl -static-libs >app-editors/nano-7.2-r1:0 -debug -justify -magic -minimal ncurses nls spell -static unicode >app-eselect/eselect-fontconfig-20220403:0 >app-eselect/eselect-iptables-20220320:0 >app-eselect/eselect-java-0.5.0:0 >app-eselect/eselect-lib-bin-symlink-0.1.1-r1:0 >app-eselect/eselect-pinentry-0.7.3:0 >app-eselect/eselect-rust-20210703:0 >app-i18n/man-pages-ja-20180315-r1:0 >app-i18n/man-pages-l10n-4.19.0:0 l10n_cs l10n_da l10n_de l10n_el l10n_es l10n_fi l10n_fr l10n_hu l10n_id l10n_it l10n_mk l10n_nb l10n_nl l10n_pl l10n_pt-BR l10n_ro l10n_ru l10n_sr l10n_sv l10n_uk l10n_vi >app-i18n/man-pages-zh_CN-1.6.4.0:0 >app-misc/ca-certificates-20230311.3.96.1:0 -cacert >app-misc/editor-wrapper-4-r1:0 >app-misc/mime-types-2.1.54:0 -nginx >app-misc/pax-utils-1.3.7:0 -caps -man -python -python_single_target_python3_10 python_single_target_python3_11 -seccomp -test >app-misc/tmux-3.3a-r1:0 debug -selinux -systemd -utempter -vim-syntax >app-portage/eix-0.36.7:0 debug -doc nls -sqlite >app-portage/elt-patches-20240116:0 >app-portage/gemato-20.5:0 gpg -pretty-log python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test -tools >app-portage/gentoolkit-0.6.5:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >app-portage/getuto-1.9.1:0 -test >app-portage/portage-utils-0.96.1:0 openmp qmanifest qtegrity -static >app-shells/bash-5.2_p26:0 -afs -bashlogger -examples -mem-scramble net nls -pgo -plugins readline -verify-sig >app-shells/bash-completion-2.11:0 eselect -test >app-shells/gentoo-bashcomp-20230313:0 >app-shells/push-3.4:0 >app-shells/quoter-4.2:0 >app-text/ansifilter-2.20:0 -gui -verify-sig >app-text/asciidoc-10.2.0:0 -python_single_target_pypy3 -python_single_target_python3_10 python_single_target_python3_11 -python_single_target_python3_12 >app-text/build-docbook-catalog-2.4:0 >app-text/docbook-xml-dtd-4.5-r2:4.5 >app-text/docbook-xml-dtd-4.4-r3:4.4 >app-text/docbook-xml-dtd-4.2-r3:4.2 >app-text/docbook-xml-dtd-4.1.2-r7:4.1.2 >app-text/docbook-xsl-ns-stylesheets-1.79.1:0 -ruby >app-text/docbook-xsl-stylesheets-1.79.1-r4:0 -ruby >app-text/manpager-1:0 >app-text/opensp-1.5.2-r10:0 -doc nls -static-libs -test >app-text/po4a-0.69:0 -test -test >app-text/sgml-common-0.6.3-r7:0 >app-text/xmlto-0.0.28-r11:0 -latex text >dev-build/autoconf-2.72-r1:2.72 -emacs -verify-sig >dev-build/autoconf-archive-2023.02.20:0 >dev-build/autoconf-wrapper-20231224:0 >dev-build/automake-1.16.5-r1:1.16 -test >dev-build/automake-wrapper-20221207:0 >dev-build/cmake-3.28.1-r1:0 -dap -doc -gui ncurses -qt6 -test -test -verify-sig >dev-build/gtk-doc-am-1.33.2:0 >dev-build/libtool-2.4.7-r2:2 -vanilla >dev-build/make-4.4.1-r1:0 -guile nls -static -verify-sig >dev-build/meson-1.3.1-r1:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test -verify-sig >dev-build/meson-format-array-0:0 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >dev-build/ninja-1.11.1-r4:0 -doc -test >dev-db/sqlite-3.44.2-r2:3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug -doc -icu readline -secure-delete -static-libs -tcl -test -tools >dev-java/java-config-2.3.3-r1:2 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-java/openjdk-bin-21.0.1_p12:21 -alsa -cups -headless-awt -selinux -source >dev-lang/duktape-2.7.0-r3:0/2.7.0 >dev-lang/nasm-2.16.01-r1:0 -doc >dev-lang/perl-5.38.2-r1:0/5.38 -berkdb debug -doc gdbm ithreads -minimal -quadmath >dev-lang/python-3.12.1_p1:3.12 -bluetooth -build debug ensurepip -examples gdbm -libedit ncurses -pgo readline sqlite ssl -test -tk -valgrind -verify-sig >dev-lang/python-3.11.7:3.11 -bluetooth -build debug ensurepip -examples gdbm -libedit ncurses -pgo readline sqlite ssl -test -tk -valgrind -verify-sig >dev-lang/python-3.10.13:3.10 -bluetooth -build debug ensurepip -examples gdbm -libedit ncurses -pgo readline sqlite ssl -test -tk -valgrind -verify-sig xml >dev-lang/python-exec-2.4.10:2 native-symlinks python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-lang/python-exec-conf-2.4.6:2 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >dev-lang/rust-bin-1.74.1:stable -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -big-endian -clippy cpu_flags_x86_sse2 -doc -prefix -rust-analyzer -rust-src -rustfmt -verify-sig >dev-lang/tcl-8.6.13-r1:0/8.6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug threads >dev-libs/boehm-gc-8.2.4:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -cxx large -static-libs threads >dev-libs/elfutils-0.190:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 bzip2 -debuginfod -lzma nls -static-libs -test utils -verify-sig -zstd >dev-libs/expat-2.5.0:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -examples -static-libs -test unicode >dev-libs/glib-2.78.4-r1:2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -dbus debug elf -gtk-doc mime -selinux -static-libs -sysprof -systemtap -test -utils xattr >dev-libs/gmp-6.3.0-r1:0/10.4 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 asm cpudetection cxx -doc -pic -static-libs >dev-libs/gobject-introspection-1.78.1:0 -doctool -gtk-doc -python_single_target_python3_10 python_single_target_python3_11 -test >dev-libs/gobject-introspection-common-1.78.1:0 >dev-libs/isl-0.26:0/23 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs >dev-libs/jsoncpp-1.9.5:0/25 -doc -test >dev-libs/libassuan-2.5.6:0 -verify-sig >dev-libs/libatomic_ops-7.8.2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 >dev-libs/libbsd-0.11.8:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs -verify-sig >dev-libs/libevent-2.1.12-r1:0/2.1-7 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 clock-gettime debug -malloc-replacement ssl -static-libs -test -verbose-debug -verify-sig >dev-libs/libffi-3.4.4-r4:0/8 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug -exec-static-trampoline -pax-kernel -static-libs -test >dev-libs/libgcrypt-1.10.3-r1:0/20 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 asm -cpu_flags_arm_aes -cpu_flags_arm_neon -cpu_flags_arm_sha1 -cpu_flags_arm_sha2 -cpu_flags_ppc_altivec -cpu_flags_ppc_vsx2 -cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_avx cpu_flags_x86_avx2 -cpu_flags_x86_padlock -cpu_flags_x86_sha cpu_flags_x86_sse4_1 -doc getentropy -static-libs -verify-sig >dev-libs/libgpg-error-1.47-r1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -common-lisp nls -static-libs -test -verify-sig >dev-libs/libksba-1.6.5:0 -static-libs -verify-sig >dev-libs/libpcre2-10.42-r1:0/3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 bzip2 jit -libedit pcre16 pcre32 readline split-usr -static-libs unicode -valgrind -verify-sig zlib >dev-libs/libpipeline-1.5.7:0 -test >dev-libs/libtasn1-4.19.0:0/6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs -test -verify-sig >dev-libs/libunistring-1.1-r1:0/5 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -static-libs >dev-libs/libuv-1.47.0-r1:0/1 >dev-libs/libxml2-2.12.4:2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -debug -examples ftp -icu -lzma python python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 readline -static-libs -test >dev-libs/libxslt-1.1.39:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 crypt debug -examples -python python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -static-libs >dev-libs/libyaml-0.2.5:0 -doc -static-libs -test >dev-libs/lzo-2.10:2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -examples split-usr -static-libs >dev-libs/mpc-1.3.1:0/3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs >dev-libs/mpfr-4.2.1:0/6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs -verify-sig >dev-libs/nettle-3.9.1:0/8-6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 asm -cpu_flags_arm_aes -cpu_flags_arm_neon -cpu_flags_arm_sha1 -cpu_flags_arm_sha2 -cpu_flags_ppc_altivec -cpu_flags_ppc_vsx2 -cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_pclmul -cpu_flags_x86_sha -doc gmp -static-libs -verify-sig >dev-libs/npth-1.6-r2:0 -test >dev-libs/openssl-3.1.4:0/3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 asm cpu_flags_x86_sse2 -fips -ktls -rfc3779 -sctp -static-libs -test -tls-compression -vanilla -verify-sig -verify-sig -weak-ssl-ciphers >dev-libs/popt-1.19-r1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 nls -static-libs >dev-perl/Encode-EUCJPASCII-0.30.0-r1:0 -test >dev-perl/Encode-HanExtra-0.230.0-r3:0 >dev-perl/Encode-Locale-1.50.0-r1:0 -test >dev-perl/ExtUtils-CChecker-0.110.0:0 -test >dev-perl/File-BaseDir-0.90.0:0 -test >dev-perl/File-DesktopEntry-0.220.0-r1:0 -test >dev-perl/File-MimeInfo-0.330.0:0 -test >dev-perl/IO-Socket-SSL-2.83.0:0 -examples -idn -test >dev-perl/IPC-System-Simple-1.300.0:0 -test >dev-perl/Locale-gettext-1.70.0-r1:0 -test >dev-perl/MIME-Charset-1.13.1:0 l10n_ja l10n_zh -test >dev-perl/Module-Build-0.423.400:0 -test >dev-perl/Mozilla-CA-20999999-r1:0 -test >dev-perl/Net-SSLeay-1.920.0-r1:0 -examples -examples -minimal -test >dev-perl/Pod-Parser-1.660.0:0 -test >dev-perl/Regexp-IPv6-0.30.0-r2:0 -test >dev-perl/SGMLSpm-1.1-r2:0 -test >dev-perl/Syntax-Keyword-Try-0.280.0:0 -test >dev-perl/TermReadKey-2.380.0-r1:0 -examples -test >dev-perl/Text-CharWidth-0.40.0-r2:0 -test >dev-perl/Text-WrapI18N-0.60.0-r2:0 -test >dev-perl/Unicode-LineBreak-2019.1.0:0 >dev-perl/URI-5.210.0:0 -test >dev-perl/XS-Parse-Keyword-0.380.0:0 -test >dev-perl/YAML-Tiny-1.740.0:0 -minimal -test >dev-python/certifi-3021.3.16-r4:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/cffi-1.16.0:0/1.16.0 debug -doc python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/charset-normalizer-3.3.2:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/cryptography-42.0.1:0 debug -debug python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/cython-3.0.8:0 debug -doc python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/editables-0.5:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/ensurepip-pip-23.3.2:0 >dev-python/ensurepip-setuptools-69.0.3:0 >dev-python/ensurepip-wheels-100:0 >dev-python/exceptiongroup-1.2.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/flit-core-3.9.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/flit_scm-1.7.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >dev-python/gentoo-common-1:0 >dev-python/gpep517-15:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/hatch-vcs-0.4.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/hatchling-1.21.1:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/idna-3.6:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/iniconfig-2.0.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/installer-0.7.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/jaraco-context-4.3.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/jaraco-functools-4.0.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/jaraco-text-3.12.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/jinja-3.1.3:0 -doc -examples python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/lxml-5.1.0:0 debug -doc -examples python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test threads >dev-python/markupsafe-2.1.4:0 debug python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/more-itertools-10.2.0:0 -doc python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/nspektr-0.5.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/olefile-0.47:0 -doc python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/ordered-set-4.1.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/packaging-23.2:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pathspec-0.12.1:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pillow-10.2.0:0 debug -examples -imagequant jpeg jpeg2k -lcms python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test -test tiff -tk -truetype -webp -xcb zlib >dev-python/platformdirs-4.1.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pluggy-1.4.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/ply-3.11-r2:0/3.11 -examples python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >dev-python/pycparser-2.21-r2:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pyparsing-3.1.1:0 -examples python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pypy3-7.3.15:0/pypy310-pp73-384 gdbm ncurses sqlite -tk >dev-python/pypy3_10-7.3.15:0/pypy310-pp73-384 ensurepip gdbm jit ncurses sqlite -tk >dev-python/pypy3_10-exe-bin-7.3.15:7.3.15 >dev-python/PySocks-1.7.1-r2:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >dev-python/pytest-8.0.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/pyyaml-6.0.1-r1:0 debug -examples python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/requests-2.31.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -socks5 -test test-rust >dev-python/semantic-version-2.10.0:0 -doc python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/setuptools-69.0.3:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/setuptools-rust-1.8.1:0 debug python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/setuptools-scm-8.0.4:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/tomli-2.0.1-r1:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/trove-classifiers-2024.1.8:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/typing-extensions-4.9.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-python/urllib3-2.1.0:0 -brotli python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test -zstd >dev-python/wheel-0.42.0:0 python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 -test >dev-util/checkbashisms-2.23.5:0 >dev-util/desktop-file-utils-0.27-r1:0 >dev-util/glib-utils-2.78.4:0 -python_single_target_python3_10 python_single_target_python3_11 -python_single_target_python3_12 >dev-util/gperf-3.1-r2:0 >dev-util/pkgconf-2.1.0-r1:0/4 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -test >dev-util/re2c-3.1:0 debug -test >dev-vcs/git-2.43.0:0 blksha1 -cgi curl -cvs -doc gpg -highlight iconv -keyring -mediawiki nls pcre -perforce -perl -python_single_target_python3_10 python_single_target_python3_11 -python_single_target_python3_12 safe-directory -selinux -subversion -test -tk webdav -xinetd >media-fonts/liberation-fonts-2.1.5:0 -X -X -fontforge >media-gfx/graphite2-1.3.14_p20210810-r3:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -perl -test >media-libs/fontconfig-2.15.0:1.0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc nls -test >media-libs/freetype-2.13.2:2 -X -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 adobe-cff -brotli bzip2 cleartype-hinting debug -doc -fontforge harfbuzz png -static-libs -svg -utils >media-libs/harfbuzz-8.3.0:0/6.0.0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 cairo debug -doc -experimental glib graphite -icu introspection -test truetype >media-libs/lcms-2.16:2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -jpeg -static-libs -tiff >media-libs/libjpeg-turbo-3.0.1:0/0.2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -cpu_flags_arm_neon java -java -static-libs >media-libs/libpng-1.6.41:0/16 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -apng -cpu_flags_arm_neon cpu_flags_x86_sse -static-libs -test >media-libs/openjpeg-2.5.0-r6:2/7 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -test >media-libs/tiff-4.6.0:0/6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 cxx -jbig jpeg -lzma -static-libs -test -verify-sig -webp zlib -zstd >net-dns/c-ares-1.25.0-r1:0/2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs -test -verify-sig >net-dns/libidn2-2.3.7:0/2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 nls -static-libs -verify-sig >net-firewall/iptables-1.8.10:0/1.8.3 -conntrack -netlink -nftables -pcap split-usr -static-libs >net-libs/gnutls-3.8.3:0/30.30 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -brotli cxx -dane -doc -examples idn nls openssl -pkcs11 seccomp -sslv2 -sslv3 -static-libs -test -test-full tls-heartbeat -tools -verify-sig zlib -zstd >net-libs/libmnl-1.0.5:0/0.2.0 -examples -verify-sig >net-libs/libnsl-2.0.1:0/3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs >net-libs/libpsl-0.21.5:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -icu idn -test >net-libs/libtirpc-1.3.4-r1:0/3 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -kerberos split-usr -static-libs >net-libs/nghttp2-1.58.0:0/1.14 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug -hpack-tools -jemalloc -static-libs -systemd -test -utils -xml >net-misc/curl-8.5.0-r3:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 adns alt-svc -brotli -curl_ssl_gnutls -curl_ssl_mbedtls curl_ssl_openssl -curl_ssl_rustls ftp -gnutls -gopher hsts http2 -idn imap -kerberos -ldap -mbedtls -nghttp3 openssl pop3 progress-meter psl -rtmp -rustls -samba smtp -ssh ssl -sslv3 -static-libs -telnet -test tftp -verify-sig -websockets -zstd >net-misc/dhcpcd-10.0.6-r1:0 debug embedded ipv6 -privsep udev >net-misc/iputils-20231222:0 arping -caps -clockdiff -doc filecaps -idn nls -test -tracepath >net-misc/netifrc-0.7.8:0 dhcp >net-misc/openssh-contrib-9.5_p1:0 -X -X509 -abi_mips_n32 -audit debug -hpn -kerberos -ldns -libedit -livecd pam -pie -security-key -selinux ssl -static -test -verify-sig -xmss >net-misc/rsync-3.2.7-r4:0 acl -examples iconv -lz4 -python_single_target_python3_10 python_single_target_python3_11 -rrsync ssl -stunnel -system-zlib -verify-sig xattr -xxhash -zstd >net-misc/wget-1.21.4:0 -cookie-check debug -gnutls -idn ipv6 -metalink nls -ntlm pcre ssl -static -test -uuid -verify-sig zlib >perl-core/File-Temp-0.231.100:0 >perl-core/Math-BigInt-1.999.842:0 -examples -test >sec-keys/openpgp-keys-gentoo-release-20230329:0 -test >sys-apps/acl-2.3.2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 nls split-usr -static-libs >sys-apps/attr-2.5.2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug nls split-usr -static-libs >sys-apps/baselayout-2.14-r1:0 -build split-usr >sys-apps/baselayout-java-0.1.0-r2:0 >sys-apps/coreutils-9.4:0 acl -caps -gmp -hostname -kill -multicall nls openssl -selinux split-usr -static -test -vanilla -verify-sig xattr >sys-apps/dbus-1.15.8:0 -X -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 debug -doc elogind -selinux -static-libs -systemd -test -test -valgrind >sys-apps/debianutils-5.14:0 installkernel -static >sys-apps/diffutils-3.10:0 nls -verify-sig >sys-apps/file-5.45-r3:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 bzip2 -lzip -lzma -python python_targets_python3_10 python_targets_python3_11 -seccomp -static-libs -verify-sig zlib -zstd >sys-apps/findutils-4.9.0-r2:0 nls -selinux -static -test -verify-sig >sys-apps/gawk-5.3.0-r1:0 -mpfr nls -pma readline -verify-sig >sys-apps/gentoo-functions-0.19:0 >sys-apps/grep-3.11:0 egrep-fgrep nls pcre -static -verify-sig >sys-apps/groff-1.23.0:0 -X -examples -uchardet >sys-apps/help2man-1.49.3:0 nls >sys-apps/install-xattr-0.8-r1:0 >sys-apps/iproute2-6.6.0-r3:0 -atm -berkdb -bpf -caps -elf iptables -minimal -nfs -selinux >sys-apps/kbd-2.6.4:0 nls pam -selinux -test >sys-apps/kmod-31:0 debug -doc lzma -pkcs7 -python python_targets_python3_10 python_targets_python3_11 -static-libs tools zlib zstd >sys-apps/less-643-r1:0 pcre -test >sys-apps/locale-gen-2.23-r1:0 >sys-apps/lsb-release-3.3:0 >sys-apps/man-db-2.12.0:0 manpager nls seccomp -selinux -static-libs zlib >sys-apps/man-pages-6.05.01:0 l10n_cs l10n_da l10n_de l10n_el l10n_es l10n_fi l10n_fr l10n_hu l10n_id l10n_it l10n_ja l10n_mk l10n_nb l10n_nl l10n_pl l10n_pt-BR l10n_ro l10n_ru l10n_sr l10n_sv l10n_uk l10n_vi l10n_zh-CN >sys-apps/miscfiles-1.5-r4:0 -minimal >sys-apps/net-tools-2.10:0 arp hostname ipv6 -nis nls -plipconfig -selinux -slattach -static >sys-apps/openrc-0.53:0 -audit -bash debug ncurses netifrc -newnet pam -s6 -selinux -sysv-utils sysvinit unicode >sys-apps/portage-3.0.61-r1:0 -apidoc -build -doc -gentoo-dev ipc native-extensions python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 rsync-verify -selinux -test xattr >sys-apps/sandbox-2.38:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 nnp >sys-apps/sed-4.9:0 acl nls -selinux -static -verify-sig >sys-apps/shadow-4.14.3:0/4 acl -audit -cracklib nls pam -selinux -skey split-usr -su -systemd -verify-sig xattr >sys-apps/systemd-utils-254.9:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 acl -boot -kernel-install kmod -python_single_target_python3_10 python_single_target_python3_11 -python_single_target_python3_12 -secureboot -selinux split-usr -split-usr -sysusers -test tmpfiles udev -ukify >sys-apps/sysvinit-3.08:0 -ibm nls -selinux -static -verify-sig >sys-apps/texinfo-7.1-r1:0 nls standalone -static >sys-apps/util-linux-2.39.3-r1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -audit -build -caps cramfs -cryptsetup -fdformat hardlink -kill logger -magic ncurses nls pam -python python_targets_python3_10 python_targets_python3_11 readline -rtas -selinux -slang split-usr -static-libs su suid -systemd -test -tty-helpers -udev unicode -verify-sig >sys-apps/which-2.21:0 >sys-auth/elogind-252.9:0 acl -audit cgroup-hybrid debug -doc pam policykit -selinux -test >sys-auth/pambase-20240128:0 -caps -debug elogind -gnome-keyring -homed -minimal -mktemp nullok -pam_krb5 -pam_ssh passwdqc -pwhistory -pwquality -securetty -selinux sha512 -sssd -systemd -yescrypt >sys-auth/passwdqc-2.0.3-r1:0 >sys-auth/polkit-124-r1:0 daemon duktape -examples -gtk introspection -kde pam -selinux -systemd -test >sys-devel/bc-1.07.1-r6:0 -libedit readline -static >sys-devel/binutils-2.41-r5:2.41 -cet -debuginfod -doc -gold -gprofng -hardened -multitarget nls -pgo plugins -static-libs -test -vanilla -zstd >sys-devel/binutils-config-5.5:0 native-symlinks >sys-devel/bison-3.8.2-r2:0 -examples nls -static -test -verify-sig >sys-devel/flex-2.6.4-r6:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 nls -static -test >sys-devel/gcc-13.2.1_p20240113-r1:13 -ada -cet -custom-cflags cxx -d -debug -default-stack-clash-protection -default-znow -doc -fixed-point fortran -go graphite -hardened -ieee-long-double -jit -libssp lto -modula2 multilib nls -objc -objc++ -objc-gc openmp -pch -pgo pie sanitize ssp -systemtap -test -valgrind -vanilla -vtv -zstd >sys-devel/gcc-config-2.11:0 cc-wrappers native-symlinks >sys-devel/gettext-0.22.4:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 acl cxx -doc -emacs -git -java -java ncurses nls openmp -static-libs -verify-sig xattr >sys-devel/gnuconfig-20230731:0 >sys-devel/m4-1.4.19-r2:0 -examples nls -verify-sig >sys-devel/patch-2.7.6-r5:0 -static -test -verify-sig xattr >sys-fs/e2fsprogs-1.47.0-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -cron -fuse nls split-usr -static-libs -test tools >sys-fs/udev-init-scripts-35:0 >sys-kernel/dracut-060_pre20240104:0 -selinux -test >sys-kernel/gentoo-kernel-bin-6.1.75:6.1.75 initramfs -test >sys-kernel/installkernel-18-r1:0 dracut -grub -systemd -uki -ukify >sys-kernel/linux-headers-6.7:0 -headers-only >sys-libs/gdbm-1.23:0/6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 berkdb nls readline -static-libs -test -verify-sig >sys-libs/glibc-2.38-r9:2.2 -audit -caps -cet -compile-locales -crypt -custom-cflags -doc -gd -hash-sysv-compat -headers-only multiarch multilib -multilib-bootstrap -nscd -perl -profile -selinux ssp stack-realign static-libs -suid -systemd -systemtap -test -vanilla >sys-libs/libcap-2.69:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 pam split-usr -static-libs -tools >sys-libs/libseccomp-2.5.5:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -experimental-loong -python python_targets_python3_10 python_targets_python3_11 -static-libs -test >sys-libs/libxcrypt-4.4.36-r1:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 compat -headers-only split-usr -static-libs system -test >sys-libs/ncurses-6.4_p20230401:0/6 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -ada cxx debug -doc -gpm -minimal -profile split-usr -split-usr stack-realign -static-libs -test tinfo -trace -verify-sig >sys-libs/pam-1.5.3:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -audit -berkdb -debug filecaps -nis -selinux split-usr >sys-libs/readline-8.2_p10:0/8 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 split-usr -static-libs unicode -utils -verify-sig >sys-libs/timezone-data-2023d:0 -leaps-timezone nls -zic-slim >sys-libs/zlib-1.3.1:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 minizip split-usr -static-libs -verify-sig >sys-process/procps-4.0.4:0/0-ng -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 elogind kill -modern-top ncurses nls -selinux split-usr -static-libs -systemd -test unicode >sys-process/psmisc-23.6:0 -X -apparmor nls -selinux -test >virtual/acl-0-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs >virtual/dev-manager-0-r2:0 >virtual/dist-kernel-6.1.75:0/6.1.75 >virtual/editor-0-r7:0 >virtual/jdk-21:21 -headless-awt >virtual/jre-21:21 >virtual/libc-1-r1:0 >virtual/libcrypt-2-r1:0/2 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -static-libs >virtual/libelf-3-r1:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >virtual/libiconv-0-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >virtual/libintl-0-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >virtual/libudev-251-r2:0/1 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -systemd >virtual/man-0-r4:0 >virtual/openssh-0:0 ssl >virtual/os-headers-0-r2:0 >virtual/package-manager-1:0 >virtual/pager-0-r1:0 >virtual/perl-bignum-0.660.0:0 >virtual/perl-Carp-1.540.0:0 >virtual/perl-CPAN-2.360.0:0 >virtual/perl-CPAN-Meta-2.150.10-r7:0 >virtual/perl-CPAN-Meta-YAML-0.18.0-r9:0 >virtual/perl-Data-Dumper-2.188.0:0 >virtual/perl-Encode-3.190.0:0 >virtual/perl-Exporter-5.770.0-r1:0 >virtual/perl-ExtUtils-CBuilder-0.280.238:0 >virtual/perl-ExtUtils-Install-2.220.0:0 >virtual/perl-ExtUtils-MakeMaker-7.700.0:0 >virtual/perl-ExtUtils-Manifest-1.730.0-r2:0 >virtual/perl-ExtUtils-ParseXS-3.510.0:0 >virtual/perl-File-Path-2.180.0-r2:0 >virtual/perl-File-Spec-3.880.0:0 >virtual/perl-File-Temp-0.231.100:0 >virtual/perl-Getopt-Long-2.540.0:0 >virtual/perl-JSON-PP-4.160.0-r1:0 >virtual/perl-libnet-3.150.0:0 ssl >virtual/perl-Math-BigInt-1.999.842:0 >virtual/perl-Math-BigInt-FastCalc-0.501.300:0 >virtual/perl-Math-BigRat-0.262.400:0 >virtual/perl-Math-Complex-1.620.0:0 >virtual/perl-MIME-Base64-3.160.100_rc:0 >virtual/perl-Module-Metadata-1.0.37-r3:0 >virtual/perl-parent-0.241.0:0 >virtual/perl-Parse-CPAN-Meta-2.150.10-r7:0 >virtual/perl-Perl-OSType-1.10.0-r7:0 >virtual/perl-podlators-5.10.0:0 >virtual/perl-Scalar-List-Utils-1.630.0:0 >virtual/perl-Test-Harness-3.440.0-r1:0 >virtual/perl-Text-ParseWords-3.310.0-r1:0 >virtual/perl-Unicode-Collate-1.310.0-r1:0 >virtual/perl-version-0.992.900-r1:0 >virtual/pkgconfig-2-r1:0 >virtual/rust-1.74.1:0/llvm-17 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -rustfmt >virtual/service-manager-1-r1:0 >virtual/ssh-0-r2:0 -minimal >virtual/tmpfiles-0-r5:0 -systemd >virtual/ttf-fonts-1-r2:0 >virtual/udev-217-r7:0 -systemd >virtual/w3m-1:0 >www-client/pybugz-0.13-r2:0 python_targets_python3_10 python_targets_python3_11 >www-client/w3m-0.5.3_p20230121:0 -X -fbcon -gdk-pixbuf -gpm -imlib l10n_ja -lynxkeymap nls -nntp ssl unicode -xface >x11-apps/xprop-1.2.6:0 >x11-apps/xset-1.2.5:0 >x11-base/xcb-proto-1.16.0:0 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 >x11-base/xorg-proto-2023.2:0 -test >x11-libs/cairo-1.18.0:0 X -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -aqua -debug glib -gtk-doc -test >x11-libs/libICE-1.1.1-r1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >x11-libs/libSM-1.2.4:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc uuid >x11-libs/libX11-1.8.7:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -test >x11-libs/libXau-1.0.11:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libxcb-1.16-r1:0/1.12 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -doc -selinux -test xkb >x11-libs/libXdmcp-1.1.4-r2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libXext-1.3.5:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libXfixes-6.0.1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libXi-1.8.1:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libXmu-1.1.4:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/libXrender-0.9.11:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 >x11-libs/libXt-1.3.0:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc -test >x11-libs/libXtst-1.2.4:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -doc >x11-libs/pixman-0.43.2:0 -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_s390_32 -abi_s390_64 -abi_x86_32 abi_x86_64 -abi_x86_x32 -cpu_flags_arm_iwmmxt -cpu_flags_arm_iwmmxt2 -cpu_flags_arm_neon -cpu_flags_ppc_altivec cpu_flags_x86_mmxext cpu_flags_x86_sse2 cpu_flags_x86_ssse3 -loongson2f -static-libs -test >x11-libs/xtrans-1.5.0:0 -doc >x11-misc/compose-tables-1.8.7:0 >x11-misc/shared-mime-info-2.4:0 -test >x11-misc/util-macros-1.20.0:0 >x11-misc/xdg-utils-1.2.0_beta1_p20231203:0 -dbus -doc -gnome > > >############# ># build.log # >############# > > >>>> Unpacking source... >>>> Unpacking pypdf-4.0.1.gh.tar.gz to /var/tmp/portage/dev-python/pypdf-4.0.1/work >>>> Unpacking pypdf-sample-files-964fb47b0fbfa89864680582640ae4eedf143890.gh.tar.gz to /var/tmp/portage/dev-python/pypdf-4.0.1/work >>>> Source unpacked in /var/tmp/portage/dev-python/pypdf-4.0.1/work >>>> Preparing source in /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1 ... > * Build system packages: > * dev-python/gpep517 : 15 > * dev-python/installer : 0.7.0 > * dev-python/flit-core : 3.9.0 >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1 ... > * python3_10: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for pypdf-4.0.1 via flit_core.buildapi >python3.10 -m gpep517 build-wheel --prefix=/usr --backend flit_core.buildapi --output-fd 3 --wheel-dir /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/wheel >2024-01-29 06:10:26,595 gpep517 INFO Building wheel via backend flit_core.buildapi >2024-01-29 06:10:26,601 flit_core.wheel INFO Copying package file(s) from pypdf >2024-01-29 06:10:26,611 flit_core.wheel INFO Writing metadata files >2024-01-29 06:10:26,612 flit_core.wheel INFO Writing the record of files >2024-01-29 06:10:26,612 flit_core.wheel INFO Built wheel: /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:26,612 gpep517 INFO The backend produced /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/wheel/pypdf-4.0.1-py3-none-any.whl > * Installing pypdf-4.0.1-py3-none-any.whl to /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/install >python3.10 -m gpep517 install-wheel --destdir=/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/install --interpreter=/usr/bin/python3.10 --prefix=/usr --optimize=all /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:26,700 gpep517 INFO Installing /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/wheel/pypdf-4.0.1-py3-none-any.whl into /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/install >2024-01-29 06:10:27,220 gpep517 INFO Installation complete > * python3_11: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for pypdf-4.0.1 via flit_core.buildapi >python3.11 -m gpep517 build-wheel --prefix=/usr --backend flit_core.buildapi --output-fd 3 --wheel-dir /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/wheel >2024-01-29 06:10:27,526 gpep517 INFO Building wheel via backend flit_core.buildapi >2024-01-29 06:10:27,532 flit_core.wheel INFO Copying package file(s) from pypdf >2024-01-29 06:10:27,540 flit_core.wheel INFO Writing metadata files >2024-01-29 06:10:27,541 flit_core.wheel INFO Writing the record of files >2024-01-29 06:10:27,542 flit_core.wheel INFO Built wheel: /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:27,542 gpep517 INFO The backend produced /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/wheel/pypdf-4.0.1-py3-none-any.whl > * Installing pypdf-4.0.1-py3-none-any.whl to /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/install >python3.11 -m gpep517 install-wheel --destdir=/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/install --interpreter=/usr/bin/python3.11 --prefix=/usr --optimize=all /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:27,631 gpep517 INFO Installing /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/wheel/pypdf-4.0.1-py3-none-any.whl into /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_11/install >2024-01-29 06:10:28,163 gpep517 INFO Installation complete > * python3_12: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for pypdf-4.0.1 via flit_core.buildapi >python3.12 -m gpep517 build-wheel --prefix=/usr --backend flit_core.buildapi --output-fd 3 --wheel-dir /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/wheel >2024-01-29 06:10:28,478 gpep517 INFO Building wheel via backend flit_core.buildapi >2024-01-29 06:10:28,485 flit_core.wheel INFO Copying package file(s) from pypdf >2024-01-29 06:10:28,496 flit_core.wheel INFO Writing metadata files >2024-01-29 06:10:28,497 flit_core.wheel INFO Writing the record of files >2024-01-29 06:10:28,497 flit_core.wheel INFO Built wheel: /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:28,497 gpep517 INFO The backend produced /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/wheel/pypdf-4.0.1-py3-none-any.whl > * Installing pypdf-4.0.1-py3-none-any.whl to /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/install >python3.12 -m gpep517 install-wheel --destdir=/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/install --interpreter=/usr/bin/python3.12 --prefix=/usr --optimize=all /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/wheel/pypdf-4.0.1-py3-none-any.whl >2024-01-29 06:10:28,602 gpep517 INFO Installing /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/wheel/pypdf-4.0.1-py3-none-any.whl into /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_12/install >2024-01-29 06:10:29,206 gpep517 INFO Installation complete >>>> Source compiled. >>>> Test phase: dev-python/pypdf-4.0.1 > * python3_10: running distutils-r1_run_phase python_test >python3.10 -m pytest -vv -ra -l -Wdefault --color=yes -o console_output_style=count -o tmp_path_retention_count=0 -o tmp_path_retention_policy=failed --deselect tests/test_reader.py::test_decode_permissions --deselect tests/test_workflows.py::test_text_extraction_layout_mode --deselect tests/test_utils.py::test_deprecate_no_replacement --deselect tests/test_workflows.py::test_orientations --deselect tests/test_writer.py::test_remove_image_per_type -o addopts= -m not enable_socket >============================= test session starts ============================== >platform linux -- Python 3.10.13, pytest-8.0.0, pluggy-1.4.0 -- /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1-python3_10/install/usr/bin/python3.10 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1 >configfile: pyproject.toml >testpaths: tests >collecting ... collected 864 items / 279 deselected / 585 selected > >tests/test_annotations.py::test_text_annotation PASSED [ 1/585] >tests/test_annotations.py::test_free_text_annotation PASSED [ 2/585] >tests/test_constants.py::test_slash_prefix PASSED [ 3/585] >tests/test_constants.py::test_user_access_permissions__dict_handling PASSED [ 4/585] >tests/test_constants.py::test_user_access_permissions__all PASSED [ 5/585] >tests/test_encryption.py::test_encryption[unencrypted.pdf-False] PASSED [ 6/585] >tests/test_encryption.py::test_encryption[r2-empty-password.pdf-False] PASSED [ 7/585] >tests/test_encryption.py::test_encryption[r3-empty-password.pdf-False] PASSED [ 8/585] >tests/test_encryption.py::test_encryption[r2-user-password.pdf-False] PASSED [ 9/585] >tests/test_encryption.py::test_encryption[r2-owner-password.pdf-False] PASSED [ 10/585] >tests/test_encryption.py::test_encryption[r3-user-password.pdf-False] PASSED [ 11/585] >tests/test_encryption.py::test_encryption[r4-user-password.pdf-False] PASSED [ 12/585] >tests/test_encryption.py::test_encryption[r4-owner-password.pdf-False] PASSED [ 13/585] >tests/test_encryption.py::test_encryption[r4-aes-user-password.pdf-True] PASSED [ 14/585] >tests/test_encryption.py::test_encryption[r5-empty-password.pdf-True] PASSED [ 15/585] >tests/test_encryption.py::test_encryption[r5-user-password.pdf-True] PASSED [ 16/585] >tests/test_encryption.py::test_encryption[r5-owner-password.pdf-True] PASSED [ 17/585] >tests/test_encryption.py::test_encryption[r6-empty-password.pdf-True] PASSED [ 18/585] >tests/test_encryption.py::test_encryption[r6-user-password.pdf-True] PASSED [ 19/585] >tests/test_encryption.py::test_encryption[r6-owner-password.pdf-True] PASSED [ 20/585] >tests/test_encryption.py::test_pdf_with_both_passwords[r6-both-passwords.pdf-foo-bar] PASSED [ 21/585] >tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password0] PASSED [ 22/585] >tests/test_encryption.py::test_read_page_from_encrypted_file_aes_256[crazyones-encrypted-256.pdf-password1] PASSED [ 23/585] >tests/test_encryption.py::test_merge_encrypted_pdfs[names0] PASSED [ 24/585] >tests/test_encryption.py::test_encrypt_decrypt_with_cipher_class[CryptRC4] SKIPPEDissues/2494) [ 25/585] >tests/test_encryption.py::test_attempt_decrypt_unencrypted_pdf PASSED [ 26/585] >tests/test_encryption.py::test_alg_v5_generate_values PASSED [ 27/585] >tests/test_encryption.py::test_pdf_encrypt[RC4-40-False] PASSED [ 28/585] >tests/test_encryption.py::test_pdf_encrypt[RC4-128-False] PASSED [ 29/585] >tests/test_encryption.py::test_pdf_encrypt[AES-128-True] PASSED [ 30/585] >tests/test_encryption.py::test_pdf_encrypt[AES-256-R5-True] PASSED [ 31/585] >tests/test_encryption.py::test_pdf_encrypt[AES-256-True] PASSED [ 32/585] >tests/test_encryption.py::test_pdf_encrypt[ABCD-False] PASSED [ 33/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[1] PASSED [ 34/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[2] PASSED [ 35/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[3] PASSED [ 36/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[4] PASSED [ 37/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[5] PASSED [ 38/585] >tests/test_encryption.py::test_pdf_encrypt_multiple[10] PASSED [ 39/585] >tests/test_encryption.py::test_aes_decrypt_corrupted_data PASSED [ 40/585] >tests/test_encryption.py::test_encrypt_stream_dictionary PASSED [ 41/585] >tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyz] PASSED [ 42/585] >tests/test_filters.py::test_flate_decode_encode[1-ABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 43/585] >tests/test_filters.py::test_flate_decode_encode[1-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] PASSED [ 44/585] >tests/test_filters.py::test_flate_decode_encode[1-0123456789] PASSED [ 45/585] >tests/test_filters.py::test_flate_decode_encode[1-0123456789abcdefABCDEF] PASSED [ 46/585] >tests/test_filters.py::test_flate_decode_encode[1-!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~] PASSED [ 47/585] >tests/test_filters.py::test_flate_decode_encode[1- \t\n\r\x0b\x0c] PASSED [ 48/585] >tests/test_filters.py::test_flatedecode_unsupported_predictor PASSED [ 49/585] >tests/test_filters.py::test_flate_decode_decompress_with_array_params[params0] PASSED [ 50/585] >tests/test_filters.py::test_flate_decode_decompress_with_array_params[params1] PASSED [ 51/585] >tests/test_filters.py::test_ascii_hex_decode_method[empty] PASSED [ 52/585] >tests/test_filters.py::test_ascii_hex_decode_method[ascii_lowercase] PASSED [ 53/585] >tests/test_filters.py::test_ascii_hex_decode_method[ascii_uppercase] PASSED [ 54/585] >tests/test_filters.py::test_ascii_hex_decode_method[ascii_letters] PASSED [ 55/585] >tests/test_filters.py::test_ascii_hex_decode_method[digits] PASSED [ 56/585] >tests/test_filters.py::test_ascii_hex_decode_method[digits_whitespace] PASSED [ 57/585] >tests/test_filters.py::test_ascii_hex_decode_method[hexdigits] PASSED [ 58/585] >tests/test_filters.py::test_ascii_hex_decode_method[whitespace] PASSED [ 59/585] >tests/test_filters.py::test_ascii_hex_decode_missing_eod PASSED [ 60/585] >tests/test_filters.py::test_ascii85decode_with_overflow XFAIL [ 61/585] >tests/test_filters.py::test_ascii85decode_five_zero_bytes PASSED [ 62/585] >tests/test_filters.py::test_ccitparameters PASSED [ 63/585] >tests/test_filters.py::test_ccitt_get_parameters[None-0] PASSED [ 64/585] >tests/test_filters.py::test_ccitt_get_parameters[parameters1-1] PASSED [ 65/585] >tests/test_filters.py::test_ccitt_fax_decode PASSED [ 66/585] >tests/test_generic.py::test_float_object_exception PASSED [ 67/585] >tests/test_generic.py::test_number_object_exception PASSED [ 68/585] >tests/test_generic.py::test_number_object_no_exception PASSED [ 69/585] >tests/test_generic.py::test_create_string_object_exception PASSED [ 70/585] >tests/test_generic.py::test_boolean_object[true-true-4] PASSED [ 71/585] >tests/test_generic.py::test_boolean_object[false-false-5] PASSED [ 72/585] >tests/test_generic.py::test_boolean_object_write PASSED [ 73/585] >tests/test_generic.py::test_boolean_eq PASSED [ 74/585] >tests/test_generic.py::test_boolean_object_exception PASSED [ 75/585] >tests/test_generic.py::test_array_object_exception PASSED [ 76/585] >tests/test_generic.py::test_null_object_exception PASSED [ 77/585] >tests/test_generic.py::test_indirect_object_premature[] PASSED [ 78/585] >tests/test_generic.py::test_indirect_object_premature[False] PASSED [ 79/585] >tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 80/585] >tests/test_generic.py::test_indirect_object_premature[foo ] PASSED [ 81/585] >tests/test_generic.py::test_indirect_object_premature[foo bar] PASSED [ 82/585] >tests/test_generic.py::test_read_hex_string_from_stream PASSED [ 83/585] >tests/test_generic.py::test_read_hex_string_from_stream_exception PASSED [ 84/585] >tests/test_generic.py::test_read_string_from_stream_exception PASSED [ 85/585] >tests/test_generic.py::test_read_string_from_stream_not_in_escapedict_no_digit PASSED [ 86/585] >tests/test_generic.py::test_read_string_from_stream_multichar_eol PASSED [ 87/585] >tests/test_generic.py::test_read_string_from_stream_multichar_eol2 PASSED [ 88/585] >tests/test_generic.py::test_read_string_from_stream_excape_digit PASSED [ 89/585] >tests/test_generic.py::test_read_string_from_stream_excape_digit2 PASSED [ 90/585] >tests/test_generic.py::test_name_object PASSED [ 91/585] >tests/test_generic.py::test_destination_fit_r PASSED [ 92/585] >tests/test_generic.py::test_destination_fit_v PASSED [ 93/585] >tests/test_generic.py::test_outline_item_write_to_stream PASSED [ 94/585] >tests/test_generic.py::test_encode_pdfdocencoding_keyerror PASSED [ 95/585] >tests/test_generic.py::test_read_object_comment_exception PASSED [ 96/585] >tests/test_generic.py::test_read_object_empty PASSED [ 97/585] >tests/test_generic.py::test_read_object_invalid PASSED [ 98/585] >tests/test_generic.py::test_read_object_comment PASSED [ 99/585] >tests/test_generic.py::test_bytestringobject PASSED [100/585] >tests/test_generic.py::test_dictionaryobject_key_is_no_pdfobject PASSED [101/585] >tests/test_generic.py::test_dictionaryobject_xmp_meta PASSED [102/585] >tests/test_generic.py::test_dictionaryobject_value_is_no_pdfobject PASSED [103/585] >tests/test_generic.py::test_dictionaryobject_setdefault_key_is_no_pdfobject PASSED [104/585] >tests/test_generic.py::test_dictionaryobject_setdefault_value_is_no_pdfobject PASSED [105/585] >tests/test_generic.py::test_dictionaryobject_setdefault_value PASSED [106/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream PASSED [107/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_broken PASSED [108/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_unexpected_end PASSED [109/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_newline PASSED [110/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[True] PASSED [111/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_no_stream_length[False] PASSED [112/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-6-False] PASSED [113/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-10-False] PASSED [114/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[True-4-True] PASSED [115/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-6-False] PASSED [116/585] >tests/test_generic.py::test_dictionaryobject_read_from_stream_stream_stream_valid[False-10-False] PASSED [117/585] >tests/test_generic.py::test_rectangleobject PASSED [118/585] >tests/test_generic.py::test_textstringobject_exc PASSED [119/585] >tests/test_generic.py::test_textstringobject_autodetect_utf16 PASSED [120/585] >tests/test_generic.py::test_remove_child_not_in_tree PASSED [121/585] >tests/test_generic.py::test_remove_child_not_in_that_tree PASSED [122/585] >tests/test_generic.py::test_remove_child_not_found_in_tree PASSED [123/585] >tests/test_generic.py::test_remove_child_found_in_tree PASSED [124/585] >tests/test_generic.py::test_remove_child_in_tree PASSED [125/585] >tests/test_generic.py::test_annotation_builder_free_text PASSED [126/585] >tests/test_generic.py::test_annotation_builder_polygon PASSED [127/585] >tests/test_generic.py::test_annotation_builder_polyline PASSED [128/585] >tests/test_generic.py::test_annotation_builder_line PASSED [129/585] >tests/test_generic.py::test_annotation_builder_square PASSED [130/585] >tests/test_generic.py::test_annotation_builder_highlight PASSED [131/585] >tests/test_generic.py::test_annotation_builder_circle PASSED [132/585] >tests/test_generic.py::test_annotation_builder_link PASSED [133/585] >tests/test_generic.py::test_annotation_builder_text PASSED [134/585] >tests/test_generic.py::test_annotation_builder_popup PASSED [135/585] >tests/test_generic.py::test_checkboxradiobuttonattributes_opt PASSED [136/585] >tests/test_generic.py::test_name_object_invalid_decode PASSED [137/585] >tests/test_generic.py::test_indirect_object_invalid_read PASSED [138/585] >tests/test_generic.py::test_create_string_object_utf16be_bom PASSED [139/585] >tests/test_generic.py::test_create_string_object_utf16le_bom PASSED [140/585] >tests/test_generic.py::test_create_string_object_force PASSED [141/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.000000-0.0] PASSED [142/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.0_0] PASSED [143/585] >tests/test_generic.py::test_float_object_decimal_to_string[1.0-1_0] PASSED [144/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.123000-0.123] PASSED [145/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.000123000-0.000123] PASSED [146/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.0-0.0_1] PASSED [147/585] >tests/test_generic.py::test_float_object_decimal_to_string[0-0.0] PASSED [148/585] >tests/test_generic.py::test_float_object_decimal_to_string[1-1] PASSED [149/585] >tests/test_generic.py::test_float_object_decimal_to_string[1.0-1_1] PASSED [150/585] >tests/test_generic.py::test_float_object_decimal_to_string[1.01-1.01] PASSED [151/585] >tests/test_generic.py::test_float_object_decimal_to_string[1.010-1.01] PASSED [152/585] >tests/test_generic.py::test_float_object_decimal_to_string[0000.0000-0.0] PASSED [153/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.10101010-0.1010101] PASSED [154/585] >tests/test_generic.py::test_float_object_decimal_to_string[50000000000-50000000000] PASSED [155/585] >tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123-99900000000000000000] PASSED [156/585] >tests/test_generic.py::test_float_object_decimal_to_string[99900000000000000123.456000-99900000000000000000] PASSED [157/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123-0.00000000000000000000123] PASSED [158/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.00000123-0.00000123] PASSED [159/585] >tests/test_generic.py::test_float_object_decimal_to_string[0.00000000000000000000123000-0.00000000000000000000123] PASSED [160/585] >tests/test_generic.py::test_float_object_decimal_to_string[-4.6--4.6] PASSED [161/585] >tests/test_generic.py::test_cloning PASSED [162/585] >tests/test_generic.py::test_encodedstream_set_data PASSED [163/585] >tests/test_images.py::test_image_similarity_one PASSED [164/585] >tests/test_images.py::test_image_similarity_zero PASSED [165/585] >tests/test_images.py::test_image_similarity_mid PASSED [166/585] >tests/test_images.py::test_image_extraction[009-pdflatex-geotopo/page-23-Im2.png] PASSED [167/585] >tests/test_images.py::test_image_extraction[003-pdflatex-image/page-0-Im1.jpg] PASSED [168/585] >tests/test_images.py::test_image_extraction[018-base64-image/page-0-QuickPDFImd32aa1ab.png] PASSED [169/585] >tests/test_images.py::test_image_extraction[019-grayscale-image/page-0-X0.png] PASSED [170/585] >tests/test_javascript.py::test_add_js PASSED [171/585] >tests/test_javascript.py::test_added_js PASSED [172/585] >tests/test_merger.py::test_merger_operations_by_traditional_usage PASSED [173/585] >tests/test_merger.py::test_merger_operations_by_traditional_usage_with_writer PASSED [174/585] >tests/test_merger.py::test_merger_operations_by_semi_traditional_usage PASSED [175/585] >tests/test_merger.py::test_merger_operations_by_semi_traditional_usage_with_writer PASSED [176/585] >tests/test_merger.py::test_merger_operation_by_new_usage PASSED [177/585] >tests/test_merger.py::test_merger_operation_by_new_usage_with_writer PASSED [178/585] >tests/test_merger.py::test_merge_page_exception PASSED [179/585] >tests/test_merger.py::test_merge_page_exception_with_writer PASSED [180/585] >tests/test_merger.py::test_merge_page_tuple PASSED [181/585] >tests/test_merger.py::test_merge_page_tuple_with_writer PASSED [182/585] >tests/test_merger.py::test_merge_write_closed_fh PASSED [183/585] >tests/test_merger.py::test_merge_write_closed_fh_with_writer PASSED [184/585] >tests/test_merger.py::test_deprecate_pdfmerger PASSED [185/585] >tests/test_page.py::test_read[001-trivial/minimal-document.pdf] PASSED [186/585] >tests/test_page.py::test_read[002-trivial-libre-office-writer/002-trivial-libre-office-writer.pdf] PASSED [187/585] >tests/test_page.py::test_read[003-pdflatex-image/pdflatex-image.pdf] PASSED [188/585] >tests/test_page.py::test_read[004-pdflatex-4-pages/pdflatex-4-pages.pdf] PASSED [189/585] >tests/test_page.py::test_read[006-pdflatex-outline/pdflatex-outline.pdf] PASSED [190/585] >tests/test_page.py::test_read[007-imagemagick-images/imagemagick-ASCII85Decode.pdf] PASSED [191/585] >tests/test_page.py::test_read[007-imagemagick-images/imagemagick-images.pdf] PASSED [192/585] >tests/test_page.py::test_read[007-imagemagick-images/imagemagick-CCITTFaxDecode.pdf] PASSED [193/585] >tests/test_page.py::test_read[007-imagemagick-images/imagemagick-lzw.pdf] PASSED [194/585] >tests/test_page.py::test_read[008-reportlab-inline-image/inline-image.pdf] PASSED [195/585] >tests/test_page.py::test_read[009-pdflatex-geotopo/GeoTopo.pdf] PASSED [196/585] >tests/test_page.py::test_read[009-pdflatex-geotopo/GeoTopo-komprimiert.pdf] PASSED [197/585] >tests/test_page.py::test_read[010-pdflatex-forms/pdflatex-forms.pdf] PASSED [198/585] >tests/test_page.py::test_read[011-google-doc-document/google-doc-document.pdf] PASSED [199/585] >tests/test_page.py::test_read[012-libreoffice-form/libreoffice-form.pdf] PASSED [200/585] >tests/test_page.py::test_read[013-reportlab-overlay/reportlab-overlay.pdf] PASSED [201/585] >tests/test_page.py::test_read[014-outlines/mistitled_outlines_example.pdf] PASSED [202/585] >tests/test_page.py::test_read[015-arabic/habibi.pdf] PASSED [203/585] >tests/test_page.py::test_read[015-arabic/habibi-rotated.pdf] PASSED [204/585] >tests/test_page.py::test_read[015-arabic/habibi-oneline-cmap.pdf] PASSED [205/585] >tests/test_page.py::test_read[016-libre-office-link/libre-office-link.pdf] PASSED [206/585] >tests/test_page.py::test_read[017-unreadable-meta-data/unreadablemetadata.pdf] PASSED [207/585] >tests/test_page.py::test_read[018-base64-image/base64image.pdf] PASSED [208/585] >tests/test_page.py::test_read[019-grayscale-image/grayscale-image.pdf] PASSED [209/585] >tests/test_page.py::test_read[020-xmp/output_with_metadata_pymupdf.pdf] PASSED [210/585] >tests/test_page.py::test_read[021-pdfa/crazyones-pdfa.pdf] PASSED [211/585] >tests/test_page.py::test_read[022-pdfkit/pdfkit.pdf] PASSED [212/585] >tests/test_page.py::test_read[023-cmyk-image/cmyk-image.pdf] PASSED [213/585] >tests/test_page.py::test_read[024-annotations/annotated_pdf.pdf] PASSED [214/585] >tests/test_page.py::test_read[025-attachment/with-attachment.pdf] PASSED [215/585] >tests/test_page.py::test_mediabox_expansion_after_rotation[175-680-844] PASSED [216/585] >tests/test_page.py::test_mediabox_expansion_after_rotation[45-994-994] PASSED [217/585] >tests/test_page.py::test_mediabox_expansion_after_rotation[-80-888-742] PASSED [218/585] >tests/test_page.py::test_transformation_equivalence PASSED [219/585] >tests/test_page.py::test_transformation_equivalence2 PASSED [220/585] >tests/test_page.py::test_get_user_unit_property PASSED [221/585] >tests/test_page.py::test_page_transformations PASSED [222/585] >tests/test_page.py::test_compress_content_streams[pdf_path0-None] PASSED [223/585] >tests/test_page.py::test_compress_content_streams[pdf_path1-None] PASSED [224/585] >tests/test_page.py::test_compress_content_streams[pdf_path2-None] PASSED [225/585] >tests/test_page.py::test_compress_content_streams[pdf_path3-openpassword] PASSED [226/585] >tests/test_page.py::test_page_properties PASSED [227/585] >tests/test_page.py::test_page_rotation PASSED [228/585] >tests/test_page.py::test_page_indirect_rotation PASSED [229/585] >tests/test_page.py::test_page_scale PASSED [230/585] >tests/test_page.py::test_add_transformation_on_page_without_contents PASSED [231/585] >tests/test_page.py::test_extract_text_visitor_callbacks PASSED [232/585] >tests/test_page.py::test_get_fonts[pdf_path0-None-embedded0-unembedded0] PASSED [233/585] >tests/test_page.py::test_get_fonts[pdf_path1-None-embedded1-unembedded1] PASSED [234/585] >tests/test_page.py::test_get_fonts[pdf_path2-openpassword-embedded2-unembedded2] PASSED [235/585] >tests/test_page.py::test_get_fonts[pdf_path3-None-embedded3-unembedded3] PASSED [236/585] >tests/test_page.py::test_get_fonts[pdf_path4-None-embedded4-unembedded4] PASSED [237/585] >tests/test_page.py::test_get_fonts[pdf_path5-None-embedded5-unembedded5] PASSED [238/585] >tests/test_page.py::test_get_fonts[pdf_path6-None-embedded6-unembedded6] PASSED [239/585] >tests/test_page.py::test_annotation_getter PASSED [240/585] >tests/test_page.py::test_annotation_setter PASSED [241/585] >tests/test_page.py::test_read_link_annotation PASSED [242/585] >tests/test_page.py::test_merge_page_reproducible_with_proc_set PASSED [243/585] >tests/test_page.py::test_merge_resources[no resources] PASSED [244/585] >tests/test_page.py::test_merge_resources[no overlap] PASSED [245/585] >tests/test_page.py::test_merge_resources[overlap, matching values] PASSED [246/585] >tests/test_page.py::test_merge_resources[overlap, different values] PASSED [247/585] >tests/test_page.py::test_merge_resources[crafted, different values] PASSED [248/585] >tests/test_page.py::test_merge_resources[crafted, matching value in chain] PASSED [249/585] >tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, different value] PASSED [250/585] >tests/test_page.py::test_merge_resources[crafted, overlaps with previous rename, matching value] PASSED [251/585] >tests/test_page.py::test_merge_page_resources_smoke_test PASSED [252/585] >tests/test_page.py::test_pages_printing PASSED [253/585] >tests/test_page.py::test_pdf_pages_missing_type PASSED [254/585] >tests/test_page.py::test_compression SKIPPED (could not import 'fpdf': >No module named 'fpdf') [255/585] >tests/test_page.py::test_merge_with_no_resources PASSED [256/585] >tests/test_page.py::test_get_contents_from_nullobject PASSED [257/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[1-I] PASSED [258/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[2-II] PASSED [259/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[3-III] PASSED [260/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[4-IV] PASSED [261/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[5-V] PASSED [262/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[6-VI] PASSED [263/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[7-VII] PASSED [264/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[8-VIII] PASSED [265/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[9-IX] PASSED [266/585] >tests/test_page_labels.py::test_number2uppercase_roman_numeral[10-X] PASSED [267/585] >tests/test_page_labels.py::test_number2lowercase_roman_numeral PASSED [268/585] >tests/test_page_labels.py::test_number2lowercase_letter[1-a] PASSED [269/585] >tests/test_page_labels.py::test_number2lowercase_letter[2-b] PASSED [270/585] >tests/test_page_labels.py::test_number2lowercase_letter[3-c] PASSED [271/585] >tests/test_page_labels.py::test_number2lowercase_letter[25-y] PASSED [272/585] >tests/test_page_labels.py::test_number2lowercase_letter[26-z] PASSED [273/585] >tests/test_page_labels.py::test_number2lowercase_letter[27-aa] PASSED [274/585] >tests/test_page_labels.py::test_number2lowercase_letter[28-ab] PASSED [275/585] >tests/test_page_labels.py::test_number2uppercase_letter PASSED [276/585] >tests/test_pagerange.py::test_equality PASSED [277/585] >tests/test_pagerange.py::test_str[page_range0-0:5] PASSED [278/585] >tests/test_pagerange.py::test_str[page_range1-0:5:2] PASSED [279/585] >tests/test_pagerange.py::test_str[-1--1:] PASSED [280/585] >tests/test_pagerange.py::test_str[0-0] PASSED [281/585] >tests/test_pagerange.py::test_repr[page_range0-PageRange('0:5')] PASSED [282/585] >tests/test_pagerange.py::test_repr[page_range1-PageRange('0:5:2')] PASSED [283/585] >tests/test_pagerange.py::test_equality_other_objectc PASSED [284/585] >tests/test_pagerange.py::test_idempotency PASSED [285/585] >tests/test_pagerange.py::test_str_init[42-expected0] PASSED [286/585] >tests/test_pagerange.py::test_str_init[1:2-expected1] PASSED [287/585] >tests/test_pagerange.py::test_str_init_error PASSED [288/585] >tests/test_pagerange.py::test_parse_filename_page_ranges[params0-expected0] PASSED [289/585] >tests/test_pagerange.py::test_parse_filename_page_ranges[params1-expected1] PASSED [290/585] >tests/test_pagerange.py::test_parse_filename_page_ranges_err PASSED [291/585] >tests/test_pagerange.py::test_addition[a0-b0-expected0] PASSED [292/585] >tests/test_pagerange.py::test_addition[a1-b1-expected1] PASSED [293/585] >tests/test_pagerange.py::test_addition[a2-b2-expected2] PASSED [294/585] >tests/test_pagerange.py::test_addition_gap[a0-b0] PASSED [295/585] >tests/test_pagerange.py::test_addition_gap[a1-b1] PASSED [296/585] >tests/test_pagerange.py::test_addition_non_page_range PASSED [297/585] >tests/test_pagerange.py::test_addition_stride PASSED [298/585] >tests/test_papersizes.py::test_din_a0_paper_size PASSED [299/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions0] PASSED [300/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions1] PASSED [301/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions2] PASSED [302/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions3] PASSED [303/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions4] PASSED [304/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions5] PASSED [305/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions6] PASSED [306/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions7] PASSED [307/585] >tests/test_papersizes.py::test_din_a_aspect_ratio[dimensions8] PASSED [308/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a0-dimensions_b0] PASSED [309/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a1-dimensions_b1] PASSED [310/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a2-dimensions_b2] PASSED [311/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a3-dimensions_b3] PASSED [312/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a4-dimensions_b4] PASSED [313/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a5-dimensions_b5] PASSED [314/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a6-dimensions_b6] PASSED [315/585] >tests/test_papersizes.py::test_din_a_size_doubling[dimensions_a7-dimensions_b7] PASSED [316/585] >tests/test_pdfa.py::test_pdfa[src0-None] PASSED [317/585] >tests/test_protocols.py::test_pdfobjectprotocol PASSED [318/585] >tests/test_reader.py::test_get_num_pages[selenium-pypdf-issue-177.pdf-1] PASSED [319/585] >tests/test_reader.py::test_get_num_pages[pdflatex-outline.pdf-4] PASSED [320/585] >tests/test_reader.py::test_read_metadata[crazyones] PASSED [321/585] >tests/test_reader.py::test_read_metadata[metadata] PASSED [322/585] >tests/test_reader.py::test_iss1943 PASSED [323/585] >tests/test_reader.py::test_broken_meta_data[pdf_path0] PASSED [324/585] >tests/test_reader.py::test_get_annotations[src0] PASSED [325/585] >tests/test_reader.py::test_get_annotations[src1] PASSED [326/585] >tests/test_reader.py::test_get_attachments[src0-1] PASSED [327/585] >tests/test_reader.py::test_get_attachments[src1-0] PASSED [328/585] >tests/test_reader.py::test_get_outline[src0-9] PASSED [329/585] >tests/test_reader.py::test_get_outline[src1-0] PASSED [330/585] >tests/test_reader.py::test_get_images[pdflatex-outline.pdf-expected_images0] PASSED [331/585] >tests/test_reader.py::test_get_images[crazyones.pdf-expected_images1] PASSED [332/585] >tests/test_reader.py::test_get_images[git.pdf-expected_images2] PASSED [333/585] >tests/test_reader.py::test_get_images[imagemagick-lzw.pdf-expected_images3] XFAIL [334/585] >tests/test_reader.py::test_get_images[imagemagick-ASCII85Decode.pdf-expected_images4] XFAIL [335/585] >tests/test_reader.py::test_get_images[imagemagick-CCITTFaxDecode.pdf-expected_images5] PASSED [336/585] >tests/test_reader.py::test_get_images[src6-expected_images6] PASSED [337/585] >tests/test_reader.py::test_get_images_raw[True-False--1-False-warning_msgs0] PASSED [338/585] >tests/test_reader.py::test_get_images_raw[True-True--1-True-] FAILED [339/585] >tests/test_reader.py::test_get_images_raw[False-False--1-False-warning_msgs2] PASSED [340/585] >tests/test_reader.py::test_get_images_raw[False-True--1-False-warning_msgs3] PASSED [341/585] >tests/test_reader.py::test_get_images_raw[True-False-0-True-] FAILED [342/585] >tests/test_reader.py::test_get_images_raw[True-True-0-True-] FAILED [343/585] >tests/test_reader.py::test_get_images_raw[False-False-0-False-warning_msgs6] PASSED [344/585] >tests/test_reader.py::test_get_images_raw[False-True-0-False-warning_msgs7] PASSED [345/585] >tests/test_reader.py::test_issue297 PASSED [346/585] >tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False0] PASSED [347/585] >tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-test-False1] PASSED [348/585] >tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True0] PASSED [349/585] >tests/test_reader.py::test_get_page_of_encrypted_file[encrypted-file.pdf-qwerty-True1] PASSED [350/585] >tests/test_reader.py::test_get_form[form.pdf-expected0-expected_get_fields0] PASSED [351/585] >tests/test_reader.py::test_get_form[form_acrobatReader.pdf-expected1-expected_get_fields1] PASSED [352/585] >tests/test_reader.py::test_get_form[form_evince.pdf-expected2-expected_get_fields2] PASSED [353/585] >tests/test_reader.py::test_get_form[crazyones.pdf-expected3-None] PASSED [354/585] >tests/test_reader.py::test_get_page_number[form.pdf-0] PASSED [355/585] >tests/test_reader.py::test_get_page_number[pdflatex-outline.pdf-2] PASSED [356/585] >tests/test_reader.py::test_get_page_layout[form.pdf-None] PASSED [357/585] >tests/test_reader.py::test_get_page_layout[AutoCad_Simple.pdf-/SinglePage] PASSED [358/585] >tests/test_reader.py::test_get_page_mode[form.pdf-/UseNone] PASSED [359/585] >tests/test_reader.py::test_get_page_mode[crazyones.pdf-None] PASSED [360/585] >tests/test_reader.py::test_read_empty PASSED [361/585] >tests/test_reader.py::test_read_malformed_header PASSED [362/585] >tests/test_reader.py::test_read_malformed_body PASSED [363/585] >tests/test_reader.py::test_read_prev_0_trailer FAILED [364/585] >tests/test_reader.py::test_read_missing_startxref PASSED [365/585] >tests/test_reader.py::test_read_unknown_zero_pages FAILED [366/585] >tests/test_reader.py::test_read_encrypted_without_decryption PASSED [367/585] >tests/test_reader.py::test_get_destination_page_number PASSED [368/585] >tests/test_reader.py::test_do_not_get_stuck_on_large_files_without_start_xref PASSED [369/585] >tests/test_reader.py::test_reader_properties PASSED [370/585] >tests/test_reader.py::test_issue604[True] FAILED [371/585] >tests/test_reader.py::test_issue604[False] PASSED [372/585] >tests/test_reader.py::test_user_access_permissions PASSED [373/585] >tests/test_reader.py::test_pages_attribute PASSED [374/585] >tests/test_reader.py::test_convert_to_int PASSED [375/585] >tests/test_reader.py::test_convert_to_int_error PASSED [376/585] >tests/test_reader.py::test_get_object PASSED [377/585] >tests/test_reader.py::test_extract_text_hello_world PASSED [378/585] >tests/test_reader.py::test_read_path PASSED [379/585] >tests/test_reader.py::test_read_not_binary_mode PASSED [380/585] >tests/test_reader.py::test_form_topname_with_and_without_acroform PASSED [381/585] >tests/test_reader.py::test_xfa[src0] PASSED [382/585] >tests/test_reader.py::test_xfa[src1] PASSED [383/585] >tests/test_reader.py::test_header[src0-%PDF-1.5] PASSED [384/585] >tests/test_reader.py::test_header[src1-%PDF-1.5] PASSED [385/585] >tests/test_reader.py::test_outline_title_issue_1121 PASSED [386/585] >tests/test_reader.py::test_outline_count PASSED [387/585] >tests/test_reader.py::test_outline_missing_title PASSED [388/585] >tests/test_reader.py::test_outline_with_invalid_destinations PASSED [389/585] >tests/test_reader.py::test_wrong_password_error PASSED [390/585] >tests/test_reader.py::test_get_page_number_by_indirect PASSED [391/585] >tests/test_reader.py::test_page_labels[selenium-pypdf-issue-177.pdf] PASSED [392/585] >tests/test_reader.py::test_page_labels[encrypted_doc_no_id.pdf] PASSED [393/585] >tests/test_reader.py::test_page_labels[pdflatex-outline.pdf] PASSED [394/585] >tests/test_reader.py::test_page_labels[GeoTopo.pdf] PASSED [395/585] >tests/test_reader.py::test_broken_file_header PASSED [396/585] >tests/test_text_extraction.py::test_multi_language[None] PASSED [397/585] >tests/test_text_extraction.py::test_multi_language[<lambda>] PASSED [398/585] >tests/test_text_extraction.py::test_visitor_text_matrices[inkscape-abc.pdf-constraints0] PASSED [399/585] >tests/test_text_extraction.py::test_layout_mode_font_class_to_dict PASSED [400/585] >tests/test_text_extraction.py::test_layout_mode_uncommon_operators PASSED [401/585] >tests/test_utils.py::test_skip_over_whitespace[stream0-False] PASSED [402/585] >tests/test_utils.py::test_skip_over_whitespace[stream1-False] PASSED [403/585] >tests/test_utils.py::test_skip_over_whitespace[stream2-True] PASSED [404/585] >tests/test_utils.py::test_skip_over_whitespace[stream3-True] PASSED [405/585] >tests/test_utils.py::test_skip_over_whitespace[stream4-True] PASSED [406/585] >tests/test_utils.py::test_skip_over_whitespace[stream5-True] PASSED [407/585] >tests/test_utils.py::test_check_if_whitespace_only[foo-False] PASSED [408/585] >tests/test_utils.py::test_check_if_whitespace_only[ a-False] PASSED [409/585] >tests/test_utils.py::test_check_if_whitespace_only[ a\n b-False] PASSED [410/585] >tests/test_utils.py::test_check_if_whitespace_only[-True] PASSED [411/585] >tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [412/585] >tests/test_utils.py::test_check_if_whitespace_only[ -True] PASSED [413/585] >tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [414/585] >tests/test_utils.py::test_check_if_whitespace_only[ \n-True] PASSED [415/585] >tests/test_utils.py::test_read_until_whitespace PASSED [416/585] >tests/test_utils.py::test_skip_over_comment[stream0-] PASSED [417/585] >tests/test_utils.py::test_skip_over_comment[stream1-] PASSED [418/585] >tests/test_utils.py::test_skip_over_comment[stream2- ] PASSED [419/585] >tests/test_utils.py::test_skip_over_comment[stream3-bar] PASSED [420/585] >tests/test_utils.py::test_read_until_regex_premature_ending_name PASSED [421/585] >tests/test_utils.py::test_matrix_multiply[a0-b0-expected0] PASSED [422/585] >tests/test_utils.py::test_matrix_multiply[a1-b1-expected1] PASSED [423/585] >tests/test_utils.py::test_matrix_multiply[a2-b2-expected2] PASSED [424/585] >tests/test_utils.py::test_mark_location PASSED [425/585] >tests/test_utils.py::test_b[foo-foo] PASSED [426/585] >tests/test_utils.py::test_b[\U0001f600-\xf0\x9f\x98\x80] PASSED [427/585] >tests/test_utils.py::test_b[\u2030-\xe2\x80\xb0] PASSED [428/585] >tests/test_utils.py::test_b[\u25b7-\xe2\x96\xb7] PASSED [429/585] >tests/test_utils.py::test_b[\u4e16-\xe4\xb8\x96] PASSED [430/585] >tests/test_utils.py::test_b[\U0001f600\U0001f603-\xf0\x9f\x98\x80\xf0\x9f\x98\x83] PASSED [431/585] >tests/test_utils.py::test_paeth_predictor[0-0-0-0] PASSED [432/585] >tests/test_utils.py::test_paeth_predictor[1-0-0-1] PASSED [433/585] >tests/test_utils.py::test_paeth_predictor[0-1-0-1] PASSED [434/585] >tests/test_utils.py::test_paeth_predictor[0-0-1-0] PASSED [435/585] >tests/test_utils.py::test_paeth_predictor[1-2-3-1] PASSED [436/585] >tests/test_utils.py::test_paeth_predictor[2-1-3-1] PASSED [437/585] >tests/test_utils.py::test_paeth_predictor[1-3-2-2] PASSED [438/585] >tests/test_utils.py::test_paeth_predictor[3-1-2-2] PASSED [439/585] >tests/test_utils.py::test_paeth_predictor[3-2-1-3] PASSED [440/585] >tests/test_utils.py::test_read_block_backwards[abc-1-0--1] PASSED [441/585] >tests/test_utils.py::test_read_block_backwards[abc-1-1-a-0] PASSED [442/585] >tests/test_utils.py::test_read_block_backwards[abc-2-1-b-1] PASSED [443/585] >tests/test_utils.py::test_read_block_backwards[abc-2-2-ab-0] PASSED [444/585] >tests/test_utils.py::test_read_block_backwards[abc-3-1-c-2] PASSED [445/585] >tests/test_utils.py::test_read_block_backwards[abc-3-2-bc-1] PASSED [446/585] >tests/test_utils.py::test_read_block_backwards[abc-3-3-abc-0] PASSED [447/585] >tests/test_utils.py::test_read_block_backwards[-0-1-None-0] PASSED [448/585] >tests/test_utils.py::test_read_block_backwards[a-0-1-None-0] PASSED [449/585] >tests/test_utils.py::test_read_block_backwards[abc-0-10-None-0] PASSED [450/585] >tests/test_utils.py::test_read_block_backwards_at_start PASSED [451/585] >tests/test_utils.py::test_read_previous_line[0] PASSED [452/585] >tests/test_utils.py::test_read_previous_line[1] PASSED [453/585] >tests/test_utils.py::test_read_previous_line[2] PASSED [454/585] >tests/test_utils.py::test_read_previous_line[3] PASSED [455/585] >tests/test_utils.py::test_read_previous_line[4] PASSED [456/585] >tests/test_utils.py::test_read_previous_line[5] PASSED [457/585] >tests/test_utils.py::test_read_previous_line[6] PASSED [458/585] >tests/test_utils.py::test_read_previous_line[7] PASSED [459/585] >tests/test_utils.py::test_read_previous_line2 PASSED [460/585] >tests/test_utils.py::test_get_max_pdf_version_header PASSED [461/585] >tests/test_utils.py::test_read_block_backwards_exception PASSED [462/585] >tests/test_utils.py::test_deprecate_with_replacement PASSED [463/585] >tests/test_utils.py::test_deprecation_no_replacement PASSED [464/585] >tests/test_utils.py::test_rename_kwargs PASSED [465/585] >tests/test_utils.py::test_human_readable_bytes[123-123 Byte] PASSED [466/585] >tests/test_utils.py::test_human_readable_bytes[1234-1.2 kB] PASSED [467/585] >tests/test_utils.py::test_human_readable_bytes[123456-123.5 kB] PASSED [468/585] >tests/test_utils.py::test_human_readable_bytes[1234567-1.2 MB] PASSED [469/585] >tests/test_utils.py::test_human_readable_bytes[1234567890-1.2 GB] PASSED [470/585] >tests/test_utils.py::test_human_readable_bytes[1234567890000-1234.6 GB] PASSED [471/585] >tests/test_utils.py::test_file_class PASSED [472/585] >tests/test_utils.py::test_parse_datetime[D:20210318000756-2021-03-18T00:07:56] PASSED [473/585] >tests/test_utils.py::test_parse_datetime[20210318000756-2021-03-18T00:07:56] PASSED [474/585] >tests/test_utils.py::test_parse_datetime[D:2021-2021-01-01T00:00:00] PASSED [475/585] >tests/test_utils.py::test_parse_datetime[D:202103-2021-03-01T00:00:00] PASSED [476/585] >tests/test_utils.py::test_parse_datetime[D:20210304-2021-03-04T00:00:00] PASSED [477/585] >tests/test_utils.py::test_parse_datetime[D:2021030402-2021-03-04T02:00:00] PASSED [478/585] >tests/test_utils.py::test_parse_datetime[D:20210408054711-2021-04-08T05:47:11] PASSED [479/585] >tests/test_utils.py::test_parse_datetime[D:20210408054711Z-2021-04-08T05:47:11+00:00] PASSED [480/585] >tests/test_utils.py::test_parse_datetime[D:20210408054711Z00-2021-04-08T05:47:11+00:00] PASSED [481/585] >tests/test_utils.py::test_parse_datetime[D:20210408054711Z0000-2021-04-08T05:47:11+00:00] PASSED [482/585] >tests/test_utils.py::test_parse_datetime[D:20210408075331+02'00'-2021-04-08T07:53:31+02:00] PASSED [483/585] >tests/test_utils.py::test_parse_datetime[D:20210408075331-03'00'-2021-04-08T07:53:31-03:00] PASSED [484/585] >tests/test_utils.py::test_parse_datetime_err PASSED [485/585] >tests/test_utils.py::test_is_sublist PASSED [486/585] >tests/test_utils.py::test_version_compare[1-2-True] PASSED [487/585] >tests/test_utils.py::test_version_compare[2-1-False] PASSED [488/585] >tests/test_utils.py::test_version_compare[1-1-False] PASSED [489/585] >tests/test_utils.py::test_version_compare[1.0-1.1-True] PASSED [490/585] >tests/test_utils.py::test_version_compare[1-1.1-True] PASSED [491/585] >tests/test_utils.py::test_version_compare[1a-2-True] PASSED [492/585] >tests/test_utils.py::test_version_compare[2a-1-False] PASSED [493/585] >tests/test_utils.py::test_version_compare[1a-1-False] PASSED [494/585] >tests/test_utils.py::test_version_compare[1.0a-1.1-True] PASSED [495/585] >tests/test_utils.py::test_version_compare[1a-1.1-False] PASSED [496/585] >tests/test_utils.py::test_version_compare[1-2a-True] PASSED [497/585] >tests/test_utils.py::test_version_compare[2-1a-False] PASSED [498/585] >tests/test_utils.py::test_version_compare[1-1a-True] PASSED [499/585] >tests/test_utils.py::test_version_compare[1.0-1.1a-True] PASSED [500/585] >tests/test_utils.py::test_version_compare[1-1.1a-True] PASSED [501/585] >tests/test_utils.py::test_version_compare[-0.0.0-True] PASSED [502/585] >tests/test_utils.py::test_version_compare[1.0a-1.0-False] PASSED [503/585] >tests/test_utils.py::test_version_compare[1.0-1.0a-True] PASSED [504/585] >tests/test_utils.py::test_version_compare_equal_str PASSED [505/585] >tests/test_utils.py::test_version_compare_lt_str PASSED [506/585] >tests/test_utils.py::test_bad_version PASSED [507/585] >tests/test_workflows.py::test_basic_features PASSED [508/585] >tests/test_workflows.py::test_dropdown_items PASSED [509/585] >tests/test_workflows.py::test_pdfreader_file_load PASSED [510/585] >tests/test_workflows.py::test_pdfreader_jpeg_image PASSED [511/585] >tests/test_workflows.py::test_decrypt PASSED [512/585] >tests/test_workflows.py::test_text_extraction_encrypted PASSED [513/585] >tests/test_workflows.py::test_rotate[0] PASSED [514/585] >tests/test_workflows.py::test_rotate[90] PASSED [515/585] >tests/test_workflows.py::test_rotate[180] PASSED [516/585] >tests/test_workflows.py::test_rotate[270] PASSED [517/585] >tests/test_workflows.py::test_rotate[360] PASSED [518/585] >tests/test_workflows.py::test_rotate[-90] PASSED [519/585] >tests/test_workflows.py::test_rotate_45 PASSED [520/585] >tests/test_workflows.py::test_merge_output PASSED [521/585] >tests/test_workflows.py::test_replace_image PASSED [522/585] >tests/test_workflows.py::test_text_extraction_invalid_mode PASSED [523/585] >tests/test_writer.py::test_writer_exception_non_binary PASSED [524/585] >tests/test_writer.py::test_writer_clone PASSED [525/585] >tests/test_writer.py::test_writer_clone_bookmarks PASSED [526/585] >tests/test_writer.py::test_writer_operations_by_traditional_usage[str-True] PASSED [527/585] >tests/test_writer.py::test_writer_operations_by_traditional_usage[Path-True] PASSED [528/585] >tests/test_writer.py::test_writer_operations_by_traditional_usage[convert2-False] PASSED [529/585] >tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[str-True] PASSED [530/585] >tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[Path-True] PASSED [531/585] >tests/test_writer.py::test_writer_operations_by_semi_traditional_usage[convert2-False] PASSED [532/585] >tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[str-True] PASSED [533/585] >tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[Path-True] PASSED [534/585] >tests/test_writer.py::test_writer_operations_by_semi_new_traditional_usage[convert2-False] PASSED [535/585] >tests/test_writer.py::test_writer_operation_by_new_usage[str-True] PASSED [536/585] >tests/test_writer.py::test_writer_operation_by_new_usage[Path-True] PASSED [537/585] >tests/test_writer.py::test_writer_operation_by_new_usage[convert2-False] PASSED [538/585] >tests/test_writer.py::test_remove_images[side-by-side-subfig.pdf] PASSED [539/585] >tests/test_writer.py::test_remove_images[reportlab-inline-image.pdf] PASSED [540/585] >tests/test_writer.py::test_remove_text[side-by-side-subfig.pdf] PASSED [541/585] >tests/test_writer.py::test_remove_text[reportlab-inline-image.pdf] PASSED [542/585] >tests/test_writer.py::test_remove_text_all_operators PASSED [543/585] >tests/test_writer.py::test_write_metadata PASSED [544/585] >tests/test_writer.py::test_fill_form PASSED [545/585] >tests/test_writer.py::test_fill_form_with_qualified PASSED [546/585] >tests/test_writer.py::test_encrypt[True-userpwd-ownerpwd] PASSED [547/585] >tests/test_writer.py::test_encrypt[False-userpwd-ownerpwd] PASSED [548/585] >tests/test_writer.py::test_add_outline_item PASSED [549/585] >tests/test_writer.py::test_add_named_destination PASSED [550/585] >tests/test_writer.py::test_add_named_destination_sort_order PASSED [551/585] >tests/test_writer.py::test_add_uri PASSED [552/585] >tests/test_writer.py::test_link_annotation PASSED [553/585] >tests/test_writer.py::test_io_streams PASSED [554/585] >tests/test_writer.py::test_regression_issue670 PASSED [555/585] >tests/test_writer.py::test_issue301 PASSED [556/585] >tests/test_writer.py::test_append_pages_from_reader_append PASSED [557/585] >tests/test_writer.py::test_pdf_header PASSED [558/585] >tests/test_writer.py::test_write_dict_stream_object PASSED [559/585] >tests/test_writer.py::test_add_single_annotation PASSED [560/585] >tests/test_writer.py::test_colors_in_outline_item PASSED [561/585] >tests/test_writer.py::test_write_empty_stream PASSED [562/585] >tests/test_writer.py::test_startup_dest PASSED [563/585] >tests/test_writer.py::test_threads_empty PASSED [564/585] >tests/test_writer.py::test_set_page_label PASSED [565/585] >tests/test_writer.py::test_attachments PASSED [566/585] >tests/test_writer.py::test_update_form_fields PASSED [567/585] >tests/test_writer.py::test_empty_objects_before_cloning PASSED [568/585] >tests/test_writer.py::test_watermarking_reportlab_rendering SKIPPED [569/585] >tests/test_writer.py::test_missing_fields PASSED [570/585] >tests/test_writer.py::test_missing_info PASSED [571/585] >tests/test_writer.py::test_extra_spaces_in_da_text PASSED [572/585] >tests/test_writer.py::test_merging_many_temporary_files SKIPPED (could >not import 'fpdf': No module named 'fpdf') [573/585] >tests/test_xmp.py::test_read_xmp_metadata_samples[src0] PASSED [574/585] >tests/test_xmp.py::test_read_xmp_metadata[src0-True] PASSED [575/585] >tests/test_xmp.py::test_read_xmp_metadata[src1-False] PASSED [576/585] >tests/test_xmp.py::test_converter_date PASSED [577/585] >tests/test_xmp.py::test_modify_date PASSED [578/585] >tests/test_xmp.py::test_identity_function[a] PASSED [579/585] >tests/test_xmp.py::test_identity_function[42] PASSED [580/585] >tests/test_xmp.py::test_identity_function[3.141] PASSED [581/585] >tests/test_xmp.py::test_identity_function[False] PASSED [582/585] >tests/test_xmp.py::test_identity_function[True] PASSED [583/585] >tests/test_xmp.py::test_xmp_getter_bag_function PASSED [584/585] >tests/test_xobject_image_helpers.py::test_handle_flate__image_mode_1 PASSED [585/585] > >=================================== FAILURES =================================== >___________________ test_get_images_raw[True-True--1-True-] ____________________ > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c738d525f0> >strict = True, with_prev_0 = True, startx_correction = -1, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> PdfReader(pdf_stream, strict=strict) > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c738d525f0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c7372b8770> >should_fail = True >startx_correction = -1 >strict = True >warning_msgs = '' >with_prev_0 = True > >tests/test_reader.py:339: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_reader.py:318: in __init__ > self.read(stream) > password = None > self = <pypdf._reader.PdfReader object at 0x77c73627e200> > stream = <_io.BytesIO object at 0x77c7372b8770> > strict = True >pypdf/_reader.py:1346: in read > self._read_xref_tables_and_trailers(stream, startxref, xref_issue_nr) > self = <pypdf._reader.PdfReader object at 0x77c73627e200> > startxref = 326 > stream = <_io.BytesIO object at 0x77c7372b8770> > xref_issue_nr = 0 >pypdf/_reader.py:1589: in _read_xref_tables_and_trailers > startxref = self._read_xref_other_error(stream, startxref) > self = <pypdf._reader.PdfReader object at 0x77c73627e200> > startxref = 0 > stream = <_io.BytesIO object at 0x77c7372b8770> > x = b'%' > xref_issue_nr = 0 >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pypdf._reader.PdfReader object at 0x77c73627e200> >stream = <_io.BytesIO object at 0x77c7372b8770>, startxref = 0 > > def _read_xref_other_error( > self, stream: StreamType, startxref: int > ) -> Optional[int]: > # some PDFs have /Prev=0 in the trailer, instead of no /Prev > if startxref == 0: > if self.strict: >> raise PdfReadError( > "/Prev=0 in the trailer (try opening with strict=False)" > ) >E pypdf.errors.PdfReadError: /Prev=0 in the trailer (try opening with strict=False) > >self = <pypdf._reader.PdfReader object at 0x77c73627e200> >startxref = 0 >stream = <_io.BytesIO object at 0x77c7372b8770> > >pypdf/_reader.py:1622: PdfReadError > >During handling of the above exception, another exception occurred: > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c738d525f0> >strict = True, with_prev_0 = True, startx_correction = -1, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c738d525f0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c7372b8770> >should_fail = True >startx_correction = -1 >strict = True >warning_msgs = '' >with_prev_0 = True > >tests/test_reader.py:338: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 startxref on same line as offset >WARNING pypdf._reader:_utils.py:477 Xref table not zero-indexed. ID numbers for objects will be corrected. >___________________ test_get_images_raw[True-False-0-True-] ____________________ > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736449450> >strict = True, with_prev_0 = False, startx_correction = 0, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> PdfReader(pdf_stream, strict=strict) > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736449450> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Root 5 0 R /Size 6 >>\nstartxref 327\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c736b788b0> >should_fail = True >startx_correction = 0 >strict = True >warning_msgs = '' >with_prev_0 = False > >tests/test_reader.py:339: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_reader.py:318: in __init__ > self.read(stream) > password = None > self = <pypdf._reader.PdfReader object at 0x77c736449690> > stream = <_io.BytesIO object at 0x77c736b788b0> > strict = True >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pypdf._reader.PdfReader object at 0x77c736449690> >stream = <_io.BytesIO object at 0x77c736b788b0> > > def read(self, stream: StreamType) -> None: > self._basic_validation(stream) > self._find_eof_marker(stream) > startxref = self._find_startxref_pos(stream) > > # check and eventually correct the startxref only in not strict > xref_issue_nr = self._get_xref_issues(stream, startxref) > if xref_issue_nr != 0: > if self.strict and xref_issue_nr: >> raise PdfReadError("Broken xref table") >E pypdf.errors.PdfReadError: Broken xref table > >self = <pypdf._reader.PdfReader object at 0x77c736449690> >startxref = 327 >stream = <_io.BytesIO object at 0x77c736b788b0> >xref_issue_nr = 1 > >pypdf/_reader.py:1342: PdfReadError > >During handling of the above exception, another exception occurred: > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736449450> >strict = True, with_prev_0 = False, startx_correction = 0, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736449450> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Root 5 0 R /Size 6 >>\nstartxref 327\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c736b788b0> >should_fail = True >startx_correction = 0 >strict = True >warning_msgs = '' >with_prev_0 = False > >tests/test_reader.py:338: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 startxref on same line as offset >____________________ test_get_images_raw[True-True-0-True-] ____________________ > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736d000d0> >strict = True, with_prev_0 = True, startx_correction = 0, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> PdfReader(pdf_stream, strict=strict) > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736d000d0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 327\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c73632af70> >should_fail = True >startx_correction = 0 >strict = True >warning_msgs = '' >with_prev_0 = True > >tests/test_reader.py:339: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_reader.py:318: in __init__ > self.read(stream) > password = None > self = <pypdf._reader.PdfReader object at 0x77c736d00220> > stream = <_io.BytesIO object at 0x77c73632af70> > strict = True >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pypdf._reader.PdfReader object at 0x77c736d00220> >stream = <_io.BytesIO object at 0x77c73632af70> > > def read(self, stream: StreamType) -> None: > self._basic_validation(stream) > self._find_eof_marker(stream) > startxref = self._find_startxref_pos(stream) > > # check and eventually correct the startxref only in not strict > xref_issue_nr = self._get_xref_issues(stream, startxref) > if xref_issue_nr != 0: > if self.strict and xref_issue_nr: >> raise PdfReadError("Broken xref table") >E pypdf.errors.PdfReadError: Broken xref table > >self = <pypdf._reader.PdfReader object at 0x77c736d00220> >startxref = 327 >stream = <_io.BytesIO object at 0x77c73632af70> >xref_issue_nr = 1 > >pypdf/_reader.py:1342: PdfReadError > >During handling of the above exception, another exception occurred: > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736d000d0> >strict = True, with_prev_0 = True, startx_correction = 0, should_fail = True >warning_msgs = '' > > @pytest.mark.parametrize( > ("strict", "with_prev_0", "startx_correction", "should_fail", "warning_msgs"), > [ > ( > True, > False, > -1, > False, > [ > "startxref on same line as offset", > "Xref table not zero-indexed. " > "ID numbers for objects will be corrected.", > ], > ), # all nominal => no fail > (True, True, -1, True, ""), # Prev=0 => fail expected > ( > False, > False, > -1, > False, > ["startxref on same line as offset"], > ), > ( > False, > True, > -1, > False, > [ > "startxref on same line as offset", > "/Prev=0 in the trailer - assuming there is no previous xref table", > ], > ), # Prev =0 => no strict so tolerant > (True, False, 0, True, ""), # error on startxref, in strict => fail expected > (True, True, 0, True, ""), > ( > False, > False, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), # error on startxref, but no strict => xref rebuilt,no fail > ( > False, > True, > 0, > False, > ["startxref on same line as offset", "incorrect startxref pointer(1)"], > ), > ], > ) > def test_get_images_raw( > caplog, strict, with_prev_0, startx_correction, should_fail, warning_msgs > ): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > # startx_correction should be -1 due to double % at the beginning > # inducing an error on startxref computation > pdf_data.find(b"xref") + startx_correction, > ) > pdf_stream = io.BytesIO(pdf_data) > if should_fail: >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c736d000d0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 327\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c73632af70> >should_fail = True >startx_correction = 0 >strict = True >warning_msgs = '' >with_prev_0 = True > >tests/test_reader.py:338: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 startxref on same line as offset >___________________________ test_read_prev_0_trailer ___________________________ > > def test_read_prev_0_trailer(): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > with_prev_0 = True > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > pdf_data.find(b"xref") - 1, > ) > pdf_stream = io.BytesIO(pdf_data) > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> PdfReader(pdf_stream, strict=True) > >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c736d713a0> >with_prev_0 = True > >tests/test_reader.py:534: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_reader.py:318: in __init__ > self.read(stream) > password = None > self = <pypdf._reader.PdfReader object at 0x77c736e9d000> > stream = <_io.BytesIO object at 0x77c736d713a0> > strict = True >pypdf/_reader.py:1346: in read > self._read_xref_tables_and_trailers(stream, startxref, xref_issue_nr) > self = <pypdf._reader.PdfReader object at 0x77c736e9d000> > startxref = 326 > stream = <_io.BytesIO object at 0x77c736d713a0> > xref_issue_nr = 0 >pypdf/_reader.py:1589: in _read_xref_tables_and_trailers > startxref = self._read_xref_other_error(stream, startxref) > self = <pypdf._reader.PdfReader object at 0x77c736e9d000> > startxref = 0 > stream = <_io.BytesIO object at 0x77c736d713a0> > x = b'%' > xref_issue_nr = 0 >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pypdf._reader.PdfReader object at 0x77c736e9d000> >stream = <_io.BytesIO object at 0x77c736d713a0>, startxref = 0 > > def _read_xref_other_error( > self, stream: StreamType, startxref: int > ) -> Optional[int]: > # some PDFs have /Prev=0 in the trailer, instead of no /Prev > if startxref == 0: > if self.strict: >> raise PdfReadError( > "/Prev=0 in the trailer (try opening with strict=False)" > ) >E pypdf.errors.PdfReadError: /Prev=0 in the trailer (try opening with strict=False) > >self = <pypdf._reader.PdfReader object at 0x77c736e9d000> >startxref = 0 >stream = <_io.BytesIO object at 0x77c736d713a0> > >pypdf/_reader.py:1622: PdfReadError > >During handling of the above exception, another exception occurred: > > def test_read_prev_0_trailer(): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << %s/Root 5 0 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > with_prev_0 = True > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > b"/Prev 0 " if with_prev_0 else b"", > pdf_data.find(b"xref") - 1, > ) > pdf_stream = io.BytesIO(pdf_data) >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 1 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Prev 0 /Root 5 0 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c736d713a0> >with_prev_0 = True > >tests/test_reader.py:533: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 startxref on same line as offset >WARNING pypdf._reader:_utils.py:477 Xref table not zero-indexed. ID numbers for objects will be corrected. >_________________________ test_read_unknown_zero_pages _________________________ > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c737469ae0> > > def test_read_unknown_zero_pages(caplog): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > # Pages 0 0 is the key point: > b"5 0 obj << /Pages 0 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << /Root 5 1 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > pdf_data.find(b"xref") - 1, > ) > pdf_stream = io.BytesIO(pdf_data) > reader = PdfReader(pdf_stream, strict=True) > warnings = [ > "startxref on same line as offset", > "Xref table not zero-indexed. ID numbers for objects will be corrected.", > ] > assert normalize_warnings(caplog.text) == warnings > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> len(reader.pages) > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c737469ae0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 0 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Root 5 1 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c73741bec0> >reader = <pypdf._reader.PdfReader object at 0x77c73746a590> >warnings = ['startxref on same line as offset', > 'Xref table not zero-indexed. ID numbers for objects will be corrected.'] > >tests/test_reader.py:611: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_page.py:2201: in __len__ > return self.length_function() > self = <pypdf._page._VirtualList object at 0x77c73746a1a0> >pypdf/_reader.py:439: in _get_num_pages > self._flatten() > self = <pypdf._reader.PdfReader object at 0x77c73746a590> >pypdf/_reader.py:1052: in _flatten > catalog = self.trailer[TK.ROOT].get_object() > indirect_reference = None > inherit = {} > inheritable_page_attributes = ('/Resources', '/MediaBox', '/CropBox', '/Rotate') > pages = None > self = <pypdf._reader.PdfReader object at 0x77c73746a590> >pypdf/generic/_data_structures.py:319: in __getitem__ > return dict.__getitem__(self, key).get_object() > key = '/Root' > self = {'/Root': IndirectObject(5, 1, 131697509574032), '/Size': 6} >pypdf/generic/_base.py:284: in get_object > obj = self.pdf.get_object(self) > self = IndirectObject(5, 1, 131697509574032) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pypdf._reader.PdfReader object at 0x77c73746a590> >indirect_reference = IndirectObject(5, 1, 131697509574032) > > def get_object( > self, indirect_reference: Union[int, IndirectObject] > ) -> Optional[PdfObject]: > if isinstance(indirect_reference, int): > indirect_reference = IndirectObject(indirect_reference, 0, self) > retval = self.cache_get_indirect_object( > indirect_reference.generation, indirect_reference.idnum > ) > if retval is not None: > return retval > if ( > indirect_reference.generation == 0 > and indirect_reference.idnum in self.xref_objStm > ): > retval = self._get_object_from_stream(indirect_reference) # type: ignore > elif ( > indirect_reference.generation in self.xref > and indirect_reference.idnum in self.xref[indirect_reference.generation] > ): > if self.xref_free_entry.get(indirect_reference.generation, {}).get( > indirect_reference.idnum, False > ): > return NullObject() > start = self.xref[indirect_reference.generation][indirect_reference.idnum] > self.stream.seek(start, 0) > try: > idnum, generation = self.read_object_header(self.stream) > except Exception: > if hasattr(self.stream, "getbuffer"): > buf = bytes(self.stream.getbuffer()) > else: > p = self.stream.tell() > self.stream.seek(0, 0) > buf = self.stream.read(-1) > self.stream.seek(p, 0) > m = re.search( > rf"\s{indirect_reference.idnum}\s+{indirect_reference.generation}\s+obj".encode(), > buf, > ) > if m is not None: > logger_warning( > f"Object ID {indirect_reference.idnum},{indirect_reference.generation} ref repaired", > __name__, > ) > self.xref[indirect_reference.generation][ > indirect_reference.idnum > ] = (m.start(0) + 1) > self.stream.seek(m.start(0) + 1) > idnum, generation = self.read_object_header(self.stream) > else: > idnum = -1 # exception will be raised below > if idnum != indirect_reference.idnum and self.xref_index: > # Xref table probably had bad indexes due to not being zero-indexed > if self.strict: > raise PdfReadError( > f"Expected object ID ({indirect_reference.idnum} {indirect_reference.generation}) " > f"does not match actual ({idnum} {generation}); " > "xref table not zero-indexed." > ) > # xref table is corrected in non-strict mode > elif idnum != indirect_reference.idnum and self.strict: > # some other problem > raise PdfReadError( > f"Expected object ID ({indirect_reference.idnum} " > f"{indirect_reference.generation}) does not match actual " > f"({idnum} {generation})." > ) > if self.strict: > assert generation == indirect_reference.generation > retval = read_object(self.stream, self) # type: ignore > > # override encryption is used for the /Encrypt dictionary > if not self._override_encryption and self._encryption is not None: > # if we don't have the encryption key: > if not self._encryption.is_decrypted(): > raise FileNotDecryptedError("File has not been decrypted") > # otherwise, decrypt here... > retval = cast(PdfObject, retval) > retval = self._encryption.decrypt_object( > retval, indirect_reference.idnum, indirect_reference.generation > ) > else: > if hasattr(self.stream, "getbuffer"): > buf = bytes(self.stream.getbuffer()) > else: > p = self.stream.tell() > self.stream.seek(0, 0) > buf = self.stream.read(-1) > self.stream.seek(p, 0) > m = re.search( > rf"\s{indirect_reference.idnum}\s+{indirect_reference.generation}\s+obj".encode(), > buf, > ) > if m is not None: > logger_warning( > f"Object {indirect_reference.idnum} {indirect_reference.generation} found", > __name__, > ) > if indirect_reference.generation not in self.xref: > self.xref[indirect_reference.generation] = {} > self.xref[indirect_reference.generation][indirect_reference.idnum] = ( > m.start(0) + 1 > ) > self.stream.seek(m.end(0) + 1) > skip_over_whitespace(self.stream) > self.stream.seek(-1, 1) > retval = read_object(self.stream, self) # type: ignore > > # override encryption is used for the /Encrypt dictionary > if not self._override_encryption and self._encryption is not None: > # if we don't have the encryption key: > if not self._encryption.is_decrypted(): > raise FileNotDecryptedError("File has not been decrypted") > # otherwise, decrypt here... > retval = cast(PdfObject, retval) > retval = self._encryption.decrypt_object( > retval, indirect_reference.idnum, indirect_reference.generation > ) > else: > logger_warning( > f"Object {indirect_reference.idnum} {indirect_reference.generation} not defined.", > __name__, > ) > if self.strict: >> raise PdfReadError("Could not find object.") >E pypdf.errors.PdfReadError: Could not find object. > >buf = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 0 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Root 5 1 R /Size 6 >>\nstartxref 326\n%%EOF') >indirect_reference = IndirectObject(5, 1, 131697509574032) >m = None >retval = None >self = <pypdf._reader.PdfReader object at 0x77c73746a590> > >pypdf/_reader.py:1281: PdfReadError > >During handling of the above exception, another exception occurred: > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c737469ae0> > > def test_read_unknown_zero_pages(caplog): > pdf_data = ( > b"%%PDF-1.7\n" > b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" > b"2 0 obj << >> endobj\n" > b"3 0 obj << >> endobj\n" > b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" > b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" > b" /Resources << /Font << >> >>" > b" /Rotate 0 /Type /Page >> endobj\n" > # Pages 0 0 is the key point: > b"5 0 obj << /Pages 0 0 R /Type /Catalog >> endobj\n" > b"xref 1 5\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"%010d 00000 n\n" > b"trailer << /Root 5 1 R /Size 6 >>\n" > b"startxref %d\n" > b"%%%%EOF" > ) > pdf_data = pdf_data % ( > pdf_data.find(b"1 0 obj"), > pdf_data.find(b"2 0 obj"), > pdf_data.find(b"3 0 obj"), > pdf_data.find(b"4 0 obj"), > pdf_data.find(b"5 0 obj"), > pdf_data.find(b"xref") - 1, > ) > pdf_stream = io.BytesIO(pdf_data) > reader = PdfReader(pdf_stream, strict=True) > warnings = [ > "startxref on same line as offset", > "Xref table not zero-indexed. ID numbers for objects will be corrected.", > ] > assert normalize_warnings(caplog.text) == warnings >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c737469ae0> >exc = <ExceptionInfo for raises contextmanager> >pdf_data = (b'%PDF-1.7\n1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n2 0 ob' > b'j << >> endobj\n3 0 obj << >> endobj\n4 0 obj << /Contents 3 0 R /CropBox ' > b'[0.0 0.0 2550.0 3508.0] /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R /Res' > b'ources << /Font << >> >> /Rotate 0 /Type /Page >> endobj\n5 0 obj << /Pag' > b'es 0 0 R /Type /Catalog >> endobj\nxref 1 5\n0000000010 00000 n\n0000000067' > b' 00000 n\n0000000088 00000 n\n0000000109 00000 n\n0000000278 00000 n\ntraile' > b'r << /Root 5 1 R /Size 6 >>\nstartxref 326\n%%EOF') >pdf_stream = <_io.BytesIO object at 0x77c73741bec0> >reader = <pypdf._reader.PdfReader object at 0x77c73746a590> >warnings = ['startxref on same line as offset', > 'Xref table not zero-indexed. ID numbers for objects will be corrected.'] > >tests/test_reader.py:610: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 startxref on same line as offset >WARNING pypdf._reader:_utils.py:477 Xref table not zero-indexed. ID numbers for objects will be corrected. >WARNING pypdf._reader:_utils.py:477 Object 5 1 not defined. >_____________________________ test_issue604[True] ______________________________ > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c7372e37f0> >strict = True > > @pytest.mark.parametrize( > "strict", > [True, False], > ) > def test_issue604(caplog, strict): > """Test with invalid destinations.""" # TODO > with open(RESOURCE_ROOT / "issue-604.pdf", "rb") as f: > pdf = None > outline = None > if strict: > pdf = PdfReader(f, strict=strict) > with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >> outline = pdf.outline > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c7372e37f0> >exc = <ExceptionInfo for raises contextmanager> >f = <_io.BufferedReader name='/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/resources/issue-604.pdf'> >outline = None >pdf = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> >strict = True > >tests/test_reader.py:691: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_reader.py:748: in outline > return self._get_outline() > self = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> >pypdf/_reader.py:774: in _get_outline > outline_obj = self._build_outline_item(node) > catalog = {'/AcroForm': IndirectObject(3, 0, 131697507970272), > '/Lang': 'en-US', > '/MarkInfo': {'/Marked': True}, > '/Metadata': IndirectObject(4, 0, 131697507970272), > '/Names': IndirectObject(6, 0, 131697507970272), > '/Outlines': IndirectObject(7, 0, 131697507970272), > '/Pages': IndirectObject(8, 0, 131697507970272), > '/StructTreeRoot': IndirectObject(9, 0, 131697507970272), > '/Type': '/Catalog', > '/ViewerPreferences': {'/Direction': '/L2R'}} > lines = {'/Count': 77, > '/First': IndirectObject(11, 0, 131697507970272), > '/Last': IndirectObject(12, 0, 131697507970272), > '/Type': '/Outlines'} > node = {'/Count': 64, > '/Dest': [NullObject, 0, 0, 1], > '/First': IndirectObject(160, 0, 131697507970272), > '/Last': IndirectObject(161, 0, 131697507970272), > '/Parent': IndirectObject(7, 0, 131697507970272), > '/Prev': IndirectObject(162, 0, 131697507970272), > '/Title': 'ms_Thyroid_2_2020_071520_watermarked.pdf'} > outline = [{'/%is_open%': True, > '/Page': IndirectObject(20, 0, 131697507970272), > '/Title': 'Nodule Evaluation (THYR-1)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(24, 0, 131697507970272), > '/Title': 'Papillary Carcinoma (PAP-1)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(35, 0, 131697507970272), > '/Title': 'Follicular Carcinoma (FOLL-1)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(44, 0, 131697507970272), > '/Title': 'Hürthe Cell Carcinoma (HÃRT-1)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Count': 1, > '/Page': IndirectObject(53, 0, 131697507970272), > '/Title': 'Medullary Carcinoma (MEDU-1)', > '/Type': '/Fit'}, > [{'/%is_open%': True, > '/Page': IndirectObject(55, 0, 131697507970272), > '/Title': 'Germline Mutation of RET Proto-oncogene (MEDU-3)', > '/Type': '/Fit'}], > {'/%is_open%': True, > '/Count': 1, > '/Page': IndirectObject(60, 0, 131697507970272), > '/Title': 'Anaplastic Carcinoma (ANAP-1)', > '/Type': '/Fit'}, > [{'/%is_open%': True, > '/Page': IndirectObject(62, 0, 131697507970272), > '/Title': 'Systemic Therapy for Anaplastic Carcinoma (ANAP-A)', > '/Type': '/Fit'}], > {'/%is_open%': True, > '/Page': IndirectObject(65, 0, 131697507970272), > '/Title': 'Principles of TSH Suppression (THYR-A)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(66, 0, 131697507970272), > '/Title': 'Principles of Kinase Inhibitor Therapy in Advanced Thyroid ' > 'Carcinoma (THYR-B)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(67, 0, 131697507970272), > '/Title': 'Principles of Radiation and Radioactive Iodine Therapy (THYR-C)', > '/Type': '/Fit'}, > {'/%is_open%': True, > '/Page': IndirectObject(62, 0, 131697507970272), > '/Title': 'Staging', > '/Type': '/Fit'}] > outline_obj = {'/%is_open%': True, > '/Page': IndirectObject(62, 0, 131697507970272), > '/Title': 'Staging', > '/Type': '/Fit'} > self = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> > sub_outline = [{'/%is_open%': True, > '/Page': IndirectObject(62, 0, 131697507970272), > '/Title': 'Systemic Therapy for Anaplastic Carcinoma (ANAP-A)', > '/Type': '/Fit'}] >pypdf/_reader.py:917: in _build_outline_item > outline_item = self._build_destination(title, dest) > dest = [NullObject, 0, 0, 1] > node = {'/Count': 64, > '/Dest': [NullObject, 0, 0, 1], > '/First': IndirectObject(160, 0, 131697507970272), > '/Last': IndirectObject(161, 0, 131697507970272), > '/Parent': IndirectObject(7, 0, 131697507970272), > '/Prev': IndirectObject(162, 0, 131697507970272), > '/Title': 'ms_Thyroid_2_2020_071520_watermarked.pdf'} > outline_item = None > self = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> > title = 'ms_Thyroid_2_2020_071520_watermarked.pdf' >pypdf/_reader.py:881: in _build_destination > return Destination(title, page, Fit(fit_type=typ, fit_args=array)) # type: ignore > array = [0, 1] > page = NullObject > self = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> > title = 'ms_Thyroid_2_2020_071520_watermarked.pdf' > typ = 0 >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = {'/Title': 'ms_Thyroid_2_2020_071520_watermarked.pdf', '/Page': NullObject, '/Type': '0'} >title = 'ms_Thyroid_2_2020_071520_watermarked.pdf', page = NullObject >fit = <pypdf.generic._fit.Fit object at 0x77c7378dbee0> > > def __init__( > self, > title: str, > page: Union[NumberObject, IndirectObject, NullObject, DictionaryObject], > fit: Fit, > ) -> None: > typ = fit.fit_type > args = fit.fit_args > > DictionaryObject.__init__(self) > self[NameObject("/Title")] = TextStringObject(title) > self[NameObject("/Page")] = page > self[NameObject("/Type")] = typ > > # from table 8.2 of the PDF 1.7 reference. > if typ == "/XYZ": > if len(args) < 1: # left is missing : should never occur > args.append(NumberObject(0.0)) > if len(args) < 2: # top is missing > args.append(NumberObject(0.0)) > if len(args) < 3: # zoom is missing > args.append(NumberObject(0.0)) > ( > self[NameObject(TA.LEFT)], > self[NameObject(TA.TOP)], > self[NameObject("/Zoom")], > ) = args > elif len(args) == 0: > pass > elif typ == TF.FIT_R: > ( > self[NameObject(TA.LEFT)], > self[NameObject(TA.BOTTOM)], > self[NameObject(TA.RIGHT)], > self[NameObject(TA.TOP)], > ) = args > elif typ in [TF.FIT_H, TF.FIT_BH]: > try: # Preferred to be more robust not only to null parameters > (self[NameObject(TA.TOP)],) = args > except Exception: > (self[NameObject(TA.TOP)],) = (NullObject(),) > elif typ in [TF.FIT_V, TF.FIT_BV]: > try: # Preferred to be more robust not only to null parameters > (self[NameObject(TA.LEFT)],) = args > except Exception: > (self[NameObject(TA.LEFT)],) = (NullObject(),) > elif typ in [TF.FIT, TF.FIT_B]: > pass > else: >> raise PdfReadError(f"Unknown Destination Type: {typ!r}") >E pypdf.errors.PdfReadError: Unknown Destination Type: '0' > >args = [0.0, 1] >fit = <pypdf.generic._fit.Fit object at 0x77c7378dbee0> >page = NullObject >self = {'/Page': NullObject, > '/Title': 'ms_Thyroid_2_2020_071520_watermarked.pdf', > '/Type': '0'} >title = 'ms_Thyroid_2_2020_071520_watermarked.pdf' >typ = '0' > >pypdf/generic/_data_structures.py:1404: PdfReadError > >During handling of the above exception, another exception occurred: > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c7372e37f0> >strict = True > > @pytest.mark.parametrize( > "strict", > [True, False], > ) > def test_issue604(caplog, strict): > """Test with invalid destinations.""" # TODO > with open(RESOURCE_ROOT / "issue-604.pdf", "rb") as f: > pdf = None > outline = None > if strict: > pdf = PdfReader(f, strict=strict) >> with pytest.raises(PdfReadError) as exc, pytest.warns(PdfReadWarning): >E Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarning'>,) were emitted. >E Emitted warnings: []. > >caplog = <_pytest.logging.LogCaptureFixture object at 0x77c7372e37f0> >exc = <ExceptionInfo for raises contextmanager> >f = <_io.BufferedReader name='/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/resources/issue-604.pdf'> >outline = None >pdf = <pypdf._reader.PdfReader object at 0x77c7372e2ce0> >strict = True > >tests/test_reader.py:690: Failed >------------------------------ Captured log call ------------------------------- >WARNING pypdf._reader:_utils.py:477 Unknown destination: ms_Thyroid_2_2020_071520_watermarked.pdf [0, 1] >================================== XFAILURES =================================== >_______________________ test_ascii85decode_with_overflow _______________________ > > @pytest.mark.xfail() > def test_ascii85decode_with_overflow(): > inputs = ( > v + "~>" > for v in "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0e\x0f" > "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a" > "\x1b\x1c\x1d\x1e\x1fvwxy{|}~\x7f\x80\x81\x82" > "\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d" > "\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98" > "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬" > "\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÃÃÃÃÃà ÃÃ" > ) > > for i in inputs: >> with pytest.raises(ValueError) as exc: >E Failed: DID NOT RAISE <class 'ValueError'> > >exc = <ExceptionInfo for raises contextmanager> >i = '\x00~>' >inputs = <generator object test_ascii85decode_with_overflow.<locals>.<genexpr> at 0x77c737533610> > >tests/test_filters.py:164: Failed >____________ test_get_images[imagemagick-lzw.pdf-expected_images3] _____________ > >src = 'imagemagick-lzw.pdf', expected_images = ['Im0.png'] > > @pytest.mark.samples() > @pytest.mark.parametrize( > ("src", "expected_images"), > [ > ("pdflatex-outline.pdf", []), > ("crazyones.pdf", []), > ("git.pdf", ["Image9.png"]), > pytest.param( > "imagemagick-lzw.pdf", > ["Im0.png"], > marks=pytest.mark.xfail(reason="broken image extraction"), > ), > pytest.param( > "imagemagick-ASCII85Decode.pdf", > ["Im0.png"], > marks=pytest.mark.xfail(reason="broken image extraction"), > ), > ("imagemagick-CCITTFaxDecode.pdf", ["Im0.tiff"]), > (SAMPLE_ROOT / "019-grayscale-image/grayscale-image.pdf", ["X0.png"]), > ], > ) > def test_get_images(src, expected_images): > from PIL import Image > > src_abs = RESOURCE_ROOT / src > reader = PdfReader(src_abs) > > with pytest.raises(TypeError): > page = reader.pages["0"] > > page = reader.pages[-1] > page = reader.pages[0] > > images_extracted = page.images > assert len(images_extracted) == len(expected_images) >> for image, expected_image in zip(images_extracted, expected_images): > >Image = <module 'PIL.Image' from '/usr/lib/python3.10/site-packages/PIL/Image.py'> >expected_images = ['Im0.png'] >images_extracted = <pypdf._page._VirtualListImages object at 0x77c736c5eec0> >page = {'/Contents': IndirectObject(4, 0, 131697492666128), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697492666128), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697492666128), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697492666128)}}, > '/Thumb': IndirectObject(13, 0, 131697492666128), > '/Type': '/Page'} >reader = <pypdf._reader.PdfReader object at 0x77c73644a710> >src = 'imagemagick-lzw.pdf' >src_abs = PosixPath('/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/resources/imagemagick-lzw.pdf') > >tests/test_reader.py:235: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_page.py:2425: in __iter__ > yield self[i] > i = 0 > self = <pypdf._page._VirtualListImages object at 0x77c736c5eec0> >pypdf/_page.py:2421: in __getitem__ > return self.get_function(lst[index]) > index = 0 > len_self = 1 > lst = ['/Im0'] > self = <pypdf._page._VirtualListImages object at 0x77c736c5eec0> >pypdf/_page.py:496: in _get_image > imgd = _xobj_to_image(cast(DictionaryObject, xobjs[id])) > id = '/Im0' > obj = {'/Contents': IndirectObject(4, 0, 131697492666128), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697492666128), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697492666128), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697492666128)}}, > '/Thumb': IndirectObject(13, 0, 131697492666128), > '/Type': '/Page'} > self = {'/Contents': IndirectObject(4, 0, 131697492666128), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697492666128), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697492666128), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697492666128)}}, > '/Thumb': IndirectObject(13, 0, 131697492666128), > '/Type': '/Page'} > xobjs = {'/Im0': IndirectObject(8, 0, 131697492666128)} >pypdf/filters.py:803: in _xobj_to_image > img = Image.open(BytesIO(data), formats=("TIFF", "PNG")) > Image = <module 'PIL.Image' from '/usr/lib/python3.10/site-packages/PIL/Image.py'> > _get_imagemode = <function _get_imagemode at 0x77c737d6d000> > _handle_flate = <function _handle_flate at 0x77c737d6d090> > _handle_jpx = <function _handle_jpx at 0x77c737d6d120> > alpha = None > color_space = ['/ICCBased', IndirectObject(11, 0, 131697492666128)] > colors = 1 > data = (b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00' > b'\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') > extension = '.tiff' > filters = ['/LZWDecode'] > image_format = 'TIFF' > invert_color = False > lfilters = '/LZWDecode' > mode = 'L' > mode_str_type = typing.Literal['', '1', 'RGB', '2bits', '4bits', 'P', 'L', 'RGBA', 'CMYK'] > obj_as_text = ("{'/Type': '/XObject', '/Subtype': '/Image', '/Name': '/Im0', '/Filter': " > "['/LZWDecode'], '/Width': 16, '/Height': 16, '/ColorSpace': " > "IndirectObject(10, 0, 131697492666128), '/BitsPerComponent': 8}") > size = (16, 16) > x_object_obj = {'/BitsPerComponent': 8, > '/ColorSpace': IndirectObject(10, 0, 131697492666128), > '/Filter': ['/LZWDecode'], > '/Height': 16, > '/Name': '/Im0', > '/Subtype': '/Image', > '/Type': '/XObject', > '/Width': 16} >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >fp = <_io.BytesIO object at 0x77c7379858f0>, mode = 'r' >formats = ('TIFF', 'PNG') > > def open(fp, mode="r", formats=None) -> Image: > """ > Opens and identifies the given image file. > > This is a lazy operation; this function identifies the file, but > the file remains open and the actual image data is not read from > the file until you try to process the data (or call the > :py:meth:`~PIL.Image.Image.load` method). See > :py:func:`~PIL.Image.new`. See :ref:`file-handling`. > > :param fp: A filename (string), pathlib.Path object or a file object. > The file object must implement ``file.read``, > ``file.seek``, and ``file.tell`` methods, > and be opened in binary mode. The file object will also seek to zero > before reading. > :param mode: The mode. If given, this argument must be "r". > :param formats: A list or tuple of formats to attempt to load the file in. > This can be used to restrict the set of formats checked. > Pass ``None`` to try all supported formats. You can print the set of > available formats by running ``python3 -m PIL`` or using > the :py:func:`PIL.features.pilinfo` function. > :returns: An :py:class:`~PIL.Image.Image` object. > :exception FileNotFoundError: If the file cannot be found. > :exception PIL.UnidentifiedImageError: If the image cannot be opened and > identified. > :exception ValueError: If the ``mode`` is not "r", or if a ``StringIO`` > instance is used for ``fp``. > :exception TypeError: If ``formats`` is not ``None``, a list or a tuple. > """ > > if mode != "r": > msg = f"bad mode {repr(mode)}" > raise ValueError(msg) > elif isinstance(fp, io.StringIO): > msg = ( > "StringIO cannot be used to open an image. " > "Binary data must be used instead." > ) > raise ValueError(msg) > > if formats is None: > formats = ID > elif not isinstance(formats, (list, tuple)): > msg = "formats must be a list or tuple" > raise TypeError(msg) > > exclusive_fp = False > filename = "" > if isinstance(fp, Path): > filename = str(fp.resolve()) > elif is_path(fp): > filename = fp > > if filename: > fp = builtins.open(filename, "rb") > exclusive_fp = True > > try: > fp.seek(0) > except (AttributeError, io.UnsupportedOperation): > fp = io.BytesIO(fp.read()) > exclusive_fp = True > > prefix = fp.read(16) > > preinit() > > accept_warnings = [] > > def _open_core(fp, filename, prefix, formats): > for i in formats: > i = i.upper() > if i not in OPEN: > init() > try: > factory, accept = OPEN[i] > result = not accept or accept(prefix) > if type(result) in [str, bytes]: > accept_warnings.append(result) > elif result: > fp.seek(0) > im = factory(fp, filename) > _decompression_bomb_check(im.size) > return im > except (SyntaxError, IndexError, TypeError, struct.error): > # Leave disabled by default, spams the logs with image > # opening failures that are entirely expected. > # logger.debug("", exc_info=True) > continue > except BaseException: > if exclusive_fp: > fp.close() > raise > return None > > im = _open_core(fp, filename, prefix, formats) > > if im is None and formats is ID: > checked_formats = formats.copy() > if init(): > im = _open_core( > fp, > filename, > prefix, > tuple(format for format in formats if format not in checked_formats), > ) > > if im: > im._exclusive_fp = exclusive_fp > return im > > if exclusive_fp: > fp.close() > for message in accept_warnings: > warnings.warn(message) > msg = "cannot identify image file %r" % (filename if filename else fp) >> raise UnidentifiedImageError(msg) >E PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x77c7379858f0> > >_open_core = <function open.<locals>._open_core at 0x77c732740ca0> >accept_warnings = [] >exclusive_fp = False >filename = '' >formats = ('TIFF', 'PNG') >fp = <_io.BytesIO object at 0x77c7379858f0> >im = None >mode = 'r' >msg = 'cannot identify image file <_io.BytesIO object at 0x77c7379858f0>' >prefix = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > >/usr/lib/python3.10/site-packages/PIL/Image.py:3309: UnidentifiedImageError >_______ test_get_images[imagemagick-ASCII85Decode.pdf-expected_images4] ________ > >src = 'imagemagick-ASCII85Decode.pdf', expected_images = ['Im0.png'] > > @pytest.mark.samples() > @pytest.mark.parametrize( > ("src", "expected_images"), > [ > ("pdflatex-outline.pdf", []), > ("crazyones.pdf", []), > ("git.pdf", ["Image9.png"]), > pytest.param( > "imagemagick-lzw.pdf", > ["Im0.png"], > marks=pytest.mark.xfail(reason="broken image extraction"), > ), > pytest.param( > "imagemagick-ASCII85Decode.pdf", > ["Im0.png"], > marks=pytest.mark.xfail(reason="broken image extraction"), > ), > ("imagemagick-CCITTFaxDecode.pdf", ["Im0.tiff"]), > (SAMPLE_ROOT / "019-grayscale-image/grayscale-image.pdf", ["X0.png"]), > ], > ) > def test_get_images(src, expected_images): > from PIL import Image > > src_abs = RESOURCE_ROOT / src > reader = PdfReader(src_abs) > > with pytest.raises(TypeError): > page = reader.pages["0"] > > page = reader.pages[-1] > page = reader.pages[0] > > images_extracted = page.images > assert len(images_extracted) == len(expected_images) >> for image, expected_image in zip(images_extracted, expected_images): > >Image = <module 'PIL.Image' from '/usr/lib/python3.10/site-packages/PIL/Image.py'> >expected_images = ['Im0.png'] >images_extracted = <pypdf._page._VirtualListImages object at 0x77c738512860> >page = {'/Contents': IndirectObject(4, 0, 131697527038416), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697527038416), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697527038416), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697527038416)}}, > '/Thumb': IndirectObject(13, 0, 131697527038416), > '/Type': '/Page'} >reader = <pypdf._reader.PdfReader object at 0x77c7385121d0> >src = 'imagemagick-ASCII85Decode.pdf' >src_abs = PosixPath('/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/resources/imagemagick-ASCII85Decode.pdf') > >tests/test_reader.py:235: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pypdf/_page.py:2425: in __iter__ > yield self[i] > i = 0 > self = <pypdf._page._VirtualListImages object at 0x77c738512860> >pypdf/_page.py:2421: in __getitem__ > return self.get_function(lst[index]) > index = 0 > len_self = 1 > lst = ['/Im0'] > self = <pypdf._page._VirtualListImages object at 0x77c738512860> >pypdf/_page.py:496: in _get_image > imgd = _xobj_to_image(cast(DictionaryObject, xobjs[id])) > id = '/Im0' > obj = {'/Contents': IndirectObject(4, 0, 131697527038416), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697527038416), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697527038416), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697527038416)}}, > '/Thumb': IndirectObject(13, 0, 131697527038416), > '/Type': '/Page'} > self = {'/Contents': IndirectObject(4, 0, 131697527038416), > '/CropBox': [0, 0, 3.84, 3.84], > '/MediaBox': [0, 0, 3.84, 3.84], > '/Parent': IndirectObject(2, 0, 131697527038416), > '/Resources': {'/ProcSet': IndirectObject(6, 0, 131697527038416), > '/XObject': {'/Im0': IndirectObject(8, 0, 131697527038416)}}, > '/Thumb': IndirectObject(13, 0, 131697527038416), > '/Type': '/Page'} > xobjs = {'/Im0': IndirectObject(8, 0, 131697527038416)} >pypdf/filters.py:803: in _xobj_to_image > img = Image.open(BytesIO(data), formats=("TIFF", "PNG")) > Image = <module 'PIL.Image' from '/usr/lib/python3.10/site-packages/PIL/Image.py'> > _get_imagemode = <function _get_imagemode at 0x77c737d6d000> > _handle_flate = <function _handle_flate at 0x77c737d6d090> > _handle_jpx = <function _handle_jpx at 0x77c737d6d120> > alpha = None > color_space = ['/ICCBased', IndirectObject(11, 0, 131697527038416)] > colors = 1 > data = (b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00' > b'\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00' > b'\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') > extension = '.png' > filters = ['/ASCII85Decode'] > image_format = 'PNG' > invert_color = False > lfilters = '/ASCII85Decode' > mode = 'L' > mode_str_type = typing.Literal['', '1', 'RGB', '2bits', '4bits', 'P', 'L', 'RGBA', 'CMYK'] > obj_as_text = ("{'/Type': '/XObject', '/Subtype': '/Image', '/Name': '/Im0', '/Filter': " > "['/ASCII85Decode'], '/Width': 16, '/Height': 16, '/ColorSpace': " > "IndirectObject(10, 0, 131697527038416), '/BitsPerComponent': 8}") > size = (16, 16) > x_object_obj = {'/BitsPerComponent': 8, > '/ColorSpace': IndirectObject(10, 0, 131697527038416), > '/Filter': ['/ASCII85Decode'], > '/Height': 16, > '/Name': '/Im0', > '/Subtype': '/Image', > '/Type': '/XObject', > '/Width': 16} >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >fp = <_io.BytesIO object at 0x77c7363482c0>, mode = 'r' >formats = ('TIFF', 'PNG') > > def open(fp, mode="r", formats=None) -> Image: > """ > Opens and identifies the given image file. > > This is a lazy operation; this function identifies the file, but > the file remains open and the actual image data is not read from > the file until you try to process the data (or call the > :py:meth:`~PIL.Image.Image.load` method). See > :py:func:`~PIL.Image.new`. See :ref:`file-handling`. > > :param fp: A filename (string), pathlib.Path object or a file object. > The file object must implement ``file.read``, > ``file.seek``, and ``file.tell`` methods, > and be opened in binary mode. The file object will also seek to zero > before reading. > :param mode: The mode. If given, this argument must be "r". > :param formats: A list or tuple of formats to attempt to load the file in. > This can be used to restrict the set of formats checked. > Pass ``None`` to try all supported formats. You can print the set of > available formats by running ``python3 -m PIL`` or using > the :py:func:`PIL.features.pilinfo` function. > :returns: An :py:class:`~PIL.Image.Image` object. > :exception FileNotFoundError: If the file cannot be found. > :exception PIL.UnidentifiedImageError: If the image cannot be opened and > identified. > :exception ValueError: If the ``mode`` is not "r", or if a ``StringIO`` > instance is used for ``fp``. > :exception TypeError: If ``formats`` is not ``None``, a list or a tuple. > """ > > if mode != "r": > msg = f"bad mode {repr(mode)}" > raise ValueError(msg) > elif isinstance(fp, io.StringIO): > msg = ( > "StringIO cannot be used to open an image. " > "Binary data must be used instead." > ) > raise ValueError(msg) > > if formats is None: > formats = ID > elif not isinstance(formats, (list, tuple)): > msg = "formats must be a list or tuple" > raise TypeError(msg) > > exclusive_fp = False > filename = "" > if isinstance(fp, Path): > filename = str(fp.resolve()) > elif is_path(fp): > filename = fp > > if filename: > fp = builtins.open(filename, "rb") > exclusive_fp = True > > try: > fp.seek(0) > except (AttributeError, io.UnsupportedOperation): > fp = io.BytesIO(fp.read()) > exclusive_fp = True > > prefix = fp.read(16) > > preinit() > > accept_warnings = [] > > def _open_core(fp, filename, prefix, formats): > for i in formats: > i = i.upper() > if i not in OPEN: > init() > try: > factory, accept = OPEN[i] > result = not accept or accept(prefix) > if type(result) in [str, bytes]: > accept_warnings.append(result) > elif result: > fp.seek(0) > im = factory(fp, filename) > _decompression_bomb_check(im.size) > return im > except (SyntaxError, IndexError, TypeError, struct.error): > # Leave disabled by default, spams the logs with image > # opening failures that are entirely expected. > # logger.debug("", exc_info=True) > continue > except BaseException: > if exclusive_fp: > fp.close() > raise > return None > > im = _open_core(fp, filename, prefix, formats) > > if im is None and formats is ID: > checked_formats = formats.copy() > if init(): > im = _open_core( > fp, > filename, > prefix, > tuple(format for format in formats if format not in checked_formats), > ) > > if im: > im._exclusive_fp = exclusive_fp > return im > > if exclusive_fp: > fp.close() > for message in accept_warnings: > warnings.warn(message) > msg = "cannot identify image file %r" % (filename if filename else fp) >> raise UnidentifiedImageError(msg) >E PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x77c7363482c0> > >_open_core = <function open.<locals>._open_core at 0x77c736304310> >accept_warnings = [] >exclusive_fp = False >filename = '' >formats = ('TIFF', 'PNG') >fp = <_io.BytesIO object at 0x77c7363482c0> >im = None >mode = 'r' >msg = 'cannot identify image file <_io.BytesIO object at 0x77c7363482c0>' >prefix = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > >/usr/lib/python3.10/site-packages/PIL/Image.py:3309: UnidentifiedImageError >=============================== warnings summary =============================== >tests/test_images.py:217 > /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/tests/test_images.py:217: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html > @pytest.mark.timeout(30) > >tests/test_reader.py:1460 > /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/tests/test_reader.py:1460: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html > @pytest.mark.timeout(30) > >tests/test_writer.py:1550 > /var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1/tests/test_writer.py:1550: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html > @pytest.mark.timeout(4) > >-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html >=========================== short test summary info ============================ >SKIPPED [1] tests/test_encryption.py:185: Limitations of cryptography. see https://github.com/pyca/cryptography/issues/2494 >SKIPPED [1] tests/test_page.py:1273: could not import 'fpdf': No module named 'fpdf' >SKIPPED [1] tests/test_writer.py:1603: Requires Ghostscript >SKIPPED [1] tests/test_writer.py:1954: could not import 'fpdf': No module named 'fpdf' >XFAIL tests/test_filters.py::test_ascii85decode_with_overflow >XFAIL tests/test_reader.py::test_get_images[imagemagick-lzw.pdf-expected_images3] - broken image extraction >XFAIL tests/test_reader.py::test_get_images[imagemagick-ASCII85Decode.pdf-expected_images4] - broken image extraction >FAILED tests/test_reader.py::test_get_images_raw[True-True--1-True-] - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >FAILED tests/test_reader.py::test_get_images_raw[True-False-0-True-] - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >FAILED tests/test_reader.py::test_get_images_raw[True-True-0-True-] - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >FAILED tests/test_reader.py::test_read_prev_0_trailer - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >FAILED tests/test_reader.py::test_read_unknown_zero_pages - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >FAILED tests/test_reader.py::test_issue604[True] - Failed: DID NOT WARN. No warnings of type (<class 'pypdf.errors.PdfReadWarn... >= 6 failed, 572 passed, 4 skipped, 279 deselected, 3 xfailed, 3 warnings in 22.53s = > * ERROR: dev-python/pypdf-4.0.1::gentoo failed (test phase): > * pytest failed with python3.10 > * > * Call stack: > * ebuild.sh, line 136: Called src_test > * environment, line 4018: Called distutils-r1_src_test > * environment, line 1964: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 758: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 3622: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3091: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3089: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 1190: Called distutils-r1_run_phase 'python_test' > * environment, line 1887: Called python_test > * environment, line 3905: Called epytest '-o' 'addopts=' '-m' 'not enable_socket' > * environment, line 2513: Called die > * The specific snippet of code: > * "${@}" || die -n "pytest failed with ${EPYTHON}"; > * > * If you need support, post the output of `emerge --info '=dev-python/pypdf-4.0.1::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-python/pypdf-4.0.1::gentoo'`. > * The complete build log is located at '/var/log/emerge-log/build/dev-python/pypdf-4.0.1:20240129-051023.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/pypdf-4.0.1/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-python/pypdf-4.0.1/temp/environment'. > * Working directory: '/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1' > * S: '/var/tmp/portage/dev-python/pypdf-4.0.1/work/pypdf-4.0.1' >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 923221
: 883520