sbuild (Debian sbuild) 0.86.3~bpo12+1 (03 November 2024) on debusine-worker-arm64-demeter-01.freexian.com
+==============================================================================+
| python-cattrs 23.2.3-1 (arm64) Mon, 18 Nov 2024 01:13:24 +0000 |
+==============================================================================+
Package: python-cattrs
Version: 23.2.3-1
Source Version: 23.2.3-1
Distribution: sid
Machine Architecture: arm64
Host Architecture: arm64
Build Architecture: arm64
Build Type: binary
I: No tarballs found in /var/lib/debusine/worker/.cache/sbuild
Unpacking /var/lib/debusine/worker/system-images/957781/system.tar.xz to /tmp/tmp.sbuild.bvM_Z5QEPF...
I: NOTICE: Log filtering will replace 'sbuild-unshare-dummy-location' with '<<CHROOT>>'
+------------------------------------------------------------------------------+
| Chroot Setup Commands |
+------------------------------------------------------------------------------+
rm -f /etc/resolv.conf
----------------------
I: Finished running 'rm -f /etc/resolv.conf'.
Finished processing commands.
--------------------------------------------------------------------------------
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/dpkg-dbgsym_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/dpkg_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/dselect-dbgsym_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/dselect_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/libdpkg-dev_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/dpkg-dev_1.22.12~1.gbp82cafd_all.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-4x7f4skv/libdpkg-perl_1.22.12~1.gbp82cafd_all.deb to /<<CHROOT>>...
I: NOTICE: Log filtering will replace 'build/python-cattrs-W0UsFi/resolver-DYDfRi' with '<<RESOLVERDIR>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ InRelease
Ign:1 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ InRelease
Get:2 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ Release [606 B]
Get:3 http://deb.debian.org/debian sid InRelease [202 kB]
Get:2 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ Release [606 B]
Get:4 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ Release.gpg
Ign:4 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ Release.gpg
Get:5 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ Packages [9246 B]
Get:6 http://deb.debian.org/debian sid/main arm64 Packages [9955 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 Components [4907 kB]
Fetched 15.1 MB in 2s (6425 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
The following packages will be upgraded:
apt bsdextrautils bsdutils debianutils dpkg dpkg-dev libapt-pkg6.0t64
libaudit-common libaudit1 libblkid1 libbrotli1 libcap-ng0 libdpkg-perl
libglib2.0-0t64 libmarkdown2 libmount1 libpcre2-8-0 libseccomp2 libselinux1
libsemanage2 libsmartcols1 libsystemd0 libudev1 libuuid1 libxml2 login
login.defs mount passwd util-linux
30 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 9274 kB/12.8 MB of archives.
After this operation, 603 kB disk space will be freed.
Get:1 http://deb.debian.org/debian sid/main arm64 bsdutils arm64 1:2.40.2-11 [104 kB]
Get:2 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ dpkg 1.22.12~1.gbp82cafd [1513 kB]
Get:3 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ dpkg-dev 1.22.12~1.gbp82cafd [1337 kB]
Get:4 http://deb.debian.org/debian sid/main arm64 debianutils arm64 5.21 [92.1 kB]
Get:5 http://deb.debian.org/debian sid/main arm64 libsystemd0 arm64 257~rc2-3 [416 kB]
Get:6 file:/build/python-cattrs-W0UsFi/resolver-vVpGgP/apt_archive ./ libdpkg-perl 1.22.12~1.gbp82cafd [647 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 libudev1 arm64 257~rc2-3 [139 kB]
Get:8 http://deb.debian.org/debian sid/main arm64 libapt-pkg6.0t64 arm64 2.9.11 [921 kB]
Get:9 http://deb.debian.org/debian sid/main arm64 bsdextrautils arm64 2.40.2-11 [91.2 kB]
Get:10 http://deb.debian.org/debian sid/main arm64 libblkid1 arm64 2.40.2-11 [162 kB]
Get:11 http://deb.debian.org/debian sid/main arm64 libmount1 arm64 2.40.2-11 [190 kB]
Get:12 http://deb.debian.org/debian sid/main arm64 libsmartcols1 arm64 2.40.2-11 [135 kB]
Get:13 http://deb.debian.org/debian sid/main arm64 mount arm64 2.40.2-11 [153 kB]
Get:14 http://deb.debian.org/debian sid/main arm64 libuuid1 arm64 2.40.2-11 [35.7 kB]
Get:15 http://deb.debian.org/debian sid/main arm64 util-linux arm64 2.40.2-11 [1170 kB]
Get:16 http://deb.debian.org/debian sid/main arm64 libpcre2-8-0 arm64 10.44-4 [243 kB]
Get:17 http://deb.debian.org/debian sid/main arm64 libselinux1 arm64 3.7-3+b1 [72.1 kB]
Get:18 http://deb.debian.org/debian sid/main arm64 libseccomp2 arm64 2.5.5-1+b3 [46.8 kB]
Get:19 http://deb.debian.org/debian sid/main arm64 apt arm64 2.9.11 [1287 kB]
Get:20 http://deb.debian.org/debian sid/main arm64 libaudit-common all 1:4.0.2-2 [12.7 kB]
Get:21 http://deb.debian.org/debian sid/main arm64 libcap-ng0 arm64 0.8.5-3+b1 [17.0 kB]
Get:22 http://deb.debian.org/debian sid/main arm64 libaudit1 arm64 1:4.0.2-2 [54.2 kB]
Get:23 http://deb.debian.org/debian sid/main arm64 login arm64 1:4.16.0-2+really2.40.2-11 [80.0 kB]
Get:24 http://deb.debian.org/debian sid/main arm64 login.defs all 1:4.16.0-5 [185 kB]
Get:25 http://deb.debian.org/debian sid/main arm64 libsemanage2 arm64 3.7-2+b1 [84.5 kB]
Get:26 http://deb.debian.org/debian sid/main arm64 passwd arm64 1:4.16.0-5 [1210 kB]
Get:27 http://deb.debian.org/debian sid/main arm64 libbrotli1 arm64 1.1.0-2+b6 [297 kB]
Get:28 http://deb.debian.org/debian sid/main arm64 libglib2.0-0t64 arm64 2.82.2-3 [1411 kB]
Get:29 http://deb.debian.org/debian sid/main arm64 libmarkdown2 arm64 2.2.7-2.1 [33.1 kB]
Get:30 http://deb.debian.org/debian sid/main arm64 libxml2 arm64 2.12.7+dfsg+really2.9.14-0.2+b1 [630 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 9274 kB in 0s (59.9 MB/s)
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17129 files and directories currently installed.)
Preparing to unpack .../bsdutils_1%3a2.40.2-11_arm64.deb ...
Unpacking bsdutils (1:2.40.2-11) over (1:2.40.2-10) ...
Setting up bsdutils (1:2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17129 files and directories currently installed.)
Preparing to unpack .../debianutils_5.21_arm64.deb ...
Unpacking debianutils (5.21) over (5.20+b1) ...
Setting up debianutils (5.21) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17128 files and directories currently installed.)
Preparing to unpack .../libsystemd0_257~rc2-3_arm64.deb ...
Unpacking libsystemd0:arm64 (257~rc2-3) over (257~rc1-4) ...
Setting up libsystemd0:arm64 (257~rc2-3) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17128 files and directories currently installed.)
Preparing to unpack .../libudev1_257~rc2-3_arm64.deb ...
Unpacking libudev1:arm64 (257~rc2-3) over (257~rc1-4) ...
Setting up libudev1:arm64 (257~rc2-3) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17128 files and directories currently installed.)
Preparing to unpack .../libapt-pkg6.0t64_2.9.11_arm64.deb ...
Unpacking libapt-pkg6.0t64:arm64 (2.9.11) over (2.9.10) ...
Setting up libapt-pkg6.0t64:arm64 (2.9.11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17128 files and directories currently installed.)
Preparing to unpack .../dpkg_1.22.12~1.gbp82cafd_arm64.deb ...
Unpacking dpkg (1.22.12~1.gbp82cafd) over (1.22.11) ...
Setting up dpkg (1.22.12~1.gbp82cafd) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17127 files and directories currently installed.)
Preparing to unpack .../bsdextrautils_2.40.2-11_arm64.deb ...
Unpacking bsdextrautils (2.40.2-11) over (2.40.2-10) ...
Preparing to unpack .../libblkid1_2.40.2-11_arm64.deb ...
Unpacking libblkid1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libblkid1:arm64 (2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17123 files and directories currently installed.)
Preparing to unpack .../libmount1_2.40.2-11_arm64.deb ...
Unpacking libmount1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libmount1:arm64 (2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17123 files and directories currently installed.)
Preparing to unpack .../libsmartcols1_2.40.2-11_arm64.deb ...
Unpacking libsmartcols1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libsmartcols1:arm64 (2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17123 files and directories currently installed.)
Preparing to unpack .../mount_2.40.2-11_arm64.deb ...
Unpacking mount (2.40.2-11) over (2.40.2-10) ...
Preparing to unpack .../libuuid1_2.40.2-11_arm64.deb ...
Unpacking libuuid1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libuuid1:arm64 (2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17123 files and directories currently installed.)
Preparing to unpack .../util-linux_2.40.2-11_arm64.deb ...
Unpacking util-linux (2.40.2-11) over (2.40.2-10) ...
Setting up util-linux (2.40.2-11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17120 files and directories currently installed.)
Preparing to unpack .../libpcre2-8-0_10.44-4_arm64.deb ...
Unpacking libpcre2-8-0:arm64 (10.44-4) over (10.42-4+b2) ...
Setting up libpcre2-8-0:arm64 (10.44-4) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17119 files and directories currently installed.)
Preparing to unpack .../libselinux1_3.7-3+b1_arm64.deb ...
Unpacking libselinux1:arm64 (3.7-3+b1) over (3.7-3) ...
Setting up libselinux1:arm64 (3.7-3+b1) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17120 files and directories currently installed.)
Preparing to unpack .../libseccomp2_2.5.5-1+b3_arm64.deb ...
Unpacking libseccomp2:arm64 (2.5.5-1+b3) over (2.5.5-1+b2) ...
Setting up libseccomp2:arm64 (2.5.5-1+b3) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17120 files and directories currently installed.)
Preparing to unpack .../archives/apt_2.9.11_arm64.deb ...
Unpacking apt (2.9.11) over (2.9.10) ...
Setting up apt (2.9.11) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17117 files and directories currently installed.)
Preparing to unpack .../libaudit-common_1%3a4.0.2-2_all.deb ...
Unpacking libaudit-common (1:4.0.2-2) over (1:4.0.1-3) ...
Setting up libaudit-common (1:4.0.2-2) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17117 files and directories currently installed.)
Preparing to unpack .../libcap-ng0_0.8.5-3+b1_arm64.deb ...
Unpacking libcap-ng0:arm64 (0.8.5-3+b1) over (0.8.5-3) ...
Setting up libcap-ng0:arm64 (0.8.5-3+b1) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17118 files and directories currently installed.)
Preparing to unpack .../libaudit1_1%3a4.0.2-2_arm64.deb ...
Unpacking libaudit1:arm64 (1:4.0.2-2) over (1:4.0.1-3) ...
Setting up libaudit1:arm64 (1:4.0.2-2) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 17118 files and directories currently installed.)
Preparing to unpack .../0-login_1%3a4.16.0-2+really2.40.2-11_arm64.deb ...
Unpacking login (1:4.16.0-2+really2.40.2-11) over (1:4.16.0-2+really2.40.2-10) ...
Preparing to unpack .../1-login.defs_1%3a4.16.0-5_all.deb ...
Unpacking login.defs (1:4.16.0-5) over (1:4.16.0-4) ...
Preparing to unpack .../2-libsemanage2_3.7-2+b1_arm64.deb ...
Unpacking libsemanage2:arm64 (3.7-2+b1) over (3.7-2) ...
Preparing to unpack .../3-passwd_1%3a4.16.0-5_arm64.deb ...
Unpacking passwd (1:4.16.0-5) over (1:4.16.0-4) ...
Preparing to unpack .../4-dpkg-dev_1.22.12~1.gbp82cafd_all.deb ...
Unpacking dpkg-dev (1.22.12~1.gbp82cafd) over (1.22.11) ...
Preparing to unpack .../5-libdpkg-perl_1.22.12~1.gbp82cafd_all.deb ...
Unpacking libdpkg-perl (1.22.12~1.gbp82cafd) over (1.22.11) ...
Preparing to unpack .../6-libbrotli1_1.1.0-2+b6_arm64.deb ...
Unpacking libbrotli1:arm64 (1.1.0-2+b6) over (1.1.0-2+b5) ...
Preparing to unpack .../7-libglib2.0-0t64_2.82.2-3_arm64.deb ...
Unpacking libglib2.0-0t64:arm64 (2.82.2-3) over (2.82.2-2) ...
Preparing to unpack .../8-libmarkdown2_2.2.7-2.1_arm64.deb ...
Unpacking libmarkdown2:arm64 (2.2.7-2.1) over (2.2.7-2+b1) ...
Preparing to unpack .../9-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_arm64.deb ...
Unpacking libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.2+b1) over (2.12.7+dfsg+really2.9.14-0.1) ...
Setting up bsdextrautils (2.40.2-11) ...
Setting up login.defs (1:4.16.0-5) ...
Installing new version of config file /etc/login.defs ...
Setting up libbrotli1:arm64 (1.1.0-2+b6) ...
Setting up libglib2.0-0t64:arm64 (2.82.2-3) ...
No schema files found: doing nothing.
Setting up libdpkg-perl (1.22.12~1.gbp82cafd) ...
Setting up mount (2.40.2-11) ...
Setting up libsemanage2:arm64 (3.7-2+b1) ...
Setting up libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Setting up libmarkdown2:arm64 (2.2.7-2.1) ...
Setting up login (1:4.16.0-2+really2.40.2-11) ...
Setting up dpkg-dev (1.22.12~1.gbp82cafd) ...
Setting up passwd (1:4.16.0-5) ...
Processing triggers for man-db (2.13.0-1) ...
Processing triggers for libc-bin (2.40-3) ...
+------------------------------------------------------------------------------+
| Fetch source files |
+------------------------------------------------------------------------------+
Local sources
-------------
/tmp/debusine-fetch-exec-upload-4x7f4skv/python-cattrs_23.2.3-1.dsc exists in /tmp/debusine-fetch-exec-upload-4x7f4skv; copying to chroot
I: NOTICE: Log filtering will replace 'build/python-cattrs-W0UsFi/python-cattrs-23.2.3' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/python-cattrs-W0UsFi' with '<<BUILDDIR>>'
+------------------------------------------------------------------------------+
| Install package build dependencies |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-attr, python3-bson, python3-hatch-vcs, python3-hatchling, python3-hypothesis, python3-msgpack, python3-pytest, python3-pytest-benchmark, python3-tomlkit, python3-ujson, python3-yaml, build-essential, fakeroot
Filtered Build-Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-attr, python3-bson, python3-hatch-vcs, python3-hatchling, python3-hypothesis, python3-msgpack, python3-pytest, python3-pytest-benchmark, python3-tomlkit, python3-ujson, python3-yaml, build-essential, fakeroot
dpkg-deb: warning: root directory has unusual owner or group 998:999.
Hint: either pass --root-owner-group, see dpkg-build-api(7) or add an explicit 'Rules-Requires-Root: no' in debian/control.
dpkg-deb: warning: ignoring 1 warning about the control file(s)
dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<<RESOLVERDIR>>/apt_archive/sbuild-build-depends-main-dummy.deb'.
Ign:1 copy:/<<RESOLVERDIR>>/apt_archive ./ InRelease
Get:2 copy:/<<RESOLVERDIR>>/apt_archive ./ Release [609 B]
Ign:3 copy:/<<RESOLVERDIR>>/apt_archive ./ Release.gpg
Get:4 copy:/<<RESOLVERDIR>>/apt_archive ./ Sources [946 B]
Get:5 copy:/<<RESOLVERDIR>>/apt_archive ./ Packages [879 B]
Fetched 2434 B in 0s (213 kB/s)
Reading package lists...
Get:1 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ InRelease
Ign:1 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ InRelease
Get:2 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ Release [606 B]
Get:2 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ Release [606 B]
Get:3 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ Release.gpg
Ign:3 file:/<<BUILDDIR>>/resolver-vVpGgP/apt_archive ./ Release.gpg
Reading package lists...
Reading package lists...
Install main build dependencies (apt-based resolver)
----------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
autoconf automake autopoint autotools-dev build-essential cpp cpp-14
cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper dh-autoreconf
dh-python dh-strip-nondeterminism dwz fakeroot g++ g++-14
g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14
gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu libasan8 libc-dev-bin
libc6-dev libcc1-0 libcrypt-dev libdebhelper-perl libdouble-conversion3
libelf1t64 libexpat1 libfakeroot libfile-stripnondeterminism-perl
libgcc-14-dev libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libmpfr6
libncursesw6 libnsl2 libpython3-stdlib libpython3.12-minimal
libpython3.12-stdlib libpython3.13-minimal libpython3.13-stdlib
libstdc++-14-dev libtirpc-common libtirpc3t64 libtool libtsan2 libubsan1
linux-libc-dev m4 media-types po-debconf pybuild-plugin-pyproject python3
python3-all python3-attr python3-autocommand python3-bson python3-build
python3-cpuinfo python3-dateutil python3-hatch-vcs python3-hatchling
python3-hypothesis python3-inflect python3-iniconfig python3-installer
python3-jaraco.context python3-jaraco.functools python3-jaraco.text
python3-minimal python3-more-itertools python3-msgpack python3-packaging
python3-pathspec python3-pkg-resources python3-pluggy
python3-pyproject-hooks python3-pytest python3-pytest-benchmark
python3-setuptools python3-setuptools-scm python3-sortedcontainers
python3-toml python3-tomlkit python3-trove-classifiers python3-typeguard
python3-typing-extensions python3-ujson python3-wheel python3-yaml
python3-zipp python3.12 python3.12-minimal python3.13 python3.13-minimal
rpcsvc-proto
Suggested packages:
autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales
cpp-14-doc dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb
gcc-doc gdb-aarch64-linux-gnu libc-devtools glibc-doc libstdc++-14-doc
libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl
python3-doc python3-tk python3-venv python-attr-doc python3-pip
python-build-doc python-hypothesis-doc python-installer-doc
python-setuptools-doc python-sortedcontainers-doc python3.12-venv
python3.12-doc binfmt-support python3.13-venv python3.13-doc
Recommended packages:
manpages manpages-dev libarchive-cpio-perl libgpm2 libltdl-dev
libmail-sendmail-perl python3-bson-ext python3-click python3-pygments
python3-elasticsearch python3-freezegun python3-pygal
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev build-essential cpp cpp-14
cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper dh-autoreconf
dh-python dh-strip-nondeterminism dwz fakeroot g++ g++-14
g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14
gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu libasan8 libc-dev-bin
libc6-dev libcc1-0 libcrypt-dev libdebhelper-perl libdouble-conversion3
libelf1t64 libexpat1 libfakeroot libfile-stripnondeterminism-perl
libgcc-14-dev libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libmpfr6
libncursesw6 libnsl2 libpython3-stdlib libpython3.12-minimal
libpython3.12-stdlib libpython3.13-minimal libpython3.13-stdlib
libstdc++-14-dev libtirpc-common libtirpc3t64 libtool libtsan2 libubsan1
linux-libc-dev m4 media-types po-debconf pybuild-plugin-pyproject python3
python3-all python3-attr python3-autocommand python3-bson python3-build
python3-cpuinfo python3-dateutil python3-hatch-vcs python3-hatchling
python3-hypothesis python3-inflect python3-iniconfig python3-installer
python3-jaraco.context python3-jaraco.functools python3-jaraco.text
python3-minimal python3-more-itertools python3-msgpack python3-packaging
python3-pathspec python3-pkg-resources python3-pluggy
python3-pyproject-hooks python3-pytest python3-pytest-benchmark
python3-setuptools python3-setuptools-scm python3-sortedcontainers
python3-toml python3-tomlkit python3-trove-classifiers python3-typeguard
python3-typing-extensions python3-ujson python3-wheel python3-yaml
python3-zipp python3.12 python3.12-minimal python3.13 python3.13-minimal
rpcsvc-proto sbuild-build-depends-main-dummy
0 upgraded, 104 newly installed, 0 to remove and 0 not upgraded.
Need to get 75.0 MB of archives.
After this operation, 303 MB of additional disk space will be used.
Get:1 copy:/<<RESOLVERDIR>>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [976 B]
Get:2 http://deb.debian.org/debian sid/main arm64 libpython3.12-minimal arm64 3.12.7-3 [808 kB]
Get:3 http://deb.debian.org/debian sid/main arm64 libexpat1 arm64 2.6.4-1 [90.7 kB]
Get:4 http://deb.debian.org/debian sid/main arm64 python3.12-minimal arm64 3.12.7-3 [1940 kB]
Get:5 http://deb.debian.org/debian sid/main arm64 python3-minimal arm64 3.12.7-1 [26.8 kB]
Get:6 http://deb.debian.org/debian sid/main arm64 media-types all 10.1.0 [26.9 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 libncursesw6 arm64 6.5-2+b1 [125 kB]
Get:8 http://deb.debian.org/debian sid/main arm64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB]
Get:9 http://deb.debian.org/debian sid/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.3+b1 [78.7 kB]
Get:10 http://deb.debian.org/debian sid/main arm64 libnsl2 arm64 1.3.0-3+b3 [37.9 kB]
Get:11 http://deb.debian.org/debian sid/main arm64 libpython3.12-stdlib arm64 3.12.7-3 [1902 kB]
Get:12 http://deb.debian.org/debian sid/main arm64 python3.12 arm64 3.12.7-3 [671 kB]
Get:13 http://deb.debian.org/debian sid/main arm64 libpython3-stdlib arm64 3.12.7-1 [9708 B]
Get:14 http://deb.debian.org/debian sid/main arm64 python3 arm64 3.12.7-1 [27.8 kB]
Get:15 http://deb.debian.org/debian sid/main arm64 libpython3.13-minimal arm64 3.13.0-2 [850 kB]
Get:16 http://deb.debian.org/debian sid/main arm64 python3.13-minimal arm64 3.13.0-2 [1838 kB]
Get:17 http://deb.debian.org/debian sid/main arm64 m4 arm64 1.4.19-4 [277 kB]
Get:18 http://deb.debian.org/debian sid/main arm64 autoconf all 2.72-3 [493 kB]
Get:19 http://deb.debian.org/debian sid/main arm64 autotools-dev all 20220109.1 [51.6 kB]
Get:20 http://deb.debian.org/debian sid/main arm64 automake all 1:1.16.5-1.3 [823 kB]
Get:21 http://deb.debian.org/debian sid/main arm64 autopoint all 0.22.5-2 [723 kB]
Get:22 http://deb.debian.org/debian sid/main arm64 libc-dev-bin arm64 2.40-3 [50.9 kB]
Get:23 http://deb.debian.org/debian sid/main arm64 linux-libc-dev all 6.11.7-1 [2454 kB]
Get:24 http://deb.debian.org/debian sid/main arm64 libcrypt-dev arm64 1:4.4.36-5 [122 kB]
Get:25 http://deb.debian.org/debian sid/main arm64 rpcsvc-proto arm64 1.4.3-1+b1 [60.5 kB]
Get:26 http://deb.debian.org/debian sid/main arm64 libc6-dev arm64 2.40-3 [1591 kB]
Get:27 http://deb.debian.org/debian sid/main arm64 libisl23 arm64 0.27-1 [601 kB]
Get:28 http://deb.debian.org/debian sid/main arm64 libmpfr6 arm64 4.2.1-1+b2 [680 kB]
Get:29 http://deb.debian.org/debian sid/main arm64 libmpc3 arm64 1.3.1-1+b3 [50.5 kB]
Get:30 http://deb.debian.org/debian sid/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-8 [9166 kB]
Get:31 http://deb.debian.org/debian sid/main arm64 cpp-14 arm64 14.2.0-8 [1284 B]
Get:32 http://deb.debian.org/debian sid/main arm64 cpp-aarch64-linux-gnu arm64 4:14.2.0-1 [4832 B]
Get:33 http://deb.debian.org/debian sid/main arm64 cpp arm64 4:14.2.0-1 [1568 B]
Get:34 http://deb.debian.org/debian sid/main arm64 libcc1-0 arm64 14.2.0-8 [42.2 kB]
Get:35 http://deb.debian.org/debian sid/main arm64 libitm1 arm64 14.2.0-8 [24.2 kB]
Get:36 http://deb.debian.org/debian sid/main arm64 libasan8 arm64 14.2.0-8 [2579 kB]
Get:37 http://deb.debian.org/debian sid/main arm64 liblsan0 arm64 14.2.0-8 [1161 kB]
Get:38 http://deb.debian.org/debian sid/main arm64 libtsan2 arm64 14.2.0-8 [2386 kB]
Get:39 http://deb.debian.org/debian sid/main arm64 libubsan1 arm64 14.2.0-8 [1039 kB]
Get:40 http://deb.debian.org/debian sid/main arm64 libhwasan0 arm64 14.2.0-8 [1442 kB]
Get:41 http://deb.debian.org/debian sid/main arm64 libgcc-14-dev arm64 14.2.0-8 [2365 kB]
Get:42 http://deb.debian.org/debian sid/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-8 [17.7 MB]
Get:43 http://deb.debian.org/debian sid/main arm64 gcc-14 arm64 14.2.0-8 [519 kB]
Get:44 http://deb.debian.org/debian sid/main arm64 gcc-aarch64-linux-gnu arm64 4:14.2.0-1 [1440 B]
Get:45 http://deb.debian.org/debian sid/main arm64 gcc arm64 4:14.2.0-1 [5136 B]
Get:46 http://deb.debian.org/debian sid/main arm64 libstdc++-14-dev arm64 14.2.0-8 [2267 kB]
Get:47 http://deb.debian.org/debian sid/main arm64 g++-14-aarch64-linux-gnu arm64 14.2.0-8 [10.1 MB]
Get:48 http://deb.debian.org/debian sid/main arm64 g++-14 arm64 14.2.0-8 [20.2 kB]
Get:49 http://deb.debian.org/debian sid/main arm64 g++-aarch64-linux-gnu arm64 4:14.2.0-1 [1200 B]
Get:50 http://deb.debian.org/debian sid/main arm64 g++ arm64 4:14.2.0-1 [1332 B]
Get:51 http://deb.debian.org/debian sid/main arm64 build-essential arm64 12.12 [4624 B]
Get:52 http://deb.debian.org/debian sid/main arm64 libdebhelper-perl all 13.20 [89.7 kB]
Get:53 http://deb.debian.org/debian sid/main arm64 libtool all 2.4.7-8 [517 kB]
Get:54 http://deb.debian.org/debian sid/main arm64 dh-autoreconf all 20 [17.1 kB]
Get:55 http://deb.debian.org/debian sid/main arm64 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB]
Get:56 http://deb.debian.org/debian sid/main arm64 dh-strip-nondeterminism all 1.14.0-1 [8448 B]
Get:57 http://deb.debian.org/debian sid/main arm64 libelf1t64 arm64 0.192-4 [189 kB]
Get:58 http://deb.debian.org/debian sid/main arm64 dwz arm64 0.15-1+b1 [102 kB]
Get:59 http://deb.debian.org/debian sid/main arm64 po-debconf all 1.0.21+nmu1 [248 kB]
Get:60 http://deb.debian.org/debian sid/main arm64 debhelper all 13.20 [915 kB]
Get:61 http://deb.debian.org/debian sid/main arm64 python3-autocommand all 2.2.2-3 [13.6 kB]
Get:62 http://deb.debian.org/debian sid/main arm64 python3-more-itertools all 10.5.0-1 [63.8 kB]
Get:63 http://deb.debian.org/debian sid/main arm64 python3-typing-extensions all 4.12.2-2 [73.0 kB]
Get:64 http://deb.debian.org/debian sid/main arm64 python3-typeguard all 4.4.1-1 [37.0 kB]
Get:65 http://deb.debian.org/debian sid/main arm64 python3-inflect all 7.3.1-2 [32.4 kB]
Get:66 http://deb.debian.org/debian sid/main arm64 python3-jaraco.context all 6.0.0-1 [7984 B]
Get:67 http://deb.debian.org/debian sid/main arm64 python3-jaraco.functools all 4.1.0-1 [12.0 kB]
Get:68 http://deb.debian.org/debian sid/main arm64 python3-pkg-resources all 75.2.0-1 [213 kB]
Get:69 http://deb.debian.org/debian sid/main arm64 python3-jaraco.text all 4.0.0-1 [11.4 kB]
Get:70 http://deb.debian.org/debian sid/main arm64 python3-zipp all 3.21.0-1 [10.6 kB]
Get:71 http://deb.debian.org/debian sid/main arm64 python3-setuptools all 75.2.0-1 [731 kB]
Get:72 http://deb.debian.org/debian sid/main arm64 dh-python all 6.20241024 [109 kB]
Get:73 http://deb.debian.org/debian sid/main arm64 libfakeroot arm64 1.36-1 [29.1 kB]
Get:74 http://deb.debian.org/debian sid/main arm64 fakeroot arm64 1.36-1 [74.4 kB]
Get:75 http://deb.debian.org/debian sid/main arm64 libdouble-conversion3 arm64 3.3.0-1+b2 [37.3 kB]
Get:76 http://deb.debian.org/debian sid/main arm64 libpython3.13-stdlib arm64 3.13.0-2 [1922 kB]
Get:77 http://deb.debian.org/debian sid/main arm64 python3-packaging all 24.2-1 [55.3 kB]
Get:78 http://deb.debian.org/debian sid/main arm64 python3-pyproject-hooks all 1.2.0-1 [11.7 kB]
Get:79 http://deb.debian.org/debian sid/main arm64 python3-toml all 0.10.2-1 [16.2 kB]
Get:80 http://deb.debian.org/debian sid/main arm64 python3-wheel all 0.45.0-1 [56.7 kB]
Get:81 http://deb.debian.org/debian sid/main arm64 python3-build all 1.2.2-1 [36.0 kB]
Get:82 http://deb.debian.org/debian sid/main arm64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB]
Get:83 http://deb.debian.org/debian sid/main arm64 pybuild-plugin-pyproject all 6.20241024 [11.4 kB]
Get:84 http://deb.debian.org/debian sid/main arm64 python3.13 arm64 3.13.0-2 [730 kB]
Get:85 http://deb.debian.org/debian sid/main arm64 python3-all arm64 3.12.7-1 [1052 B]
Get:86 http://deb.debian.org/debian sid/main arm64 python3-attr all 24.2.0-1 [68.4 kB]
Get:87 http://deb.debian.org/debian sid/main arm64 python3-bson all 4.10.1-2 [87.0 kB]
Get:88 http://deb.debian.org/debian sid/main arm64 python3-cpuinfo all 9.0.0+git20221119-2 [23.4 kB]
Get:89 http://deb.debian.org/debian sid/main arm64 python3-dateutil all 2.9.0-3 [79.3 kB]
Get:90 http://deb.debian.org/debian sid/main arm64 python3-pathspec all 0.12.1-1 [28.1 kB]
Get:91 http://deb.debian.org/debian sid/main arm64 python3-pluggy all 1.5.0-1 [26.9 kB]
Get:92 http://deb.debian.org/debian sid/main arm64 python3-trove-classifiers all 2024.9.12-1 [10.2 kB]
Get:93 http://deb.debian.org/debian sid/main arm64 python3-hatchling all 1.26.3-1 [47.0 kB]
Get:94 http://deb.debian.org/debian sid/main arm64 python3-setuptools-scm all 8.1.0-1 [40.5 kB]
Get:95 http://deb.debian.org/debian sid/main arm64 python3-hatch-vcs all 0.4.0-1 [8336 B]
Get:96 http://deb.debian.org/debian sid/main arm64 python3-sortedcontainers all 2.4.0-2 [31.9 kB]
Get:97 http://deb.debian.org/debian sid/main arm64 python3-hypothesis all 6.116.0-1 [321 kB]
Get:98 http://deb.debian.org/debian sid/main arm64 python3-iniconfig all 1.1.1-2 [6396 B]
Get:99 http://deb.debian.org/debian sid/main arm64 python3-msgpack arm64 1.0.3-3+b4 [96.8 kB]
Get:100 http://deb.debian.org/debian sid/main arm64 python3-pytest all 8.3.3-1 [249 kB]
Get:101 http://deb.debian.org/debian sid/main arm64 python3-pytest-benchmark all 5.1.0-1 [44.4 kB]
Get:102 http://deb.debian.org/debian sid/main arm64 python3-tomlkit all 0.13.2-1 [42.7 kB]
Get:103 http://deb.debian.org/debian sid/main arm64 python3-ujson arm64 5.10.0-1+b3 [24.6 kB]
Get:104 http://deb.debian.org/debian sid/main arm64 python3-yaml arm64 6.0.2-1+b1 [148 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 75.0 MB in 1s (102 MB/s)
Selecting previously unselected package libpython3.12-minimal:arm64.
(Reading database ... 17119 files and directories currently installed.)
Preparing to unpack .../libpython3.12-minimal_3.12.7-3_arm64.deb ...
Unpacking libpython3.12-minimal:arm64 (3.12.7-3) ...
Selecting previously unselected package libexpat1:arm64.
Preparing to unpack .../libexpat1_2.6.4-1_arm64.deb ...
Unpacking libexpat1:arm64 (2.6.4-1) ...
Selecting previously unselected package python3.12-minimal.
Preparing to unpack .../python3.12-minimal_3.12.7-3_arm64.deb ...
Unpacking python3.12-minimal (3.12.7-3) ...
Setting up libpython3.12-minimal:arm64 (3.12.7-3) ...
Setting up libexpat1:arm64 (2.6.4-1) ...
Setting up python3.12-minimal (3.12.7-3) ...
Selecting previously unselected package python3-minimal.
(Reading database ... 17439 files and directories currently installed.)
Preparing to unpack .../0-python3-minimal_3.12.7-1_arm64.deb ...
Unpacking python3-minimal (3.12.7-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../1-media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package libncursesw6:arm64.
Preparing to unpack .../2-libncursesw6_6.5-2+b1_arm64.deb ...
Unpacking libncursesw6:arm64 (6.5-2+b1) ...
Selecting previously unselected package libtirpc-common.
Preparing to unpack .../3-libtirpc-common_1.3.4+ds-1.3_all.deb ...
Unpacking libtirpc-common (1.3.4+ds-1.3) ...
Selecting previously unselected package libtirpc3t64:arm64.
Preparing to unpack .../4-libtirpc3t64_1.3.4+ds-1.3+b1_arm64.deb ...
Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64'
Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64'
Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.3+b1) ...
Selecting previously unselected package libnsl2:arm64.
Preparing to unpack .../5-libnsl2_1.3.0-3+b3_arm64.deb ...
Unpacking libnsl2:arm64 (1.3.0-3+b3) ...
Selecting previously unselected package libpython3.12-stdlib:arm64.
Preparing to unpack .../6-libpython3.12-stdlib_3.12.7-3_arm64.deb ...
Unpacking libpython3.12-stdlib:arm64 (3.12.7-3) ...
Selecting previously unselected package python3.12.
Preparing to unpack .../7-python3.12_3.12.7-3_arm64.deb ...
Unpacking python3.12 (3.12.7-3) ...
Selecting previously unselected package libpython3-stdlib:arm64.
Preparing to unpack .../8-libpython3-stdlib_3.12.7-1_arm64.deb ...
Unpacking libpython3-stdlib:arm64 (3.12.7-1) ...
Setting up python3-minimal (3.12.7-1) ...
Selecting previously unselected package python3.
(Reading database ... 17912 files and directories currently installed.)
Preparing to unpack .../00-python3_3.12.7-1_arm64.deb ...
Unpacking python3 (3.12.7-1) ...
Selecting previously unselected package libpython3.13-minimal:arm64.
Preparing to unpack .../01-libpython3.13-minimal_3.13.0-2_arm64.deb ...
Unpacking libpython3.13-minimal:arm64 (3.13.0-2) ...
Selecting previously unselected package python3.13-minimal.
Preparing to unpack .../02-python3.13-minimal_3.13.0-2_arm64.deb ...
Unpacking python3.13-minimal (3.13.0-2) ...
Selecting previously unselected package m4.
Preparing to unpack .../03-m4_1.4.19-4_arm64.deb ...
Unpacking m4 (1.4.19-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../04-autoconf_2.72-3_all.deb ...
Unpacking autoconf (2.72-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../05-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../06-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../07-autopoint_0.22.5-2_all.deb ...
Unpacking autopoint (0.22.5-2) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../08-libc-dev-bin_2.40-3_arm64.deb ...
Unpacking libc-dev-bin (2.40-3) ...
Selecting previously unselected package linux-libc-dev.
Preparing to unpack .../09-linux-libc-dev_6.11.7-1_all.deb ...
Unpacking linux-libc-dev (6.11.7-1) ...
Selecting previously unselected package libcrypt-dev:arm64.
Preparing to unpack .../10-libcrypt-dev_1%3a4.4.36-5_arm64.deb ...
Unpacking libcrypt-dev:arm64 (1:4.4.36-5) ...
Selecting previously unselected package rpcsvc-proto.
Preparing to unpack .../11-rpcsvc-proto_1.4.3-1+b1_arm64.deb ...
Unpacking rpcsvc-proto (1.4.3-1+b1) ...
Selecting previously unselected package libc6-dev:arm64.
Preparing to unpack .../12-libc6-dev_2.40-3_arm64.deb ...
Unpacking libc6-dev:arm64 (2.40-3) ...
Selecting previously unselected package libisl23:arm64.
Preparing to unpack .../13-libisl23_0.27-1_arm64.deb ...
Unpacking libisl23:arm64 (0.27-1) ...
Selecting previously unselected package libmpfr6:arm64.
Preparing to unpack .../14-libmpfr6_4.2.1-1+b2_arm64.deb ...
Unpacking libmpfr6:arm64 (4.2.1-1+b2) ...
Selecting previously unselected package libmpc3:arm64.
Preparing to unpack .../15-libmpc3_1.3.1-1+b3_arm64.deb ...
Unpacking libmpc3:arm64 (1.3.1-1+b3) ...
Selecting previously unselected package cpp-14-aarch64-linux-gnu.
Preparing to unpack .../16-cpp-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking cpp-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package cpp-14.
Preparing to unpack .../17-cpp-14_14.2.0-8_arm64.deb ...
Unpacking cpp-14 (14.2.0-8) ...
Selecting previously unselected package cpp-aarch64-linux-gnu.
Preparing to unpack .../18-cpp-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking cpp-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package cpp.
Preparing to unpack .../19-cpp_4%3a14.2.0-1_arm64.deb ...
Unpacking cpp (4:14.2.0-1) ...
Selecting previously unselected package libcc1-0:arm64.
Preparing to unpack .../20-libcc1-0_14.2.0-8_arm64.deb ...
Unpacking libcc1-0:arm64 (14.2.0-8) ...
Selecting previously unselected package libitm1:arm64.
Preparing to unpack .../21-libitm1_14.2.0-8_arm64.deb ...
Unpacking libitm1:arm64 (14.2.0-8) ...
Selecting previously unselected package libasan8:arm64.
Preparing to unpack .../22-libasan8_14.2.0-8_arm64.deb ...
Unpacking libasan8:arm64 (14.2.0-8) ...
Selecting previously unselected package liblsan0:arm64.
Preparing to unpack .../23-liblsan0_14.2.0-8_arm64.deb ...
Unpacking liblsan0:arm64 (14.2.0-8) ...
Selecting previously unselected package libtsan2:arm64.
Preparing to unpack .../24-libtsan2_14.2.0-8_arm64.deb ...
Unpacking libtsan2:arm64 (14.2.0-8) ...
Selecting previously unselected package libubsan1:arm64.
Preparing to unpack .../25-libubsan1_14.2.0-8_arm64.deb ...
Unpacking libubsan1:arm64 (14.2.0-8) ...
Selecting previously unselected package libhwasan0:arm64.
Preparing to unpack .../26-libhwasan0_14.2.0-8_arm64.deb ...
Unpacking libhwasan0:arm64 (14.2.0-8) ...
Selecting previously unselected package libgcc-14-dev:arm64.
Preparing to unpack .../27-libgcc-14-dev_14.2.0-8_arm64.deb ...
Unpacking libgcc-14-dev:arm64 (14.2.0-8) ...
Selecting previously unselected package gcc-14-aarch64-linux-gnu.
Preparing to unpack .../28-gcc-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking gcc-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package gcc-14.
Preparing to unpack .../29-gcc-14_14.2.0-8_arm64.deb ...
Unpacking gcc-14 (14.2.0-8) ...
Selecting previously unselected package gcc-aarch64-linux-gnu.
Preparing to unpack .../30-gcc-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking gcc-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package gcc.
Preparing to unpack .../31-gcc_4%3a14.2.0-1_arm64.deb ...
Unpacking gcc (4:14.2.0-1) ...
Selecting previously unselected package libstdc++-14-dev:arm64.
Preparing to unpack .../32-libstdc++-14-dev_14.2.0-8_arm64.deb ...
Unpacking libstdc++-14-dev:arm64 (14.2.0-8) ...
Selecting previously unselected package g++-14-aarch64-linux-gnu.
Preparing to unpack .../33-g++-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking g++-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package g++-14.
Preparing to unpack .../34-g++-14_14.2.0-8_arm64.deb ...
Unpacking g++-14 (14.2.0-8) ...
Selecting previously unselected package g++-aarch64-linux-gnu.
Preparing to unpack .../35-g++-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking g++-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package g++.
Preparing to unpack .../36-g++_4%3a14.2.0-1_arm64.deb ...
Unpacking g++ (4:14.2.0-1) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../37-build-essential_12.12_arm64.deb ...
Unpacking build-essential (12.12) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../38-libdebhelper-perl_13.20_all.deb ...
Unpacking libdebhelper-perl (13.20) ...
Selecting previously unselected package libtool.
Preparing to unpack .../39-libtool_2.4.7-8_all.deb ...
Unpacking libtool (2.4.7-8) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../40-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../41-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../42-dh-strip-nondeterminism_1.14.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.0-1) ...
Selecting previously unselected package libelf1t64:arm64.
Preparing to unpack .../43-libelf1t64_0.192-4_arm64.deb ...
Unpacking libelf1t64:arm64 (0.192-4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../44-dwz_0.15-1+b1_arm64.deb ...
Unpacking dwz (0.15-1+b1) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../45-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../46-debhelper_13.20_all.deb ...
Unpacking debhelper (13.20) ...
Selecting previously unselected package python3-autocommand.
Preparing to unpack .../47-python3-autocommand_2.2.2-3_all.deb ...
Unpacking python3-autocommand (2.2.2-3) ...
Selecting previously unselected package python3-more-itertools.
Preparing to unpack .../48-python3-more-itertools_10.5.0-1_all.deb ...
Unpacking python3-more-itertools (10.5.0-1) ...
Selecting previously unselected package python3-typing-extensions.
Preparing to unpack .../49-python3-typing-extensions_4.12.2-2_all.deb ...
Unpacking python3-typing-extensions (4.12.2-2) ...
Selecting previously unselected package python3-typeguard.
Preparing to unpack .../50-python3-typeguard_4.4.1-1_all.deb ...
Unpacking python3-typeguard (4.4.1-1) ...
Selecting previously unselected package python3-inflect.
Preparing to unpack .../51-python3-inflect_7.3.1-2_all.deb ...
Unpacking python3-inflect (7.3.1-2) ...
Selecting previously unselected package python3-jaraco.context.
Preparing to unpack .../52-python3-jaraco.context_6.0.0-1_all.deb ...
Unpacking python3-jaraco.context (6.0.0-1) ...
Selecting previously unselected package python3-jaraco.functools.
Preparing to unpack .../53-python3-jaraco.functools_4.1.0-1_all.deb ...
Unpacking python3-jaraco.functools (4.1.0-1) ...
Selecting previously unselected package python3-pkg-resources.
Preparing to unpack .../54-python3-pkg-resources_75.2.0-1_all.deb ...
Unpacking python3-pkg-resources (75.2.0-1) ...
Selecting previously unselected package python3-jaraco.text.
Preparing to unpack .../55-python3-jaraco.text_4.0.0-1_all.deb ...
Unpacking python3-jaraco.text (4.0.0-1) ...
Selecting previously unselected package python3-zipp.
Preparing to unpack .../56-python3-zipp_3.21.0-1_all.deb ...
Unpacking python3-zipp (3.21.0-1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../57-python3-setuptools_75.2.0-1_all.deb ...
Unpacking python3-setuptools (75.2.0-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../58-dh-python_6.20241024_all.deb ...
Unpacking dh-python (6.20241024) ...
Selecting previously unselected package libfakeroot:arm64.
Preparing to unpack .../59-libfakeroot_1.36-1_arm64.deb ...
Unpacking libfakeroot:arm64 (1.36-1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../60-fakeroot_1.36-1_arm64.deb ...
Unpacking fakeroot (1.36-1) ...
Selecting previously unselected package libdouble-conversion3:arm64.
Preparing to unpack .../61-libdouble-conversion3_3.3.0-1+b2_arm64.deb ...
Unpacking libdouble-conversion3:arm64 (3.3.0-1+b2) ...
Selecting previously unselected package libpython3.13-stdlib:arm64.
Preparing to unpack .../62-libpython3.13-stdlib_3.13.0-2_arm64.deb ...
Unpacking libpython3.13-stdlib:arm64 (3.13.0-2) ...
Selecting previously unselected package python3-packaging.
Preparing to unpack .../63-python3-packaging_24.2-1_all.deb ...
Unpacking python3-packaging (24.2-1) ...
Selecting previously unselected package python3-pyproject-hooks.
Preparing to unpack .../64-python3-pyproject-hooks_1.2.0-1_all.deb ...
Unpacking python3-pyproject-hooks (1.2.0-1) ...
Selecting previously unselected package python3-toml.
Preparing to unpack .../65-python3-toml_0.10.2-1_all.deb ...
Unpacking python3-toml (0.10.2-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../66-python3-wheel_0.45.0-1_all.deb ...
Unpacking python3-wheel (0.45.0-1) ...
Selecting previously unselected package python3-build.
Preparing to unpack .../67-python3-build_1.2.2-1_all.deb ...
Unpacking python3-build (1.2.2-1) ...
Selecting previously unselected package python3-installer.
Preparing to unpack .../68-python3-installer_0.7.0+dfsg1-3_all.deb ...
Unpacking python3-installer (0.7.0+dfsg1-3) ...
Selecting previously unselected package pybuild-plugin-pyproject.
Preparing to unpack .../69-pybuild-plugin-pyproject_6.20241024_all.deb ...
Unpacking pybuild-plugin-pyproject (6.20241024) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../70-python3.13_3.13.0-2_arm64.deb ...
Unpacking python3.13 (3.13.0-2) ...
Selecting previously unselected package python3-all.
Preparing to unpack .../71-python3-all_3.12.7-1_arm64.deb ...
Unpacking python3-all (3.12.7-1) ...
Selecting previously unselected package python3-attr.
Preparing to unpack .../72-python3-attr_24.2.0-1_all.deb ...
Unpacking python3-attr (24.2.0-1) ...
Selecting previously unselected package python3-bson.
Preparing to unpack .../73-python3-bson_4.10.1-2_all.deb ...
Unpacking python3-bson (4.10.1-2) ...
Selecting previously unselected package python3-cpuinfo.
Preparing to unpack .../74-python3-cpuinfo_9.0.0+git20221119-2_all.deb ...
Unpacking python3-cpuinfo (9.0.0+git20221119-2) ...
Selecting previously unselected package python3-dateutil.
Preparing to unpack .../75-python3-dateutil_2.9.0-3_all.deb ...
Unpacking python3-dateutil (2.9.0-3) ...
Selecting previously unselected package python3-pathspec.
Preparing to unpack .../76-python3-pathspec_0.12.1-1_all.deb ...
Unpacking python3-pathspec (0.12.1-1) ...
Selecting previously unselected package python3-pluggy.
Preparing to unpack .../77-python3-pluggy_1.5.0-1_all.deb ...
Unpacking python3-pluggy (1.5.0-1) ...
Selecting previously unselected package python3-trove-classifiers.
Preparing to unpack .../78-python3-trove-classifiers_2024.9.12-1_all.deb ...
Unpacking python3-trove-classifiers (2024.9.12-1) ...
Selecting previously unselected package python3-hatchling.
Preparing to unpack .../79-python3-hatchling_1.26.3-1_all.deb ...
Unpacking python3-hatchling (1.26.3-1) ...
Selecting previously unselected package python3-setuptools-scm.
Preparing to unpack .../80-python3-setuptools-scm_8.1.0-1_all.deb ...
Unpacking python3-setuptools-scm (8.1.0-1) ...
Selecting previously unselected package python3-hatch-vcs.
Preparing to unpack .../81-python3-hatch-vcs_0.4.0-1_all.deb ...
Unpacking python3-hatch-vcs (0.4.0-1) ...
Selecting previously unselected package python3-sortedcontainers.
Preparing to unpack .../82-python3-sortedcontainers_2.4.0-2_all.deb ...
Unpacking python3-sortedcontainers (2.4.0-2) ...
Selecting previously unselected package python3-hypothesis.
Preparing to unpack .../83-python3-hypothesis_6.116.0-1_all.deb ...
Unpacking python3-hypothesis (6.116.0-1) ...
Selecting previously unselected package python3-iniconfig.
Preparing to unpack .../84-python3-iniconfig_1.1.1-2_all.deb ...
Unpacking python3-iniconfig (1.1.1-2) ...
Selecting previously unselected package python3-msgpack.
Preparing to unpack .../85-python3-msgpack_1.0.3-3+b4_arm64.deb ...
Unpacking python3-msgpack (1.0.3-3+b4) ...
Selecting previously unselected package python3-pytest.
Preparing to unpack .../86-python3-pytest_8.3.3-1_all.deb ...
Unpacking python3-pytest (8.3.3-1) ...
Selecting previously unselected package python3-pytest-benchmark.
Preparing to unpack .../87-python3-pytest-benchmark_5.1.0-1_all.deb ...
Unpacking python3-pytest-benchmark (5.1.0-1) ...
Selecting previously unselected package python3-tomlkit.
Preparing to unpack .../88-python3-tomlkit_0.13.2-1_all.deb ...
Unpacking python3-tomlkit (0.13.2-1) ...
Selecting previously unselected package python3-ujson:arm64.
Preparing to unpack .../89-python3-ujson_5.10.0-1+b3_arm64.deb ...
Unpacking python3-ujson:arm64 (5.10.0-1+b3) ...
Selecting previously unselected package python3-yaml.
Preparing to unpack .../90-python3-yaml_6.0.2-1+b1_arm64.deb ...
Unpacking python3-yaml (6.0.2-1+b1) ...
Selecting previously unselected package sbuild-build-depends-main-dummy.
Preparing to unpack .../91-sbuild-build-depends-main-dummy_0.invalid.0_arm64.deb ...
Unpacking sbuild-build-depends-main-dummy (0.invalid.0) ...
Setting up media-types (10.1.0) ...
Setting up libfile-stripnondeterminism-perl (1.14.0-1) ...
Setting up libdouble-conversion3:arm64 (3.3.0-1+b2) ...
Setting up libtirpc-common (1.3.4+ds-1.3) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up libdebhelper-perl (13.20) ...
Setting up linux-libc-dev (6.11.7-1) ...
Setting up m4 (1.4.19-4) ...
Setting up libfakeroot:arm64 (1.36-1) ...
Setting up libelf1t64:arm64 (0.192-4) ...
Setting up fakeroot (1.36-1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libpython3.13-minimal:arm64 (3.13.0-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up rpcsvc-proto (1.4.3-1+b1) ...
Setting up libmpfr6:arm64 (4.2.1-1+b2) ...
Setting up libmpc3:arm64 (1.3.1-1+b3) ...
Setting up autopoint (0.22.5-2) ...
Setting up libncursesw6:arm64 (6.5-2+b1) ...
Setting up autoconf (2.72-3) ...
Setting up libubsan1:arm64 (14.2.0-8) ...
Setting up dh-strip-nondeterminism (1.14.0-1) ...
Setting up dwz (0.15-1+b1) ...
Setting up libhwasan0:arm64 (14.2.0-8) ...
Setting up libcrypt-dev:arm64 (1:4.4.36-5) ...
Setting up libasan8:arm64 (14.2.0-8) ...
Setting up python3.13-minimal (3.13.0-2) ...
Setting up libtsan2:arm64 (14.2.0-8) ...
Setting up libisl23:arm64 (0.27-1) ...
Setting up libc-dev-bin (2.40-3) ...
Setting up libpython3.13-stdlib:arm64 (3.13.0-2) ...
Setting up libcc1-0:arm64 (14.2.0-8) ...
Setting up liblsan0:arm64 (14.2.0-8) ...
Setting up libitm1:arm64 (14.2.0-8) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libtirpc3t64:arm64 (1.3.4+ds-1.3+b1) ...
Setting up python3.13 (3.13.0-2) ...
Setting up cpp-14-aarch64-linux-gnu (14.2.0-8) ...
Setting up libnsl2:arm64 (1.3.0-3+b3) ...
Setting up libc6-dev:arm64 (2.40-3) ...
Setting up libgcc-14-dev:arm64 (14.2.0-8) ...
Setting up libstdc++-14-dev:arm64 (14.2.0-8) ...
Setting up libpython3.12-stdlib:arm64 (3.12.7-3) ...
Setting up python3.12 (3.12.7-3) ...
Setting up cpp-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up cpp-14 (14.2.0-8) ...
Setting up cpp (4:14.2.0-1) ...
Setting up gcc-14-aarch64-linux-gnu (14.2.0-8) ...
Setting up libpython3-stdlib:arm64 (3.12.7-1) ...
Setting up gcc-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up g++-14-aarch64-linux-gnu (14.2.0-8) ...
Setting up python3 (3.12.7-1) ...
Setting up python3-sortedcontainers (2.4.0-2) ...
Setting up python3-zipp (3.21.0-1) ...
Setting up python3-autocommand (2.2.2-3) ...
Setting up python3-wheel (0.45.0-1) ...
Setting up python3-ujson:arm64 (5.10.0-1+b3) ...
Setting up gcc-14 (14.2.0-8) ...
Setting up python3-bson (4.10.1-2) ...
Setting up python3-packaging (24.2-1) ...
Setting up python3-pyproject-hooks (1.2.0-1) ...
Setting up python3-typing-extensions (4.12.2-2) ...
Setting up python3-cpuinfo (9.0.0+git20221119-2) ...
Setting up python3-toml (0.10.2-1) ...
Setting up python3-installer (0.7.0+dfsg1-3) ...
Setting up python3-pluggy (1.5.0-1) ...
Setting up python3-trove-classifiers (2024.9.12-1) ...
Setting up g++-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up python3-dateutil (2.9.0-3) ...
Setting up python3-msgpack (1.0.3-3+b4) ...
Setting up g++-14 (14.2.0-8) ...
Setting up python3-build (1.2.2-1) ...
Setting up python3-tomlkit (0.13.2-1) ...
Setting up python3-pathspec (0.12.1-1) ...
Setting up python3-more-itertools (10.5.0-1) ...
Setting up python3-iniconfig (1.1.1-2) ...
Setting up python3-attr (24.2.0-1) ...
Setting up python3-jaraco.functools (4.1.0-1) ...
Setting up python3-jaraco.context (6.0.0-1) ...
Setting up libtool (2.4.7-8) ...
Setting up python3-pytest (8.3.3-1) ...
Setting up python3-hypothesis (6.116.0-1) ...
Setting up python3-typeguard (4.4.1-1) ...
Setting up python3-all (3.12.7-1) ...
Setting up python3-yaml (6.0.2-1+b1) ...
Setting up gcc (4:14.2.0-1) ...
Setting up dh-autoreconf (20) ...
Setting up python3-inflect (7.3.1-2) ...
Setting up python3-jaraco.text (4.0.0-1) ...
Setting up g++ (4:14.2.0-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up build-essential (12.12) ...
Setting up python3-hatchling (1.26.3-1) ...
Setting up python3-pytest-benchmark (5.1.0-1) ...
Setting up python3-pkg-resources (75.2.0-1) ...
Setting up python3-setuptools (75.2.0-1) ...
Setting up debhelper (13.20) ...
Setting up python3-setuptools-scm (8.1.0-1) ...
Setting up python3-hatch-vcs (0.4.0-1) ...
Setting up dh-python (6.20241024) ...
Setting up pybuild-plugin-pyproject (6.20241024) ...
Setting up sbuild-build-depends-main-dummy (0.invalid.0) ...
Processing triggers for man-db (2.13.0-1) ...
Processing triggers for libc-bin (2.40-3) ...
+------------------------------------------------------------------------------+
| Check architectures |
+------------------------------------------------------------------------------+
Arch check ok (arm64 included in all)
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 6.1.0-27-cloud-arm64 #1 SMP Debian 6.1.115-1 (2024-11-01) arm64 (aarch64)
Toolchain package versions: binutils_2.43.1-5 dpkg-dev_1.22.12~1.gbp82cafd g++-14_14.2.0-8 gcc-14_14.2.0-8 libc6-dev_2.40-3 libstdc++-14-dev_14.2.0-8 libstdc++6_14.2.0-8 linux-libc-dev_6.11.7-1
Package versions: appstream_1.0.3-1+b1 apt_2.9.11 autoconf_2.72-3 automake_1:1.16.5-1.3 autopoint_0.22.5-2 autotools-dev_20220109.1 base-files_13.5 base-passwd_3.6.5 bash_5.2.32-1+b2 binutils_2.43.1-5 binutils-aarch64-linux-gnu_2.43.1-5 binutils-common_2.43.1-5 bsdextrautils_2.40.2-11 bsdutils_1:2.40.2-11 build-essential_12.12 bzip2_1.0.8-6 ca-certificates_20240203 coreutils_9.5-1+b1 cpp_4:14.2.0-1 cpp-14_14.2.0-8 cpp-14-aarch64-linux-gnu_14.2.0-8 cpp-aarch64-linux-gnu_4:14.2.0-1 dash_0.5.12-9+b1 debconf_1.5.87 debhelper_13.20 debian-archive-keyring_2023.4 debianutils_5.21 dh-autoreconf_20 dh-python_6.20241024 dh-strip-nondeterminism_1.14.0-1 diffstat_1.66-1+b1 diffutils_1:3.10-1+b1 dpkg_1.22.12~1.gbp82cafd dpkg-dev_1.22.12~1.gbp82cafd dwz_0.15-1+b1 e2fsprogs_1.47.1-1+b1 fakeroot_1.36-1 file_1:5.45-3+b1 findutils_4.10.0-3 g++_4:14.2.0-1 g++-14_14.2.0-8 g++-14-aarch64-linux-gnu_14.2.0-8 g++-aarch64-linux-gnu_4:14.2.0-1 gcc_4:14.2.0-1 gcc-14_14.2.0-8 gcc-14-aarch64-linux-gnu_14.2.0-8 gcc-14-base_14.2.0-8 gcc-aarch64-linux-gnu_4:14.2.0-1 gettext_0.22.5-2 gettext-base_0.22.5-2 gpg_2.2.45-2 gpgconf_2.2.45-2 gpgv_2.2.45-2 grep_3.11-4+b1 groff-base_1.23.0-5 gzip_1.12-1.1+b1 hostname_3.25 init-system-helpers_1.67 intltool-debian_0.35.0+20060710.6 iso-codes_4.17.0-1 libacl1_2.3.2-2+b1 libaliased-perl_0.34-3 libappstream5_1.0.3-1+b1 libapt-pkg-perl_0.1.40+b6 libapt-pkg6.0t64_2.9.11 libarchive-zip-perl_1.68-1 libasan8_14.2.0-8 libassuan9_3.0.1-2 libatomic1_14.2.0-8 libattr1_1:2.5.2-2 libaudit-common_1:4.0.2-2 libaudit1_1:4.0.2-2 libb-hooks-endofscope-perl_0.28-1 libb-hooks-op-check-perl_0.22-3+b2 libberkeleydb-perl_0.66-1 libbinutils_2.43.1-5 libblkid1_2.40.2-11 libbrotli1_1.1.0-2+b6 libbsd0_0.12.2-2 libbz2-1.0_1.0.8-6 libc-bin_2.40-3 libc-dev-bin_2.40-3 libc6_2.40-3 libc6-dev_2.40-3 libcap-ng0_0.8.5-3+b1 libcap2_1:2.66-5+b1 libcapture-tiny-perl_0.48-2 libcc1-0_14.2.0-8 libcgi-pm-perl_4.66-1 libclass-data-inheritable-perl_0.10-1 libclass-inspector-perl_1.36-3 libclass-method-modifiers-perl_2.15-1 libclass-xsaccessor-perl_1.19-4+b4 libclone-perl_0.47-1+b1 libcom-err2_1.47.1-1+b1 libconfig-tiny-perl_2.30-1 libconst-fast-perl_0.014-2 libcpanel-json-xs-perl_4.38-1+b1 libcrypt-dev_1:4.4.36-5 libcrypt1_1:4.4.36-5 libctf-nobfd0_2.43.1-5 libctf0_2.43.1-5 libcurl3t64-gnutls_8.11.0-1 libdata-dpath-perl_0.60-1 libdata-messagepack-perl_1.02-1+b4 libdata-optlist-perl_0.114-1 libdata-validate-domain-perl_0.15-1 libdata-validate-ip-perl_0.31-1 libdata-validate-uri-perl_0.07-3 libdb5.3t64_5.3.28+dfsg2-9 libdebconfclient0_0.273 libdebhelper-perl_13.20 libdevel-callchecker-perl_0.009-1+b1 libdevel-size-perl_0.84-1+b1 libdevel-stacktrace-perl_2.0500-1 libdouble-conversion3_3.3.0-1+b2 libdpkg-perl_1.22.12~1.gbp82cafd libdynaloader-functions-perl_0.004-1 libelf1t64_0.192-4 libemail-address-xs-perl_1.05-1+b4 libencode-locale-perl_1.05-3 libexception-class-perl_1.45-1 libexpat1_2.6.4-1 libext2fs2t64_1.47.1-1+b1 libfakeroot_1.36-1 libffi8_3.4.6-1 libfile-basedir-perl_0.09-2 libfile-find-rule-perl_0.34-3 libfile-listing-perl_6.16-1 libfile-sharedir-perl_1.118-3 libfile-stripnondeterminism-perl_1.14.0-1 libfont-ttf-perl_1.06-2 libgcc-14-dev_14.2.0-8 libgcc-s1_14.2.0-8 libgcrypt20_1.11.0-6 libgdbm-compat4t64_1.24-2 libgdbm6t64_1.24-2 libglib2.0-0t64_2.82.2-3 libgmp10_2:6.3.0+dfsg-2+b2 libgnutls30t64_3.8.8-2 libgomp1_14.2.0-8 libgpg-error0_1.50-4 libgprofng0_2.43.1-5 libgssapi-krb5-2_1.21.3-3 libhogweed6t64_3.10-1+b1 libhtml-form-perl_6.12-1 libhtml-html5-entities-perl_0.004-3 libhtml-parser-perl_3.83-1+b1 libhtml-tagset-perl_3.24-1 libhtml-tokeparser-simple-perl_3.16-4 libhtml-tree-perl_5.07-3 libhttp-cookies-perl_6.11-1 libhttp-date-perl_6.06-1 libhttp-message-perl_7.00-2 libhttp-negotiate-perl_6.01-2 libhwasan0_14.2.0-8 libicu72_72.1-5+b1 libidn2-0_2.3.7-2+b1 libimport-into-perl_1.002005-2 libio-html-perl_1.004-3 libio-interactive-perl_1.025-1 libio-socket-ssl-perl_2.089-1 libio-string-perl_1.08-4 libipc-run3-perl_0.049-1 libipc-system-simple-perl_1.30-2 libisl23_0.27-1 libiterator-perl_0.03+ds1-2 libiterator-util-perl_0.02+ds1-2 libitm1_14.2.0-8 libjansson4_2.14-2+b3 libjson-maybexs-perl_1.004008-1 libk5crypto3_1.21.3-3 libkeyutils1_1.6.3-4 libkrb5-3_1.21.3-3 libkrb5support0_1.21.3-3 libldap-2.5-0_2.5.18+dfsg-3+b1 liblist-compare-perl_0.55-2 liblist-someutils-perl_0.59-1 liblist-utilsby-perl_0.12-2 liblsan0_14.2.0-8 liblwp-mediatypes-perl_6.04-2 liblwp-protocol-https-perl_6.14-1 liblz1_1.15~pre2-1 liblz4-1_1.9.4-3+b1 liblzma5_5.6.3-1+b1 liblzo2-2_2.10-3+b1 libmagic-mgc_1:5.45-3+b1 libmagic1t64_1:5.45-3+b1 libmarkdown2_2.2.7-2.1 libmd0_1.1.0-2+b1 libmldbm-perl_2.05-4 libmodule-implementation-perl_0.09-2 libmodule-runtime-perl_0.016-2 libmoo-perl_2.005005-1 libmoox-aliases-perl_0.001006-2 libmount1_2.40.2-11 libmouse-perl_2.5.11-1+b1 libmpc3_1.3.1-1+b3 libmpfr6_4.2.1-1+b2 libnamespace-clean-perl_0.27-2 libncursesw6_6.5-2+b1 libnet-domain-tld-perl_1.75-4 libnet-http-perl_6.23-1 libnet-ipv6addr-perl_1.02-1 libnet-netmask-perl_2.0002-2 libnet-ssleay-perl_1.94-2 libnetaddr-ip-perl_4.079+dfsg-2+b4 libnettle8t64_3.10-1+b1 libnghttp2-14_1.64.0-1 libnghttp3-9_1.4.0-1+b1 libngtcp2-16_1.6.0-1 libngtcp2-crypto-gnutls8_1.6.0-1 libnsl2_1.3.0-3+b3 libnumber-compare-perl_0.03-3 libp11-kit0_0.25.5-2+b1 libpackage-stash-perl_0.40-1 libpam-modules_1.5.3-7+b1 libpam-modules-bin_1.5.3-7+b1 libpam-runtime_1.5.3-7 libpam0g_1.5.3-7+b1 libparams-classify-perl_0.015-2+b4 libparams-util-perl_1.102-3+b1 libpath-tiny-perl_0.146-1 libpcre2-8-0_10.44-4 libperl5.40_5.40.0-7 libperlio-gzip-perl_0.20-1+b4 libperlio-utf8-strict-perl_0.010-1+b3 libpipeline1_1.5.8-1 libproc-processtable-perl_0.636-1+b3 libpsl5t64_0.21.2-1.1+b1 libpython3-stdlib_3.12.7-1 libpython3.12-minimal_3.12.7-3 libpython3.12-stdlib_3.12.7-3 libpython3.13-minimal_3.13.0-2 libpython3.13-stdlib_3.13.0-2 libreadline8t64_8.2-5 libregexp-wildcards-perl_1.05-3 librole-tiny-perl_2.002004-1 librtmp1_2.4+20151223.gitfa8646d.1-2+b5 libsasl2-2_2.1.28+dfsg1-8 libsasl2-modules-db_2.1.28+dfsg1-8 libseccomp2_2.5.5-1+b3 libselinux1_3.7-3+b1 libsemanage-common_3.7-2 libsemanage2_3.7-2+b1 libsepol2_3.7-1 libsereal-decoder-perl_5.004+ds-1+b3 libsereal-encoder-perl_5.004+ds-1+b3 libsframe1_2.43.1-5 libsmartcols1_2.40.2-11 libsort-versions-perl_1.62-3 libsqlite3-0_3.46.1-1 libss2_1.47.1-1+b1 libssh2-1t64_1.11.1-1 libssl3t64_3.3.2-2 libstdc++-14-dev_14.2.0-8 libstdc++6_14.2.0-8 libstemmer0d_2.2.0-4+b2 libstrictures-perl_2.000006-1 libsub-exporter-perl_0.990-1 libsub-exporter-progressive-perl_0.001013-3 libsub-identify-perl_0.14-3+b3 libsub-install-perl_0.929-1 libsub-name-perl_0.27-1+b3 libsub-quote-perl_2.006008-1 libsyntax-keyword-try-perl_0.30-1+b1 libsystemd0_257~rc2-3 libtasn1-6_4.19.0-3+b3 libterm-readkey-perl_2.38-2+b4 libtext-glob-perl_0.11-3 libtext-levenshteinxs-perl_0.03-5+b4 libtext-markdown-discount-perl_0.16-1+b3 libtext-xslate-perl_3.5.9-2+b1 libtime-duration-perl_1.21-2 libtime-moment-perl_0.44-2+b4 libtimedate-perl_2.3300-2 libtinfo6_6.5-2+b1 libtirpc-common_1.3.4+ds-1.3 libtirpc3t64_1.3.4+ds-1.3+b1 libtool_2.4.7-8 libtry-tiny-perl_0.32-1 libtsan2_14.2.0-8 libubsan1_14.2.0-8 libuchardet0_0.0.8-1+b2 libudev1_257~rc2-3 libunicode-utf8-perl_0.62-2+b3 libunistring5_1.2-1+b1 liburi-perl_5.30-1 libuuid1_2.40.2-11 libvariable-magic-perl_0.64-1+b1 libwww-mechanize-perl_2.19-1 libwww-perl_6.77-1 libwww-robotrules-perl_6.02-1 libxml-libxml-perl_2.0207+dfsg+really+2.0134-5+b1 libxml-namespacesupport-perl_1.12-2 libxml-sax-base-perl_1.09-3 libxml-sax-perl_1.02+dfsg-3 libxml2_2.12.7+dfsg+really2.9.14-0.2+b1 libxmlb2_0.3.21-1 libxs-parse-keyword-perl_0.46-1+b1 libxxhash0_0.8.2-2+b2 libyaml-0-2_0.2.5-1+b2 libyaml-libyaml-perl_0.902.0+ds-2+b1 libzstd1_1.5.6+dfsg-1+b1 lintian_2.120.0 linux-libc-dev_6.11.7-1 login_1:4.16.0-2+really2.40.2-11 login.defs_1:4.16.0-5 logsave_1.47.1-1+b1 lzop_1.04-2+b1 m4_1.4.19-4 make_4.3-4.1+b1 man-db_2.13.0-1 mawk_1.3.4.20240905-1 media-types_10.1.0 mount_2.40.2-11 ncurses-base_6.5-2 ncurses-bin_6.5-2+b1 netbase_6.4 openssl_3.3.2-2 openssl-provider-legacy_3.3.2-2 passwd_1:4.16.0-5 patch_2.7.6-7+b1 patchutils_0.4.2-1+b1 perl_5.40.0-7 perl-base_5.40.0-7 perl-modules-5.40_5.40.0-7 perl-openssl-defaults_7+b2 plzip_1.11-2 po-debconf_1.0.21+nmu1 pybuild-plugin-pyproject_6.20241024 python3_3.12.7-1 python3-all_3.12.7-1 python3-attr_24.2.0-1 python3-autocommand_2.2.2-3 python3-bson_4.10.1-2 python3-build_1.2.2-1 python3-cpuinfo_9.0.0+git20221119-2 python3-dateutil_2.9.0-3 python3-hatch-vcs_0.4.0-1 python3-hatchling_1.26.3-1 python3-hypothesis_6.116.0-1 python3-inflect_7.3.1-2 python3-iniconfig_1.1.1-2 python3-installer_0.7.0+dfsg1-3 python3-jaraco.context_6.0.0-1 python3-jaraco.functools_4.1.0-1 python3-jaraco.text_4.0.0-1 python3-minimal_3.12.7-1 python3-more-itertools_10.5.0-1 python3-msgpack_1.0.3-3+b4 python3-packaging_24.2-1 python3-pathspec_0.12.1-1 python3-pkg-resources_75.2.0-1 python3-pluggy_1.5.0-1 python3-pyproject-hooks_1.2.0-1 python3-pytest_8.3.3-1 python3-pytest-benchmark_5.1.0-1 python3-setuptools_75.2.0-1 python3-setuptools-scm_8.1.0-1 python3-sortedcontainers_2.4.0-2 python3-toml_0.10.2-1 python3-tomlkit_0.13.2-1 python3-trove-classifiers_2024.9.12-1 python3-typeguard_4.4.1-1 python3-typing-extensions_4.12.2-2 python3-ujson_5.10.0-1+b3 python3-wheel_0.45.0-1 python3-yaml_6.0.2-1+b1 python3-zipp_3.21.0-1 python3.12_3.12.7-3 python3.12-minimal_3.12.7-3 python3.13_3.13.0-2 python3.13-minimal_3.13.0-2 readline-common_8.2-5 rpcsvc-proto_1.4.3-1+b1 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.9-2+b1 sensible-utils_0.0.24 shared-mime-info_2.4-5+b1 sysvinit-utils_3.11-1 t1utils_1.41-4+b1 tar_1.35+dfsg-3+b1 tzdata_2024b-3 ucf_3.0043+nmu1 unzip_6.0-28+b1 util-linux_2.40.2-11 xz-utils_5.6.3-1+b1 zlib1g_1:1.3.dfsg+really1.3.1-1+b1
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 3.0 (quilt)
Source: python-cattrs
Binary: python3-cattr
Architecture: all
Version: 23.2.3-1
Maintainer: Sandro Tosi <morph@debian.org>
Homepage: https://github.com/python-attrs/cattrs
Standards-Version: 4.6.2.0
Vcs-Browser: https://salsa.debian.org/morph/python-cattrs
Vcs-Git: https://salsa.debian.org/morph/python-cattrs.git
Testsuite: autopkgtest-pkg-pybuild
Build-Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-attr <!nocheck>, python3-bson <!nocheck>, python3-hatch-vcs, python3-hatchling, python3-hypothesis <!nocheck>, python3-msgpack <!nocheck>, python3-pytest <!nocheck>, python3-pytest-benchmark <!nocheck>, python3-tomlkit <!nocheck>, python3-ujson <!nocheck>, python3-yaml <!nocheck>
Package-List:
python3-cattr deb python optional arch=all
Checksums-Sha1:
edcdaaa34ca6b25257726c692560adbb9af988ed 565840 python-cattrs_23.2.3.orig.tar.xz
42adb8724fd15f86d015ac061ddb327174d2c210 2856 python-cattrs_23.2.3-1.debian.tar.xz
Checksums-Sha256:
c48fa2a4067dab3c6c09ca326b7382996ec3bf480fecb762c46e03522446d427 565840 python-cattrs_23.2.3.orig.tar.xz
88fb8465645d7fdbba15885daae11453f917975bff56cad1c9b8b298f50da9df 2856 python-cattrs_23.2.3-1.debian.tar.xz
Files:
b3c14073d863dfa0a1803246a2305111 565840 python-cattrs_23.2.3.orig.tar.xz
23cd462fac08b4f5a928494f90d41c78 2856 python-cattrs_23.2.3-1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEufrTGSrz5KUwnZ05h588mTgBqU8FAmXsD6oACgkQh588mTgB
qU8RAg/9HM0zGgJflINIkaDXz4VSPwM/IwjPZtZE/rIDbXOOFH/7NChTEYwbJLSD
WyD5P4j/OMUm2l80XRvn33E5wkHEVmfJbd1+jyksTJd76zT9RhvEY3zunVMWIYoh
Qt3kb/zqjGZ+S/oU6rGjGH9cyXrUx7pxkWOD4GpaB5owDFq+HCcD1AXhTo/g64mG
5A3TV9AO80s0RgJkq1QPnWFeZZXW7c4nQ6QiafWg1DwmrEjodt1wyjE9inr9Ax+/
zXGTZI1X9MUNL+Q1B8vlw+f+/29pqTFJVMnXFmuD2IzP01yi+BXQzuYlmR4y7GHR
idgBWAvHaaCXlmtUKtP45z2DXnVoyBOIpLNlGy8zZVndTurt6rCkIR+gQVY58bfk
voHXKngmfQ7ppw5m/TSHBUL+XCECDISLQXlcgEc3OcKbA8+2qlqYPi5M8RiaOaFS
Od6zZEhXMPMsl6eVnlLslmdZhgx6r9n5u/eQLWlNFR5p9urbiqLeacaofeVsM3pW
qZHnqPKIs3xMw38rVNWuuoRXCMexE6kkfM6AHhMDynsX7DAJlpzNhGP5iUvU7dg7
y57qcvDNdZj1dIwJlPxosuD50DmsDBvBuyi5pmLL8aFLoe5mn0Tdm8BcH8TBsCi1
/DgPZSXxK4WnBlMb83UWkgtCy+XyKEwnuSeZ+Qoxy+ZRgyj8kWk=
=owrp
-----END PGP SIGNATURE-----
gpgv: Signature made Sat Mar 9 07:28:42 2024 UTC
gpgv: using RSA key B9FAD3192AF3E4A5309D9D39879F3C993801A94F
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./python-cattrs_23.2.3-1.dsc: no acceptable signature found
dpkg-source: info: extracting python-cattrs in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking python-cattrs_23.2.3.orig.tar.xz
dpkg-source: info: unpacking python-cattrs_23.2.3-1.debian.tar.xz
Check disk space
----------------
Sufficient free space for build
User Environment
----------------
APT_CONFIG=/var/lib/sbuild/apt.conf
HOME=/sbuild-nonexistent
LANG=en_US.UTF-8
LC_ALL=C.UTF-8
LOGNAME=debusine-worker
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SHELL=/bin/sh
USER=debusine-worker
dpkg-buildpackage
-----------------
Command: dpkg-buildpackage -us -uc -b -rfakeroot
dpkg-buildpackage: info: source package python-cattrs
dpkg-buildpackage: info: source version 23.2.3-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Sandro Tosi <morph@debian.org>
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
dpkg-source: info: using options from python-cattrs-23.2.3/debian/source/options: --extend-diff-ignore=^[^/]+.egg-info/
debian/rules clean
dh clean --with python3 --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --with python3 --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr
* Building wheel...
Successfully built cattrs-23.2.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr
* Building wheel...
Successfully built cattrs-23.2.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module
dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build; python3.13 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson'
============================= test session starts ==============================
platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13
cachedir: .pytest_cache
benchmark: 5.1.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=True warmup_iterations=5)
hypothesis profile 'tests' -> deadline=None, suppress_health_check=[HealthCheck.too_slow], database=DirectoryBasedExampleDatabase(PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/.hypothesis/examples'))
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build
configfile: pyproject.toml
plugins: typeguard-4.4.1, benchmark-5.1.0, hypothesis-6.116.0
collecting ... collected 592 items
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_unstructure] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_undefined] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-None] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_unstructure] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_undefined] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-None] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_unstructure] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_undefined] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-None] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_unstructure] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_undefined] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-None] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_unstructure] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_undefined] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-None] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_unstructure] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_undefined] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-None] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_unstructure] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_undefined] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-None] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_unstructure] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_undefined] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-None] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_unstructure] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_undefined] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-None] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_unstructure] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_undefined] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-None] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_unstructure] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_undefined] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-None] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_unstructure] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_undefined] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-None] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_unstructure] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_undefined] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-None] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_unstructure] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_undefined] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-None] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_unstructure] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_undefined] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-None] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_unstructure] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_undefined] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-None] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_unstructure] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_undefined] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-None] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_unstructure] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_undefined] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-None] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-False] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_literals[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_literals[BaseConverter-False] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_spillover[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_spillover[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-False] PASSED [ 12%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-True] PASSED [ 12%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-False] PASSED [ 12%]
tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-True] PASSED [ 12%]
tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-False] PASSED [ 12%]
tests/test_converter.py::test_unstructure_fallbacks[BaseConverter] PASSED [ 13%]
tests/test_converter.py::test_structure_fallbacks[BaseConverter] PASSED [ 13%]
tests/test_converter.py::test_fallback_chaining[BaseConverter] PASSED [ 13%]
tests/test_converter_inheritance.py::test_inheritance[BaseConverter-True] PASSED [ 13%]
tests/test_converter_inheritance.py::test_inheritance[BaseConverter-False] PASSED [ 13%]
tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-True] PASSED [ 13%]
tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-False] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Hashable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Iterable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Reversible] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Hashable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Iterable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Reversible] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Hashable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Iterable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Reversible] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Hashable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Iterable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Reversible] PASSED [ 16%]
tests/test_copy.py::test_deepcopy[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy_hooks[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy_func_hooks[BaseConverter] PASSED [ 16%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-True] PASSED [ 16%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-False] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-True] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-False] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses[BaseConverter-True] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses[BaseConverter-False] PASSED [ 17%]
tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-True] PASSED [ 17%]
tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-False] PASSED [ 18%]
tests/test_factory_hooks.py::test_snake_to_camel[BaseConverter] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting[BaseConverter-True] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting[BaseConverter-False] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting_none[BaseConverter-True] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting_none[BaseConverter-False] PASSED [ 18%]
tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_alias_keys[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_alias_keys[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_init_false[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 21%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-int-str-result0] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-str-str-result1] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-List-str-result2] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-int-str-result0] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-str-str-result1] PASSED [ 22%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-List-str-result2] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-TClass-str-result0] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-List-str-result1] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-TClass-str-result0] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-List-str-result1] PASSED [ 22%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-False] PASSED [ 24%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-False] PASSED [ 24%]
tests/test_generics.py::test_nongeneric_protocols[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_nongeneric_protocols[BaseConverter-False] PASSED [ 25%]
tests/test_optionals.py::test_optional_any[BaseConverter-True] PASSED [ 25%]
tests/test_optionals.py::test_optional_any[BaseConverter-False] PASSED [ 25%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 25%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 25%]
tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-True] PASSED [ 25%]
tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-False] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_unstructure] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_undefined] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-None] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_unstructure] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_undefined] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-None] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_unstructure] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_undefined] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-None] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_unstructure] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_undefined] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-None] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_unstructure] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_undefined] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-None] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_unstructure] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_undefined] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-None] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_unstructure] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_undefined] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-None] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_unstructure] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_undefined] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-None] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_unstructure] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_undefined] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-None] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_unstructure] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_undefined] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-None] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_unstructure] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_undefined] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-None] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_unstructure] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_undefined] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-None] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_unstructure] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_undefined] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-None] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_unstructure] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_undefined] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-None] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_unstructure] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_undefined] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-None] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_unstructure] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_undefined] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-None] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_unstructure] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_undefined] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-None] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_unstructure] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_undefined] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-None] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_only_primitives[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_only_primitives[Converter-False] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_literals[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_literals[Converter-False] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_spillover[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_spillover[Converter-False] PASSED [ 36%]
tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-True] PASSED [ 36%]
tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-False] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_defaults[Converter-True] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_defaults[Converter-False] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_tag_name[Converter-True] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_tag_name[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-True] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-True] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_default_member[Converter-True] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member[Converter-False] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-True] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-False] PASSED [ 38%]
tests/test_any.py::test_unstructuring_dict_of_any[Converter-True] PASSED [ 38%]
tests/test_any.py::test_unstructuring_dict_of_any[Converter-False] PASSED [ 38%]
tests/test_converter.py::test_unstructure_fallbacks[Converter] PASSED [ 39%]
tests/test_converter.py::test_structure_fallbacks[Converter] PASSED [ 39%]
tests/test_converter.py::test_fallback_chaining[Converter] PASSED [ 39%]
tests/test_converter_inheritance.py::test_inheritance[Converter-True] PASSED [ 39%]
tests/test_converter_inheritance.py::test_inheritance[Converter-False] PASSED [ 39%]
tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-True] PASSED [ 39%]
tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-False] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Hashable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Iterable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Reversible] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Hashable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Iterable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Reversible] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Hashable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Iterable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Reversible] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Hashable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Iterable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Reversible] PASSED [ 42%]
tests/test_copy.py::test_deepcopy[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy_hooks[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy_func_hooks[Converter] PASSED [ 42%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-True] PASSED [ 42%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-False] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses_in_container[Converter-True] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses_in_container[Converter-False] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses[Converter-True] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses[Converter-False] PASSED [ 43%]
tests/test_disambiguators.py::test_converter_no_literals[Converter-True] PASSED [ 43%]
tests/test_disambiguators.py::test_converter_no_literals[Converter-False] PASSED [ 44%]
tests/test_factory_hooks.py::test_snake_to_camel[Converter] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting[Converter-True] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting[Converter-False] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting_none[Converter-True] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting_none[Converter-False] PASSED [ 44%]
tests/test_gen_dict.py::test_overriding_struct_hook[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_struct_hook[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_alias_keys[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_alias_keys[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_init_false[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_overridden[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_overridden[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_field_override[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_field_override[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 47%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-int-str-result0] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-str-str-result1] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-List-str-result2] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-int-str-result0] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-str-str-result1] PASSED [ 48%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-List-str-result2] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-True-TClass-str-result0] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-True-List-str-result1] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-False-TClass-str-result0] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-False-List-str-result1] PASSED [ 48%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-False] PASSED [ 49%]
tests/test_generics.py::test_structure_unions_of_generics[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_structure_unions_of_generics[Converter-False] PASSED [ 49%]
tests/test_generics.py::test_structure_list_of_generic_unions[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_structure_list_of_generic_unions[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_nongeneric_protocols[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_nongeneric_protocols[Converter-False] PASSED [ 51%]
tests/test_optionals.py::test_optional_any[Converter-True] PASSED [ 51%]
tests/test_optionals.py::test_optional_any[Converter-False] PASSED [ 51%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 51%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 51%]
tests/test_unstructure.py::test_unstructure_hook_func[Converter-True] PASSED [ 51%]
tests/test_unstructure.py::test_unstructure_hook_func[Converter-False] PASSED [ 52%]
tests/strategies/test_class_methods.py::test_nested_roundtrip PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-parent-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child1-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child2-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-container] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-container] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 58%]
tests/strategies/test_include_subclasses.py::test_structure_as_union PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses-and-tagged-union] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[wo-subclasses] XFAIL [ 58%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-parent-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child1-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child2-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-container] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-container] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 65%]
tests/strategies/test_include_subclasses.py::test_structuring_unstructuring_unknown_subclass PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_structuring_with_subclasses_argument PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-parent-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child1-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child2-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-grandchild-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-parent-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child1-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child2-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-grandchild-only] PASSED [ 66%]
tests/strategies/test_native_unions.py::test_skip_optionals PASSED [ 66%]
tests/strategies/test_tagged_unions.py::test_forbid_extra_keys PASSED [ 67%]
tests/strategies/test_tagged_unions.py::test_forbid_extra_keys_default PASSED [ 67%]
tests/strategies/test_tagged_unions.py::test_nested_sequence_union PASSED [ 67%]
tests/test_baseconverter.py::test_simple_roundtrip FAILED [ 67%]
tests/test_baseconverter.py::test_simple_roundtrip_defaults PASSED [ 67%]
tests/test_baseconverter.py::test_nested_roundtrip FAILED [ 67%]
tests/test_baseconverter.py::test_nested_roundtrip_tuple PASSED [ 68%]
tests/test_baseconverter.py::test_union_field_roundtrip FAILED [ 68%]
tests/test_baseconverter.py::test_310_union_field_roundtrip FAILED [ 68%]
tests/test_baseconverter.py::test_optional_field_roundtrip FAILED [ 68%]
tests/test_baseconverter.py::test_310_optional_field_roundtrip FAILED [ 68%]
tests/test_converter.py::test_simple_roundtrip PASSED [ 68%]
tests/test_converter.py::test_simple_roundtrip_tuple PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_defaults PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_defaults_tuple PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_with_extra_keys_forbidden PASSED [ 69%]
tests/test_converter.py::test_forbid_extra_keys PASSED [ 69%]
tests/test_converter.py::test_forbid_extra_keys_defaults PASSED [ 69%]
tests/test_converter.py::test_forbid_extra_keys_nested_override PASSED [ 70%]
tests/test_converter.py::test_nested_roundtrip FAILED [ 70%]
tests/test_converter.py::test_nested_roundtrip_tuple FAILED [ 70%]
tests/test_converter.py::test_union_field_roundtrip PASSED [ 70%]
tests/test_converter.py::test_310_union_field_roundtrip FAILED [ 70%]
tests/test_converter.py::test_optional_field_roundtrip PASSED [ 70%]
tests/test_converter.py::test_310_optional_field_roundtrip PASSED [ 71%]
tests/test_converter.py::test_omit_default_roundtrip FAILED [ 71%]
tests/test_converter.py::test_dict_roundtrip_with_alias PASSED [ 71%]
tests/test_converter.py::test_type_overrides PASSED [ 71%]
tests/test_converter.py::test_calling_back PASSED [ 71%]
tests/test_converter.py::test_overriding_generated_unstructure PASSED [ 71%]
tests/test_converter.py::test_overriding_generated_unstructure_hook_func PASSED [ 72%]
tests/test_converter.py::test_overriding_generated_structure PASSED [ 72%]
tests/test_converter.py::test_overriding_generated_structure_hook_func PASSED [ 72%]
tests/test_converter.py::test_seq_of_simple_classes_unstructure PASSED [ 72%]
tests/test_converter.py::test_seq_of_bare_classes_structure PASSED [ 72%]
tests/test_converter.py::test_annotated_attrs PASSED [ 72%]
tests/test_converter.py::test_annotated_with_typing_extensions_attrs PASSED [ 73%]
tests/test_copy.py::test_copy_converter PASSED [ 73%]
tests/test_copy.py::test_detailed_validation PASSED [ 73%]
tests/test_copy.py::test_col_overrides PASSED [ 73%]
tests/test_disambiguators.py::test_edge_errors PASSED [ 73%]
tests/test_disambiguators.py::test_fallback PASSED [ 73%]
tests/test_disambiguators.py::test_disambiguation PASSED [ 74%]
tests/test_disambiguators.py::test_disambiguate_from_discriminated_enum PASSED [ 74%]
tests/test_disambiguators.py::test_default_no_literals PASSED [ 74%]
tests/test_final.py::test_unstructure_final[True] PASSED [ 74%]
tests/test_final.py::test_unstructure_final[False] PASSED [ 74%]
tests/test_final.py::test_structure_final[True] PASSED [ 75%]
tests/test_final.py::test_structure_final[False] PASSED [ 75%]
tests/test_final.py::test_unstructure_bare_final[True] PASSED [ 75%]
tests/test_final.py::test_unstructure_bare_final[False] PASSED [ 75%]
tests/test_final.py::test_structure_bare_final[True] PASSED [ 75%]
tests/test_final.py::test_structure_bare_final[False] PASSED [ 75%]
tests/test_function_dispatch.py::test_function_dispatch PASSED [ 76%]
tests/test_function_dispatch.py::test_function_clears_cache_after_function_added PASSED [ 76%]
tests/test_gen.py::test_structure_linecache PASSED [ 76%]
tests/test_gen.py::test_unstructure_linecache PASSED [ 76%]
tests/test_gen.py::test_no_linecache PASSED [ 76%]
tests/test_gen.py::test_linecache_dedup PASSED [ 76%]
tests/test_gen_dict.py::test_unmodified_generated_unstructuring PASSED [ 77%]
tests/test_gen_dict.py::test_nodefs_generated_unstructuring PASSED [ 77%]
tests/test_gen_dict.py::test_nodefs_generated_unstructuring_cl PASSED [ 77%]
tests/test_gen_dict.py::test_individual_overrides PASSED [ 77%]
tests/test_gen_dict.py::test_unmodified_generated_structuring PASSED [ 77%]
tests/test_gen_dict.py::test_renaming PASSED [ 77%]
tests/test_gen_dict.py::test_renaming_forbid_extra_keys PASSED [ 78%]
tests/test_gen_dict.py::test_omitting_structure[True] PASSED [ 78%]
tests/test_gen_dict.py::test_omitting_structure[False] PASSED [ 78%]
tests/test_gen_dict.py::test_type_names_with_quotes PASSED [ 78%]
tests/test_gen_dict.py::test_forbid_extra_keys_from_converter PASSED [ 78%]
tests/test_gen_dict.py::test_forbid_extra_keys_from_baseconverter PASSED [ 78%]
tests/test_gen_dict_563.py::test_roundtrip PASSED [ 79%]
tests/test_gen_dict_563.py::test_roundtrip_dc PASSED [ 79%]
tests/test_generics.py::test_deep_copy PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[True-int-result0] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[True-str-result1] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[False-int-result0] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[False-str-result1] PASSED [ 80%]
tests/test_generics.py::test_39_structure_generics_with_cols[int-result0] PASSED [ 80%]
tests/test_generics.py::test_39_structure_generics_with_cols[str-result1] PASSED [ 80%]
tests/test_generics.py::test_structure_nested_generics_with_cols[int-result0] PASSED [ 80%]
tests/test_generics.py::test_structure_nested_generics_with_cols[int-result1] PASSED [ 80%]
tests/test_generics.py::test_unstructure_generic_attrs[True] PASSED [ 80%]
tests/test_generics.py::test_unstructure_generic_attrs[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_optional[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_optional[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics_list[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics_list[False] PASSED [ 82%]
tests/test_generics.py::test_unstructure_protocol[True] PASSED [ 82%]
tests/test_generics.py::test_unstructure_protocol[False] PASSED [ 82%]
tests/test_generics.py::test_roundtrip_generic_with_union PASSED [ 82%]
tests/test_generics.py::test_generate_typeddict_mapping PASSED [ 82%]
tests/test_generics_604.py::test_unstructure_optional[True] PASSED [ 82%]
tests/test_generics_604.py::test_unstructure_optional[False] PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_cls PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_func PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_conflict_class_wins PASSED [ 83%]
tests/test_newtypes.py::test_newtype_structure_hooks[True] PASSED [ 83%]
tests/test_newtypes.py::test_newtype_structure_hooks[False] PASSED [ 83%]
tests/test_newtypes.py::test_newtype_unstructure_hooks[True] PASSED [ 84%]
tests/test_newtypes.py::test_newtype_unstructure_hooks[False] PASSED [ 84%]
tests/test_optionals.py::test_newtype_optionals[True] PASSED [ 84%]
tests/test_optionals.py::test_newtype_optionals[False] PASSED [ 84%]
tests/test_optionals.py::test_newtype_modern_optionals[True] PASSED [ 84%]
tests/test_optionals.py::test_newtype_modern_optionals[False] PASSED [ 84%]
tests/test_recursive.py::test_simple_recursive PASSED [ 85%]
tests/test_structure.py::test_structuring_primitives PASSED [ 85%]
tests/test_structure.py::test_structuring_seqs PASSED [ 85%]
tests/test_structure.py::test_structuring_seqs_to_deque PASSED [ 85%]
tests/test_structure.py::test_structuring_sets PASSED [ 85%]
tests/test_structure.py::test_stringifying_sets PASSED [ 85%]
tests/test_structure.py::test_structuring_hetero_tuples PASSED [ 86%]
tests/test_structure.py::test_stringifying_tuples PASSED [ 86%]
tests/test_structure.py::test_structuring_dicts PASSED [ 86%]
tests/test_structure.py::test_structuring_dicts_opts PASSED [ 86%]
tests/test_structure.py::test_stringifying_dicts PASSED [ 86%]
tests/test_structure.py::test_structuring_optional_primitives PASSED [ 86%]
tests/test_structure.py::test_structuring_lists_of_opt PASSED [ 87%]
tests/test_structure.py::test_stringifying_lists_of_opt PASSED [ 87%]
tests/test_structure.py::test_structuring_primitive_union_hook PASSED [ 87%]
tests/test_structure.py::test_structure_hook_func PASSED [ 87%]
tests/test_structure.py::test_structuring_enums PASSED [ 87%]
tests/test_structure.py::test_structuring_unsupported PASSED [ 88%]
tests/test_structure.py::test_subclass_registration_is_honored PASSED [ 88%]
tests/test_structure.py::test_structure_union_edge_case PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_simple_from_dict PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_simple_from_dict_default FAILED [ 88%]
tests/test_structure_attrs.py::test_roundtrip PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_tuple PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union_none PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union_explicit PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal[BaseConverter] PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal[Converter] PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal_enum[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_enum[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_error[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_error[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple_error[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_literal_multiple_error[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[BaseConverter] PASSED [ 92%]
tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[Converter] PASSED [ 92%]
tests/test_typeddicts.py::test_simple_roundtrip PASSED [ 92%]
tests/test_typeddicts.py::test_simple_nontotal PASSED [ 92%]
tests/test_typeddicts.py::test_int_override PASSED [ 92%]
tests/test_typeddicts.py::test_extra_keys PASSED [ 92%]
tests/test_typeddicts.py::test_generics PASSED [ 93%]
tests/test_typeddicts.py::test_not_required PASSED [ 93%]
tests/test_typeddicts.py::test_required PASSED [ 93%]
tests/test_typeddicts.py::test_omit PASSED [ 93%]
tests/test_typeddicts.py::test_rename PASSED [ 93%]
tests/test_typeddicts.py::test_forbid_extra_keys PASSED [ 93%]
tests/test_typeddicts.py::test_recursive_generation PASSED [ 94%]
tests/test_typeddicts.py::test_forwardref[True] PASSED [ 94%]
tests/test_typeddicts.py::test_forwardref[False] PASSED [ 94%]
tests/test_typeddicts.py::test_forbid_extra_keys_from_converter PASSED [ 94%]
tests/test_typeddicts.py::test_forbid_extra_keys_from_baseconverter PASSED [ 94%]
tests/test_unions.py::test_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 94%]
tests/test_unions.py::test_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%]
tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 95%]
tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%]
tests/test_unions.py::test_custom_union_clsfield_roundtrip[BaseConverter] PASSED [ 95%]
tests/test_unions.py::test_custom_union_clsfield_roundtrip[Converter] PASSED [ 95%]
tests/test_unstructure.py::test_seq_unstructure PASSED [ 95%]
tests/test_unstructure.py::test_set_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_mapping_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_enum_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_attrs_asdict_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_attrs_astuple_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_unstructure_hooks PASSED [ 96%]
tests/test_unstructure.py::test_seq_of_simple_classes_unstructure PASSED [ 97%]
tests/test_v.py::test_attribute_errors PASSED [ 97%]
tests/test_v.py::test_class_errors PASSED [ 97%]
tests/test_v.py::test_sequence_errors PASSED [ 97%]
tests/test_v.py::test_mapping_errors PASSED [ 97%]
tests/test_v.py::test_custom_error_fn PASSED [ 97%]
tests/test_v.py::test_custom_error_fn_nested PASSED [ 98%]
tests/test_v.py::test_typeddict_attribute_errors PASSED [ 98%]
tests/test_validation.py::test_class_validation PASSED [ 98%]
tests/test_validation.py::test_external_class_validation PASSED [ 98%]
tests/test_validation.py::test_list_validation PASSED [ 98%]
tests/test_validation.py::test_mapping_validation PASSED [ 98%]
tests/test_validation.py::test_counter_validation PASSED [ 99%]
tests/test_validation.py::test_set_validation PASSED [ 99%]
tests/test_validation.py::test_frozenset_validation PASSED [ 99%]
tests/test_validation.py::test_homo_tuple_validation PASSED [ 99%]
tests/test_validation.py::test_hetero_tuple_validation PASSED [ 99%]
tests/test_validation.py::test_notes_pickling PASSED [100%]
=================================== FAILURES ===================================
____________________________ test_simple_roundtrip _____________________________
@given(simple_typed_classes(newtypes=False), unstructure_strats)
> def test_simple_roundtrip(cls_and_vals, strat):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa2568720>
tests/test_baseconverter.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
@given(simple_typed_classes(newtypes=False), unstructure_strats)
def test_simple_roundtrip(cls_and_vals, strat):
"""
Simple classes with metadata can be unstructured and restructured.
"""
converter = BaseConverter(unstruct_strat=strat)
cl, vals, kwargs = cls_and_vals
assume(strat is UnstructureStrategy.AS_DICT or not kwargs)
inst = cl(*vals, **kwargs)
> assert inst == converter.structure(converter.unstructure(inst), cl)
E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_simple_roundtrip(
E cls_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E strat=UnstructureStrategy.AS_DICT, # or any other generated value
E )
cl = <class 'tests.typed.HypAttrsClass'>
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.BaseConverter object at 0xffff930a5140>
inst = HypAttrsClass(a=nan)
kwargs = {}
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
vals = (nan,)
tests/test_baseconverter.py:26: AssertionError
____________________________ test_nested_roundtrip _____________________________
@given(nested_typed_classes(newtypes=False))
> def test_nested_roundtrip(cls_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa2569440>
tests/test_baseconverter.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan,), {})
@given(nested_typed_classes(newtypes=False))
def test_nested_roundtrip(cls_and_vals):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = BaseConverter()
cl, vals, kwargs = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals, **kwargs)
> assert inst == converter.structure(converter.unstructure(inst), cl)
E AssertionError: assert HypClass(a=nan) == HypClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Falsifying example: test_nested_roundtrip(
E cls_and_vals=(tests.typed.HypClass, (nan,), {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan,), {})
converter = <cattrs.converters.BaseConverter object at 0xffff9838d040>
inst = HypClass(a=nan)
kwargs = {}
vals = (nan,)
tests/test_baseconverter.py:54: AssertionError
__________________________ test_union_field_roundtrip __________________________
+ Exception Group Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call
| result: TResult | None = func()
| ~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in <lambda>
| lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall
| return outcome.get_result()
| ~~~~~~~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result
| raise exc.with_traceback(exc.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
| yield from thread_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
| yield from unraisable_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 846, in pytest_runtest_call
| yield from self._runtest_for(item, "call")
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 829, in _runtest_for
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 880, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call
| item.runtest()
| ~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall
| raise exception.with_traceback(exception.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
| result = testfunction(**testargs)
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 71, in test_union_field_roundtrip
| @given(
|
| File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1705, in wrapped_test
| raise the_error_hypothesis_found
| ExceptionGroup: Hypothesis found 2 distinct failures. (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 109, in test_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(inst), C)
| AssertionError: assert C(a=HypAttrsC...set(), k=nan)) == C(a=HypAttrsC...set(), k=nan))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=0, _b=0, _d=0, e=0, g='', _h='', _j=frozenset(), k=nan) != HypAttrsClass(a=0, _b=0, _d=0, e=0, g='', _h='', _j=frozenset(), k=nan)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_union_field_roundtrip(
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (0,
| 0,
| 0,
| 0,
| '',
| '',
| frozenset(),
| struct.unpack('d', struct.pack('Q', 0x7ff7fffffffffff5))[0]),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass, (None,), {}),
| strat=UnstructureStrategy.AS_TUPLE,
| )
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 99, in test_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(inst), C)
| AssertionError: assert C(a=HypAttrsC...set(), k=nan)) == C(a=HypAttrsC...set(), k=nan))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=0, _b=0, _d=0, e=0, g='', _h='', _j=frozenset(), k=nan) != HypAttrsClass(a=0, _b=0, _d=0, e=0, g='', _h='', _j=frozenset(), k=nan)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_union_field_roundtrip(
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (0,
| 0,
| 0,
| 0,
| '',
| '',
| frozenset(),
| struct.unpack('d', struct.pack('Q', 0x7ff7fffffffffff4))[0]),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass, (None,), {}),
| strat=UnstructureStrategy.AS_DICT,
| )
| Explanation:
| These lines were always and only run by failing examples:
| /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
+------------------------------------
---------------------------------- Hypothesis ----------------------------------
WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress. When you re-run your tests, shrinking will resume and may take this long before aborting again.
PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone.
________________________ test_310_union_field_roundtrip ________________________
+ Exception Group Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call
| result: TResult | None = func()
| ~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in <lambda>
| lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall
| return outcome.get_result()
| ~~~~~~~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result
| raise exc.with_traceback(exc.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
| yield from thread_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
| yield from unraisable_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 846, in pytest_runtest_call
| yield from self._runtest_for(item, "call")
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 829, in _runtest_for
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 880, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call
| item.runtest()
| ~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall
| raise exception.with_traceback(exception.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
| result = testfunction(**testargs)
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 113, in test_310_union_field_roundtrip
| @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
| ^^^
| File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1705, in wrapped_test
| raise the_error_hypothesis_found
| ExceptionGroup: Hypothesis found 2 distinct failures. (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 152, in test_310_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(inst), C)
| AssertionError: assert C(a=HypAttrsC...None, _b=nan)) == C(a=HypAttrsC...None, _b=nan))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=None, _b=nan) != HypAttrsClass(a=None, _b=nan)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (None, struct.unpack('d', struct.pack('Q', 0x7ff7ffffffffffe8))[0]),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass, (None,), {}),
| strat=UnstructureStrategy.AS_TUPLE,
| )
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_baseconverter.py", line 142, in test_310_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(inst), C)
| AssertionError: assert C(a=HypAttrsC...None, _b=nan)) == C(a=HypAttrsC...None, _b=nan))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=None, _b=nan) != HypAttrsClass(a=None, _b=nan)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (None, struct.unpack('d', struct.pack('Q', 0x7ff7ffffffffffe8))[0]),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass,
| (None,),
| {}), # or any other generated value
| strat=UnstructureStrategy.AS_DICT, # or any other generated value
| )
| Explanation:
| These lines were always and only run by failing examples:
| /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
+------------------------------------
---------------------------------- Hypothesis ----------------------------------
WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress. When you re-run your tests, shrinking will resume and may take this long before aborting again.
PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone.
________________________ test_optional_field_roundtrip _________________________
@given(simple_typed_classes(defaults=False, newtypes=False))
> def test_optional_field_roundtrip(cl_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa256ac00>
tests/test_baseconverter.py:156:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, ('', {}, nan), {})
@given(simple_typed_classes(defaults=False, newtypes=False))
def test_optional_field_roundtrip(cl_and_vals):
"""
Classes with optional fields can be unstructured and structured.
"""
converter = BaseConverter()
cl, vals, kwargs = cl_and_vals
@define
class C:
a: Optional[cl]
inst = C(a=cl(*vals, **kwargs))
> assert inst == converter.structure(converter.unstructure(inst), C)
E AssertionError: assert C(a=HypAttrsC...b={}, _d=nan)) == C(a=HypAttrsC...b={}, _d=nan))
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: HypAttrsClass(a='', _b={}, _d=nan) != HypAttrsClass(a='', _b={}, _d=nan)
E ...
E
E ...Full output truncated (6 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_optional_field_roundtrip(
E cl_and_vals=(tests.typed.HypAttrsClass,
E ('', {}, struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0]),
E {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
C = <class 'tests.test_baseconverter.test_optional_field_roundtrip.<locals>.C'>
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, ('', {}, nan), {})
converter = <cattrs.converters.BaseConverter object at 0xffff3306bec0>
inst = C(a=HypAttrsClass(a='', _b={}, _d=nan))
kwargs = {}
vals = ('', {}, nan)
tests/test_baseconverter.py:168: AssertionError
______________________ test_310_optional_field_roundtrip _______________________
@pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax")
> @given(simple_typed_classes(defaults=False, newtypes=False))
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa256afc0>
tests/test_baseconverter.py:177:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, ('', nan), {})
@pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax")
@given(simple_typed_classes(defaults=False, newtypes=False))
def test_310_optional_field_roundtrip(cl_and_vals):
"""
Classes with optional fields can be unstructured and structured.
"""
converter = BaseConverter()
cl, vals, kwargs = cl_and_vals
@define
class C:
a: cl | None
inst = C(a=cl(*vals, **kwargs))
> assert inst == converter.structure(converter.unstructure(inst), C)
E AssertionError: assert C(a=HypAttrsC...a='', _b=nan)) == C(a=HypAttrsC...a='', _b=nan))
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: HypAttrsClass(a='', _b=nan) != HypAttrsClass(a='', _b=nan)
E ...
E
E ...Full output truncated (6 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})}
E Falsifying example: test_310_optional_field_roundtrip(
E cl_and_vals=(tests.typed.HypAttrsClass, ('', nan), {}),
E )
C = <class 'tests.test_baseconverter.test_310_optional_field_roundtrip.<locals>.C'>
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, ('', nan), {})
converter = <cattrs.converters.BaseConverter object at 0xffff3c30eec0>
inst = C(a=HypAttrsClass(a='', _b=nan))
kwargs = {}
vals = ('', nan)
tests/test_baseconverter.py:190: AssertionError
____________________________ test_nested_roundtrip _____________________________
@given(nested_typed_classes(defaults=True, min_attrs=1), booleans())
> def test_nested_roundtrip(cls_and_vals, omit_if_default):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa25ae7a0>
tests/test_converter.py:203:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))],), {})
omit_if_default = False
@given(nested_typed_classes(defaults=True, min_attrs=1), booleans())
def test_nested_roundtrip(cls_and_vals, omit_if_default):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = Converter(omit_if_default=omit_if_default)
cl, vals, kwargs = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals, **kwargs)
unstructured = converter.unstructure(inst)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypClass(a=[H...'', '', ''))]) == HypClass(a=[H...'', '', ''))])
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: [HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))] != [HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))]
E At index 0 diff: HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', '')) != HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))...
E
E ...Full output truncated (5 lines hidden), use '-vv' to show
E Falsifying example: test_nested_roundtrip(
E cls_and_vals=(tests.typed.HypClass,
E ([HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))],),
E {}),
E omit_if_default=False, # or any other generated value
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3.13/difflib.py:490
E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:128
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))],), {})
converter = <cattrs.converters.Converter object at 0xffff3ac79300>
inst = HypClass(a=[HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))])
kwargs = {}
omit_if_default = False
unstructured = {'a': [{'_b': 0, '_d': nan, 'a': 0, 'c': 0, ...}]}
vals = ([HypClass(a=0, _b=0, c=0, _d=nan, e=('', '', ''))],)
tests/test_converter.py:212: AssertionError
_________________________ test_nested_roundtrip_tuple __________________________
@given(
> nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False),
booleans(),
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa25aea20>
tests/test_converter.py:216:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)],), {})
omit_if_default = False
@given(
nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False),
booleans(),
)
def test_nested_roundtrip_tuple(cls_and_vals, omit_if_default: bool):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = Converter(
unstruct_strat=UnstructureStrategy.AS_TUPLE, omit_if_default=omit_if_default
)
cl, vals, _ = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals)
unstructured = converter.unstructure(inst)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypClass(a=[H...={}, _j=nan)]) == HypClass(a=[H...={}, _j=nan)])
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: [HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)] != [HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)]
E At index 0 diff: HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan) != HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)...
E
E ...Full output truncated (5 lines hidden), use '-vv' to show
E Falsifying example: test_nested_roundtrip_tuple(
E cls_and_vals=(tests.typed.HypClass,
E ([HypClass(a=0,
E _b=0,
E c=frozenset(),
E _d=frozenset(),
E e={},
E _f={},
E g={},
E _h={},
E i={},
E _j=nan)],),
E {}),
E omit_if_default=False, # or any other generated value
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3.13/difflib.py:490
E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:469
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
E /usr/lib/python3/dist-packages/attr/_make.py:1514
_ = {}
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)],), {})
converter = <cattrs.converters.Converter object at 0xffff21a63a60>
inst = HypClass(a=[HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)])
omit_if_default = False
unstructured = ([(0, 0, frozenset(), frozenset(), {}, {}, ...)],)
vals = ([HypClass(a=0, _b=0, c=frozenset(), _d=frozenset(), e={}, _f={}, g={}, _h={}, i={}, _j=nan)],)
tests/test_converter.py:230: AssertionError
________________________ test_310_union_field_roundtrip ________________________
+ Exception Group Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call
| result: TResult | None = func()
| ~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in <lambda>
| lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall
| return outcome.get_result()
| ~~~~~~~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result
| raise exc.with_traceback(exc.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
| yield from thread_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
| yield from unraisable_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 846, in pytest_runtest_call
| yield from self._runtest_for(item, "call")
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 829, in _runtest_for
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 880, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call
| item.runtest()
| ~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall
| raise exception.with_traceback(exception.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
| result = testfunction(**testargs)
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_converter.py", line 278, in test_310_union_field_roundtrip
| @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
| ^^^
| File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1705, in wrapped_test
| raise the_error_hypothesis_found
| ExceptionGroup: Hypothesis found 2 distinct failures. (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_converter.py", line 319, in test_310_union_field_roundtrip
| assert inst == converter.structure(unstructured, C)
| AssertionError: assert C(a=HypAttrsC...0, _d=0, e=0)) == C(a=HypAttrsC...0, _d=0, e=0))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=nan, _b=0, _d=0, e=0) != HypAttrsClass(a=nan, _b=0, _d=0, e=0)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0], 0, 0, 0),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass,
| (None,),
| {}), # or any other generated value
| strat=UnstructureStrategy.AS_TUPLE, # or any other generated value
| )
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/test_converter.py", line 308, in test_310_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(unstructured), C)
| AssertionError: assert C(a=HypAttrsC...0, _d=0, e=0)) == C(a=HypAttrsC...0, _d=0, e=0))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=nan, _b=0, _d=0, e=0) != HypAttrsClass(a=nan, _b=0, _d=0, e=0)
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| # The test always failed when commented parts were varied together.
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0], 0, 0, 0),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass,
| (None,),
| {}), # or any other generated value
| strat=UnstructureStrategy.AS_DICT, # or any other generated value
| )
+------------------------------------
_________________________ test_omit_default_roundtrip __________________________
@given(simple_typed_classes(defaults=True))
> def test_omit_default_roundtrip(cl_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa25c0680>
tests/test_converter.py:366:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
@given(simple_typed_classes(defaults=True))
def test_omit_default_roundtrip(cl_and_vals):
"""
Omit default on the converter works.
"""
converter = Converter(omit_if_default=True)
cl, vals, kwargs = cl_and_vals
@define
class C:
a: int = 1
b: cl = Factory(lambda: cl(*vals, **kwargs))
inst = C()
unstructured = converter.unstructure(inst)
> assert unstructured == {}
E AssertionError: assert {'b': {'a': nan}} == {}
E
E Left contains 1 more item:
E {'b': {'a': nan}}
E
E Full diff:
E - {}
E + {...
E
E ...Full output truncated (4 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_omit_default_roundtrip(
E cl_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:128
C = <class 'tests.test_converter.test_omit_default_roundtrip.<locals>.C'>
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.Converter object at 0xffff9843ec00>
inst = C(a=1, b=HypAttrsClass(a=nan))
kwargs = {}
unstructured = {'b': {'a': nan}}
vals = (nan,)
tests/test_converter.py:380: AssertionError
___________________ test_structure_simple_from_dict_default ____________________
@given(simple_classes(defaults=True, min_attrs=1, frozen=False), data())
> def test_structure_simple_from_dict_default(cl_and_vals, data):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffffa22f8360>
tests/test_structure_attrs.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.untyped.HypClass'>, (None, 0.0, 0, {}), {})
data = data(...)
@given(simple_classes(defaults=True, min_attrs=1, frozen=False), data())
def test_structure_simple_from_dict_default(cl_and_vals, data):
"""Test structuring non-nested attrs classes with default value."""
converter = BaseConverter()
cl, vals, kwargs = cl_and_vals
obj = cl(*vals, **kwargs)
attrs_with_defaults = [a for a in fields(cl) if a.default is not NOTHING]
to_remove = data.draw(
lists(elements=sampled_from(attrs_with_defaults), unique=True)
)
for a in to_remove:
if isinstance(a.default, Factory):
setattr(obj, a.name, a.default.factory())
else:
setattr(obj, a.name, a.default)
dumped = asdict(obj)
for a in to_remove:
del dumped[a.name]
> assert obj == converter.structure(dumped, cl)
E AssertionError: assert HypClass(a=No...n, c=0, _d={}) == HypClass(a=No...n, c=0, _d={})
E
E Omitting 3 identical items, use -vv to show
E Differing attributes:
E ['_b']
E
E Drill down into differing attribute _b:
E _b: nan != nan
E Falsifying example: test_structure_simple_from_dict_default(
E cl_and_vals=(tests.untyped.HypClass, (None, 0.0, 0, {}), {}),
E data=data(...),
E )
E Draw 1: [Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')]
a = Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=No...True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')
attrs_with_defaults = [Attribute(name='a', default=None, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=N...rue, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='d')]
cl = <class 'tests.untyped.HypClass'>
cl_and_vals = (<class 'tests.untyped.HypClass'>, (None, 0.0, 0, {}), {})
converter = <cattrs.converters.BaseConverter object at 0xffff96eac340>
data = data(...)
dumped = {'_d': {}, 'a': None, 'c': 0}
kwargs = {}
obj = HypClass(a=None, _b=nan, c=0, _d={})
to_remove = [Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=N...rue, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')]
vals = (None, 0.0, 0, {})
tests/test_structure_attrs.py:52: AssertionError
=============================== warnings summary ===============================
tests/typed.py:417
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/typed.py:417: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[attr._make._CountingAttr, st.SearchStrategy]]`, but the decorated function should return a value (not a strategy)
@composite
tests/typed.py:826
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build/tests/typed.py:826: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[typing.Type, st.SearchStrategy[typing.Tuple[typing.Any]], st.SearchStrategy[typing.Dict[str, typing.Any]]]]`, but the decorated function should return a value (not a strategy)
@composite
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_baseconverter.py::test_simple_roundtrip - AssertionError: a...
FAILED tests/test_baseconverter.py::test_nested_roundtrip - AssertionError: a...
FAILED tests/test_baseconverter.py::test_union_field_roundtrip - ExceptionGro...
FAILED tests/test_baseconverter.py::test_310_union_field_roundtrip - Exceptio...
FAILED tests/test_baseconverter.py::test_optional_field_roundtrip - Assertion...
FAILED tests/test_baseconverter.py::test_310_optional_field_roundtrip - Asser...
FAILED tests/test_converter.py::test_nested_roundtrip - AssertionError: asser...
FAILED tests/test_converter.py::test_nested_roundtrip_tuple - AssertionError:...
FAILED tests/test_converter.py::test_310_union_field_roundtrip - ExceptionGro...
FAILED tests/test_converter.py::test_omit_default_roundtrip - AssertionError:...
FAILED tests/test_structure_attrs.py::test_structure_simple_from_dict_default
===== 11 failed, 566 passed, 15 xfailed, 2 warnings in 1367.54s (0:22:47) ======
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_cattr/build; python3.13 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson'
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build; python3.12 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson'
============================= test session starts ==============================
platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12
cachedir: .pytest_cache
benchmark: 5.1.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=True warmup_iterations=5)
hypothesis profile 'tests' -> deadline=None, suppress_health_check=[HealthCheck.too_slow], database=DirectoryBasedExampleDatabase(PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/.hypothesis/examples'))
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build
configfile: pyproject.toml
plugins: typeguard-4.4.1, benchmark-5.1.0, hypothesis-6.116.0
collecting ... collected 592 items
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_unstructure] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_undefined] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-None] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_unstructure] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_undefined] PASSED [ 0%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-None] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_unstructure] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_undefined] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-None] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_unstructure] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_undefined] PASSED [ 1%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-None] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_unstructure] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_undefined] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-None] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_unstructure] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_undefined] PASSED [ 2%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-None] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_unstructure] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_undefined] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-None] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_unstructure] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_undefined] PASSED [ 3%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-None] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_unstructure] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_undefined] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-None] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_unstructure] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_undefined] PASSED [ 4%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-None] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_unstructure] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_undefined] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-None] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_unstructure] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_undefined] PASSED [ 5%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-None] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_unstructure] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_undefined] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-None] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_unstructure] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_undefined] PASSED [ 6%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-None] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_unstructure] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_undefined] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-None] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_unstructure] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_undefined] PASSED [ 7%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-None] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_unstructure] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_undefined] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-None] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_unstructure] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_undefined] PASSED [ 8%]
tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-None] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-False] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_literals[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_literals[BaseConverter-False] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_spillover[BaseConverter-True] PASSED [ 9%]
tests/strategies/test_native_unions.py::test_spillover[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-False] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-True] PASSED [ 10%]
tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-False] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-True] PASSED [ 11%]
tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-False] PASSED [ 12%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-True] PASSED [ 12%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-False] PASSED [ 12%]
tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-True] PASSED [ 12%]
tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-False] PASSED [ 12%]
tests/test_converter.py::test_unstructure_fallbacks[BaseConverter] PASSED [ 13%]
tests/test_converter.py::test_structure_fallbacks[BaseConverter] PASSED [ 13%]
tests/test_converter.py::test_fallback_chaining[BaseConverter] PASSED [ 13%]
tests/test_converter_inheritance.py::test_inheritance[BaseConverter-True] PASSED [ 13%]
tests/test_converter_inheritance.py::test_inheritance[BaseConverter-False] PASSED [ 13%]
tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-True] PASSED [ 13%]
tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-False] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Hashable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Iterable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Reversible] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Hashable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Iterable] PASSED [ 14%]
tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Reversible] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Hashable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Iterable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Reversible] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Hashable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Iterable] PASSED [ 15%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Reversible] PASSED [ 16%]
tests/test_copy.py::test_deepcopy[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy_hooks[BaseConverter] PASSED [ 16%]
tests/test_copy.py::test_copy_func_hooks[BaseConverter] PASSED [ 16%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-True] PASSED [ 16%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-False] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-True] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-False] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses[BaseConverter-True] PASSED [ 17%]
tests/test_dataclasses.py::test_dataclasses[BaseConverter-False] PASSED [ 17%]
tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-True] PASSED [ 17%]
tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-False] PASSED [ 18%]
tests/test_factory_hooks.py::test_snake_to_camel[BaseConverter] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting[BaseConverter-True] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting[BaseConverter-False] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting_none[BaseConverter-True] PASSED [ 18%]
tests/test_gen_dict.py::test_omitting_none[BaseConverter-False] PASSED [ 18%]
tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_alias_keys[BaseConverter-True] PASSED [ 19%]
tests/test_gen_dict.py::test_alias_keys[BaseConverter-False] PASSED [ 19%]
tests/test_gen_dict.py::test_init_false[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-True] PASSED [ 20%]
tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-False] PASSED [ 20%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 21%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-int-str-result0] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-str-str-result1] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-List-str-result2] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-int-str-result0] PASSED [ 21%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-str-str-result1] PASSED [ 22%]
tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-List-str-result2] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-TClass-str-result0] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-List-str-result1] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-TClass-str-result0] PASSED [ 22%]
tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-List-str-result1] PASSED [ 22%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-True] PASSED [ 23%]
tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-False] PASSED [ 23%]
tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-False] PASSED [ 24%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-False] PASSED [ 24%]
tests/test_generics.py::test_nongeneric_protocols[BaseConverter-True] PASSED [ 24%]
tests/test_generics.py::test_nongeneric_protocols[BaseConverter-False] PASSED [ 25%]
tests/test_optionals.py::test_optional_any[BaseConverter-True] PASSED [ 25%]
tests/test_optionals.py::test_optional_any[BaseConverter-False] PASSED [ 25%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 25%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 25%]
tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-True] PASSED [ 25%]
tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-False] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_unstructure] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_undefined] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-None] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_unstructure] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_undefined] PASSED [ 26%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-None] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_unstructure] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_undefined] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-None] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_unstructure] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_undefined] PASSED [ 27%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-None] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_unstructure] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_undefined] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-None] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_unstructure] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_undefined] PASSED [ 28%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-None] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_unstructure] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_undefined] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-None] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_unstructure] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_undefined] PASSED [ 29%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-None] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_unstructure] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_undefined] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-None] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_unstructure] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_undefined] PASSED [ 30%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-None] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_unstructure] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_undefined] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-None] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_unstructure] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_undefined] PASSED [ 31%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-None] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_unstructure] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_undefined] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-None] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_unstructure] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_undefined] PASSED [ 32%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-None] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_unstructure] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_undefined] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-None] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_unstructure] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_undefined] PASSED [ 33%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-None] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_unstructure] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_undefined] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-None] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_unstructure] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_undefined] PASSED [ 34%]
tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-None] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_only_primitives[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_only_primitives[Converter-False] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_literals[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_literals[Converter-False] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_spillover[Converter-True] PASSED [ 35%]
tests/strategies/test_native_unions.py::test_spillover[Converter-False] PASSED [ 36%]
tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-True] PASSED [ 36%]
tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-False] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_defaults[Converter-True] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_defaults[Converter-False] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_tag_name[Converter-True] PASSED [ 36%]
tests/strategies/test_tagged_unions.py::test_tag_name[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-True] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-True] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-False] PASSED [ 37%]
tests/strategies/test_tagged_unions.py::test_default_member[Converter-True] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member[Converter-False] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-True] PASSED [ 38%]
tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-False] PASSED [ 38%]
tests/test_any.py::test_unstructuring_dict_of_any[Converter-True] PASSED [ 38%]
tests/test_any.py::test_unstructuring_dict_of_any[Converter-False] PASSED [ 38%]
tests/test_converter.py::test_unstructure_fallbacks[Converter] PASSED [ 39%]
tests/test_converter.py::test_structure_fallbacks[Converter] PASSED [ 39%]
tests/test_converter.py::test_fallback_chaining[Converter] PASSED [ 39%]
tests/test_converter_inheritance.py::test_inheritance[Converter-True] PASSED [ 39%]
tests/test_converter_inheritance.py::test_inheritance[Converter-False] PASSED [ 39%]
tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-True] PASSED [ 39%]
tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-False] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Hashable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Iterable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Reversible] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Hashable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Iterable] PASSED [ 40%]
tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Reversible] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Hashable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Iterable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Reversible] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Hashable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Iterable] PASSED [ 41%]
tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Reversible] PASSED [ 42%]
tests/test_copy.py::test_deepcopy[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy_hooks[Converter] PASSED [ 42%]
tests/test_copy.py::test_copy_func_hooks[Converter] PASSED [ 42%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-True] PASSED [ 42%]
tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-False] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses_in_container[Converter-True] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses_in_container[Converter-False] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses[Converter-True] PASSED [ 43%]
tests/test_dataclasses.py::test_dataclasses[Converter-False] PASSED [ 43%]
tests/test_disambiguators.py::test_converter_no_literals[Converter-True] PASSED [ 43%]
tests/test_disambiguators.py::test_converter_no_literals[Converter-False] PASSED [ 44%]
tests/test_factory_hooks.py::test_snake_to_camel[Converter] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting[Converter-True] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting[Converter-False] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting_none[Converter-True] PASSED [ 44%]
tests/test_gen_dict.py::test_omitting_none[Converter-False] PASSED [ 44%]
tests/test_gen_dict.py::test_overriding_struct_hook[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_struct_hook[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_alias_keys[Converter-True] PASSED [ 45%]
tests/test_gen_dict.py::test_alias_keys[Converter-False] PASSED [ 45%]
tests/test_gen_dict.py::test_init_false[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_overridden[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_overridden[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_field_override[Converter-True] PASSED [ 46%]
tests/test_gen_dict.py::test_init_false_field_override[Converter-False] PASSED [ 46%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 47%]
tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-int-str-result0] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-str-str-result1] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-True-List-str-result2] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-int-str-result0] PASSED [ 47%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-str-str-result1] PASSED [ 48%]
tests/test_generics.py::test_able_to_structure_generics[Converter-False-List-str-result2] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-True-TClass-str-result0] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-True-List-str-result1] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-False-TClass-str-result0] PASSED [ 48%]
tests/test_generics.py::test_structure_nested_generics[Converter-False-List-str-result1] PASSED [ 48%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-False] PASSED [ 49%]
tests/test_generics.py::test_structure_unions_of_generics[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_structure_unions_of_generics[Converter-False] PASSED [ 49%]
tests/test_generics.py::test_structure_list_of_generic_unions[Converter-True] PASSED [ 49%]
tests/test_generics.py::test_structure_list_of_generic_unions[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-False] PASSED [ 50%]
tests/test_generics.py::test_nongeneric_protocols[Converter-True] PASSED [ 50%]
tests/test_generics.py::test_nongeneric_protocols[Converter-False] PASSED [ 51%]
tests/test_optionals.py::test_optional_any[Converter-True] PASSED [ 51%]
tests/test_optionals.py::test_optional_any[Converter-False] PASSED [ 51%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 51%]
tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 51%]
tests/test_unstructure.py::test_unstructure_hook_func[Converter-True] PASSED [ 51%]
tests/test_unstructure.py::test_unstructure_hook_func[Converter-False] PASSED [ 52%]
tests/strategies/test_class_methods.py::test_nested_roundtrip PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-parent-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child1-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child2-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 52%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 53%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-container] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 54%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 55%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 56%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 57%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-container] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 58%]
tests/strategies/test_include_subclasses.py::test_structure_as_union PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses-and-tagged-union] PASSED [ 58%]
tests/strategies/test_include_subclasses.py::test_circular_reference[wo-subclasses] XFAIL [ 58%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-parent-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child1-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child2-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 59%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-container] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 60%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 61%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 62%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 63%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-container] PASSED [ 64%]
tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 65%]
tests/strategies/test_include_subclasses.py::test_structuring_unstructuring_unknown_subclass PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_structuring_with_subclasses_argument PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-parent-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child1-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child2-only] PASSED [ 65%]
tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-grandchild-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-parent-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child1-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child2-only] PASSED [ 66%]
tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-grandchild-only] PASSED [ 66%]
tests/strategies/test_native_unions.py::test_skip_optionals PASSED [ 66%]
tests/strategies/test_tagged_unions.py::test_forbid_extra_keys PASSED [ 67%]
tests/strategies/test_tagged_unions.py::test_forbid_extra_keys_default PASSED [ 67%]
tests/strategies/test_tagged_unions.py::test_nested_sequence_union PASSED [ 67%]
tests/test_baseconverter.py::test_simple_roundtrip FAILED [ 67%]
tests/test_baseconverter.py::test_simple_roundtrip_defaults PASSED [ 67%]
tests/test_baseconverter.py::test_nested_roundtrip FAILED [ 67%]
tests/test_baseconverter.py::test_nested_roundtrip_tuple FAILED [ 68%]
tests/test_baseconverter.py::test_union_field_roundtrip FAILED [ 68%]
tests/test_baseconverter.py::test_310_union_field_roundtrip PASSED [ 68%]
tests/test_baseconverter.py::test_optional_field_roundtrip PASSED [ 68%]
tests/test_baseconverter.py::test_310_optional_field_roundtrip FAILED [ 68%]
tests/test_converter.py::test_simple_roundtrip FAILED [ 68%]
tests/test_converter.py::test_simple_roundtrip_tuple PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_defaults PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_defaults_tuple PASSED [ 69%]
tests/test_converter.py::test_simple_roundtrip_with_extra_keys_forbidden FAILED [ 69%]
tests/test_converter.py::test_forbid_extra_keys PASSED [ 69%]
tests/test_converter.py::test_forbid_extra_keys_defaults PASSED [ 69%]
tests/test_converter.py::test_forbid_extra_keys_nested_override PASSED [ 70%]
tests/test_converter.py::test_nested_roundtrip FAILED [ 70%]
tests/test_converter.py::test_nested_roundtrip_tuple FAILED [ 70%]
tests/test_converter.py::test_union_field_roundtrip FAILED [ 70%]
tests/test_converter.py::test_310_union_field_roundtrip FAILED [ 70%]
tests/test_converter.py::test_optional_field_roundtrip PASSED [ 70%]
tests/test_converter.py::test_310_optional_field_roundtrip PASSED [ 71%]
tests/test_converter.py::test_omit_default_roundtrip FAILED [ 71%]
tests/test_converter.py::test_dict_roundtrip_with_alias PASSED [ 71%]
tests/test_converter.py::test_type_overrides PASSED [ 71%]
tests/test_converter.py::test_calling_back PASSED [ 71%]
tests/test_converter.py::test_overriding_generated_unstructure PASSED [ 71%]
tests/test_converter.py::test_overriding_generated_unstructure_hook_func PASSED [ 72%]
tests/test_converter.py::test_overriding_generated_structure PASSED [ 72%]
tests/test_converter.py::test_overriding_generated_structure_hook_func PASSED [ 72%]
tests/test_converter.py::test_seq_of_simple_classes_unstructure PASSED [ 72%]
tests/test_converter.py::test_seq_of_bare_classes_structure PASSED [ 72%]
tests/test_converter.py::test_annotated_attrs PASSED [ 72%]
tests/test_converter.py::test_annotated_with_typing_extensions_attrs PASSED [ 73%]
tests/test_copy.py::test_copy_converter PASSED [ 73%]
tests/test_copy.py::test_detailed_validation PASSED [ 73%]
tests/test_copy.py::test_col_overrides PASSED [ 73%]
tests/test_disambiguators.py::test_edge_errors PASSED [ 73%]
tests/test_disambiguators.py::test_fallback PASSED [ 73%]
tests/test_disambiguators.py::test_disambiguation PASSED [ 74%]
tests/test_disambiguators.py::test_disambiguate_from_discriminated_enum PASSED [ 74%]
tests/test_disambiguators.py::test_default_no_literals PASSED [ 74%]
tests/test_final.py::test_unstructure_final[True] PASSED [ 74%]
tests/test_final.py::test_unstructure_final[False] PASSED [ 74%]
tests/test_final.py::test_structure_final[True] PASSED [ 75%]
tests/test_final.py::test_structure_final[False] PASSED [ 75%]
tests/test_final.py::test_unstructure_bare_final[True] PASSED [ 75%]
tests/test_final.py::test_unstructure_bare_final[False] PASSED [ 75%]
tests/test_final.py::test_structure_bare_final[True] PASSED [ 75%]
tests/test_final.py::test_structure_bare_final[False] PASSED [ 75%]
tests/test_function_dispatch.py::test_function_dispatch PASSED [ 76%]
tests/test_function_dispatch.py::test_function_clears_cache_after_function_added PASSED [ 76%]
tests/test_gen.py::test_structure_linecache PASSED [ 76%]
tests/test_gen.py::test_unstructure_linecache PASSED [ 76%]
tests/test_gen.py::test_no_linecache PASSED [ 76%]
tests/test_gen.py::test_linecache_dedup PASSED [ 76%]
tests/test_gen_dict.py::test_unmodified_generated_unstructuring PASSED [ 77%]
tests/test_gen_dict.py::test_nodefs_generated_unstructuring PASSED [ 77%]
tests/test_gen_dict.py::test_nodefs_generated_unstructuring_cl PASSED [ 77%]
tests/test_gen_dict.py::test_individual_overrides PASSED [ 77%]
tests/test_gen_dict.py::test_unmodified_generated_structuring FAILED [ 77%]
tests/test_gen_dict.py::test_renaming FAILED [ 77%]
tests/test_gen_dict.py::test_renaming_forbid_extra_keys PASSED [ 78%]
tests/test_gen_dict.py::test_omitting_structure[True] PASSED [ 78%]
tests/test_gen_dict.py::test_omitting_structure[False] PASSED [ 78%]
tests/test_gen_dict.py::test_type_names_with_quotes PASSED [ 78%]
tests/test_gen_dict.py::test_forbid_extra_keys_from_converter PASSED [ 78%]
tests/test_gen_dict.py::test_forbid_extra_keys_from_baseconverter PASSED [ 78%]
tests/test_gen_dict_563.py::test_roundtrip PASSED [ 79%]
tests/test_gen_dict_563.py::test_roundtrip_dc PASSED [ 79%]
tests/test_generics.py::test_deep_copy PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[True-int-result0] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[True-str-result1] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[False-int-result0] PASSED [ 79%]
tests/test_generics.py::test_structure_generics_with_cols[False-str-result1] PASSED [ 80%]
tests/test_generics.py::test_39_structure_generics_with_cols[int-result0] PASSED [ 80%]
tests/test_generics.py::test_39_structure_generics_with_cols[str-result1] PASSED [ 80%]
tests/test_generics.py::test_structure_nested_generics_with_cols[int-result0] PASSED [ 80%]
tests/test_generics.py::test_structure_nested_generics_with_cols[int-result1] PASSED [ 80%]
tests/test_generics.py::test_unstructure_generic_attrs[True] PASSED [ 80%]
tests/test_generics.py::test_unstructure_generic_attrs[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_optional[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_optional[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics[False] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics_list[True] PASSED [ 81%]
tests/test_generics.py::test_unstructure_deeply_nested_generics_list[False] PASSED [ 82%]
tests/test_generics.py::test_unstructure_protocol[True] PASSED [ 82%]
tests/test_generics.py::test_unstructure_protocol[False] PASSED [ 82%]
tests/test_generics.py::test_roundtrip_generic_with_union PASSED [ 82%]
tests/test_generics.py::test_generate_typeddict_mapping PASSED [ 82%]
tests/test_generics_604.py::test_unstructure_optional[True] PASSED [ 82%]
tests/test_generics_604.py::test_unstructure_optional[False] PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_cls PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_func PASSED [ 83%]
tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_conflict_class_wins PASSED [ 83%]
tests/test_newtypes.py::test_newtype_structure_hooks[True] PASSED [ 83%]
tests/test_newtypes.py::test_newtype_structure_hooks[False] PASSED [ 83%]
tests/test_newtypes.py::test_newtype_unstructure_hooks[True] PASSED [ 84%]
tests/test_newtypes.py::test_newtype_unstructure_hooks[False] PASSED [ 84%]
tests/test_optionals.py::test_newtype_optionals[True] PASSED [ 84%]
tests/test_optionals.py::test_newtype_optionals[False] PASSED [ 84%]
tests/test_optionals.py::test_newtype_modern_optionals[True] PASSED [ 84%]
tests/test_optionals.py::test_newtype_modern_optionals[False] PASSED [ 84%]
tests/test_recursive.py::test_simple_recursive PASSED [ 85%]
tests/test_structure.py::test_structuring_primitives PASSED [ 85%]
tests/test_structure.py::test_structuring_seqs PASSED [ 85%]
tests/test_structure.py::test_structuring_seqs_to_deque PASSED [ 85%]
tests/test_structure.py::test_structuring_sets PASSED [ 85%]
tests/test_structure.py::test_stringifying_sets PASSED [ 85%]
tests/test_structure.py::test_structuring_hetero_tuples PASSED [ 86%]
tests/test_structure.py::test_stringifying_tuples PASSED [ 86%]
tests/test_structure.py::test_structuring_dicts PASSED [ 86%]
tests/test_structure.py::test_structuring_dicts_opts PASSED [ 86%]
tests/test_structure.py::test_stringifying_dicts PASSED [ 86%]
tests/test_structure.py::test_structuring_optional_primitives PASSED [ 86%]
tests/test_structure.py::test_structuring_lists_of_opt PASSED [ 87%]
tests/test_structure.py::test_stringifying_lists_of_opt PASSED [ 87%]
tests/test_structure.py::test_structuring_primitive_union_hook PASSED [ 87%]
tests/test_structure.py::test_structure_hook_func PASSED [ 87%]
tests/test_structure.py::test_structuring_enums PASSED [ 87%]
tests/test_structure.py::test_structuring_unsupported PASSED [ 88%]
tests/test_structure.py::test_subclass_registration_is_honored PASSED [ 88%]
tests/test_structure.py::test_structure_union_edge_case PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_simple_from_dict PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_simple_from_dict_default FAILED [ 88%]
tests/test_structure_attrs.py::test_roundtrip PASSED [ 88%]
tests/test_structure_attrs.py::test_structure_tuple PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union_none PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_union_explicit PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal[BaseConverter] PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal[Converter] PASSED [ 89%]
tests/test_structure_attrs.py::test_structure_literal_enum[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_enum[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_error[BaseConverter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_error[Converter] PASSED [ 90%]
tests/test_structure_attrs.py::test_structure_literal_multiple_error[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_literal_multiple_error[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[BaseConverter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[Converter] PASSED [ 91%]
tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[BaseConverter] PASSED [ 92%]
tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[Converter] PASSED [ 92%]
tests/test_typeddicts.py::test_simple_roundtrip PASSED [ 92%]
tests/test_typeddicts.py::test_simple_nontotal PASSED [ 92%]
tests/test_typeddicts.py::test_int_override PASSED [ 92%]
tests/test_typeddicts.py::test_extra_keys PASSED [ 92%]
tests/test_typeddicts.py::test_generics PASSED [ 93%]
tests/test_typeddicts.py::test_not_required PASSED [ 93%]
tests/test_typeddicts.py::test_required PASSED [ 93%]
tests/test_typeddicts.py::test_omit PASSED [ 93%]
tests/test_typeddicts.py::test_rename PASSED [ 93%]
tests/test_typeddicts.py::test_forbid_extra_keys PASSED [ 93%]
tests/test_typeddicts.py::test_recursive_generation PASSED [ 94%]
tests/test_typeddicts.py::test_forwardref[True] PASSED [ 94%]
tests/test_typeddicts.py::test_forwardref[False] PASSED [ 94%]
tests/test_typeddicts.py::test_forbid_extra_keys_from_converter PASSED [ 94%]
tests/test_typeddicts.py::test_forbid_extra_keys_from_baseconverter PASSED [ 94%]
tests/test_unions.py::test_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 94%]
tests/test_unions.py::test_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%]
tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 95%]
tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%]
tests/test_unions.py::test_custom_union_clsfield_roundtrip[BaseConverter] PASSED [ 95%]
tests/test_unions.py::test_custom_union_clsfield_roundtrip[Converter] PASSED [ 95%]
tests/test_unstructure.py::test_seq_unstructure PASSED [ 95%]
tests/test_unstructure.py::test_set_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_mapping_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_enum_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_attrs_asdict_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_attrs_astuple_unstructure PASSED [ 96%]
tests/test_unstructure.py::test_unstructure_hooks PASSED [ 96%]
tests/test_unstructure.py::test_seq_of_simple_classes_unstructure PASSED [ 97%]
tests/test_v.py::test_attribute_errors PASSED [ 97%]
tests/test_v.py::test_class_errors PASSED [ 97%]
tests/test_v.py::test_sequence_errors PASSED [ 97%]
tests/test_v.py::test_mapping_errors PASSED [ 97%]
tests/test_v.py::test_custom_error_fn PASSED [ 97%]
tests/test_v.py::test_custom_error_fn_nested PASSED [ 98%]
tests/test_v.py::test_typeddict_attribute_errors PASSED [ 98%]
tests/test_validation.py::test_class_validation PASSED [ 98%]
tests/test_validation.py::test_external_class_validation PASSED [ 98%]
tests/test_validation.py::test_list_validation PASSED [ 98%]
tests/test_validation.py::test_mapping_validation PASSED [ 98%]
tests/test_validation.py::test_counter_validation PASSED [ 99%]
tests/test_validation.py::test_set_validation PASSED [ 99%]
tests/test_validation.py::test_frozenset_validation PASSED [ 99%]
tests/test_validation.py::test_homo_tuple_validation PASSED [ 99%]
tests/test_validation.py::test_hetero_tuple_validation PASSED [ 99%]
tests/test_validation.py::test_notes_pickling PASSED [100%]
=================================== FAILURES ===================================
____________________________ test_simple_roundtrip _____________________________
@given(simple_typed_classes(newtypes=False), unstructure_strats)
> def test_simple_roundtrip(cls_and_vals, strat):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da45e0>
tests/test_baseconverter.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
@given(simple_typed_classes(newtypes=False), unstructure_strats)
def test_simple_roundtrip(cls_and_vals, strat):
"""
Simple classes with metadata can be unstructured and restructured.
"""
converter = BaseConverter(unstruct_strat=strat)
cl, vals, kwargs = cls_and_vals
assume(strat is UnstructureStrategy.AS_DICT or not kwargs)
inst = cl(*vals, **kwargs)
> assert inst == converter.structure(converter.unstructure(inst), cl)
E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_simple_roundtrip(
E cls_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E strat=UnstructureStrategy.AS_DICT, # or any other generated value
E )
cl = <class 'tests.typed.HypAttrsClass'>
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.BaseConverter object at 0xffff834c4fc0>
inst = HypAttrsClass(a=nan)
kwargs = {}
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
vals = (nan,)
tests/test_baseconverter.py:26: AssertionError
____________________________ test_nested_roundtrip _____________________________
@given(nested_typed_classes(newtypes=False))
> def test_nested_roundtrip(cls_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da5300>
tests/test_baseconverter.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan,), {})
@given(nested_typed_classes(newtypes=False))
def test_nested_roundtrip(cls_and_vals):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = BaseConverter()
cl, vals, kwargs = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals, **kwargs)
> assert inst == converter.structure(converter.unstructure(inst), cl)
E AssertionError: assert HypClass(a=nan) == HypClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Falsifying example: test_nested_roundtrip(
E cls_and_vals=(tests.typed.HypClass, (nan,), {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan,), {})
converter = <cattrs.converters.BaseConverter object at 0xffff82679c40>
inst = HypClass(a=nan)
kwargs = {}
vals = (nan,)
tests/test_baseconverter.py:54: AssertionError
_________________________ test_nested_roundtrip_tuple __________________________
@given(nested_typed_classes(kw_only=False, newtypes=False))
> def test_nested_roundtrip_tuple(cls_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da5760>
tests/test_baseconverter.py:58:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=nan, _d=[HypClass()])],), {})
@given(nested_typed_classes(kw_only=False, newtypes=False))
def test_nested_roundtrip_tuple(cls_and_vals):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = BaseConverter(unstruct_strat=UnstructureStrategy.AS_TUPLE)
cl, vals, kwargs = cls_and_vals
assert not kwargs
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals)
> assert inst == converter.structure(converter.unstructure(inst), cl)
E AssertionError: assert HypClass(a=[H...HypClass()])]) == HypClass(a=[H...HypClass()])])
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: [HypClass(a=0, _b=0, c=nan, _d=[HypClass()])] != [HypClass(a=0, _b=0, c=nan, _d=[HypClass()])]
E At index 0 diff: HypClass(a=0, _b=0, c=nan, _d=[HypClass()]) != HypClass(a=0, _b=0, c=nan, _d=[HypClass()])...
E
E ...Full output truncated (5 lines hidden), use '-vv' to show
E Falsifying example: test_nested_roundtrip_tuple(
E cls_and_vals=(tests.typed.HypClass,
E ([HypClass(a=0, _b=0, c=nan, _d=[HypClass()])],),
E {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3.12/difflib.py:490
E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:469
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
E /usr/lib/python3/dist-packages/attr/_make.py:1514
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, ([HypClass(a=0, _b=0, c=nan, _d=[HypClass()])],), {})
converter = <cattrs.converters.BaseConverter object at 0xffff7e6dccc0>
inst = HypClass(a=[HypClass(a=0, _b=0, c=nan, _d=[HypClass()])])
kwargs = {}
vals = ([HypClass(a=0, _b=0, c=nan, _d=[HypClass()])],)
tests/test_baseconverter.py:67: AssertionError
__________________________ test_union_field_roundtrip __________________________
@settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
> @given(
simple_typed_classes(defaults=False, newtypes=False),
simple_typed_classes(defaults=False, newtypes=False),
unstructure_strats,
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da5d00>
tests/test_baseconverter.py:71:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals_a = (<class 'tests.typed.HypAttrsClass'>, (nan, 0, 0), {'_f': ''})
cl_and_vals_b = (<class 'tests.typed.HypAttrsClass'>, (None,), {})
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
@settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
@given(
simple_typed_classes(defaults=False, newtypes=False),
simple_typed_classes(defaults=False, newtypes=False),
unstructure_strats,
)
def test_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat):
"""
Classes with union fields can be unstructured and structured.
"""
converter = BaseConverter(unstruct_strat=strat)
cl_a, vals_a, kwargs_a = cl_and_vals_a
assume(strat is UnstructureStrategy.AS_DICT or not kwargs_a)
cl_b, vals_b, _ = cl_and_vals_b
a_field_names = {a.name for a in fields(cl_a)}
b_field_names = {a.name for a in fields(cl_b)}
assume(a_field_names)
assume(b_field_names)
common_names = a_field_names & b_field_names
assume(len(a_field_names) > len(common_names))
@define
class C:
a: Union[cl_a, cl_b]
inst = C(a=cl_a(*vals_a, **kwargs_a))
if strat is UnstructureStrategy.AS_DICT:
> assert inst == converter.structure(converter.unstructure(inst), C)
E AssertionError: assert C(a=HypAttrsC..., _d=0, e='')) == C(a=HypAttrsC..., _d=0, e=''))
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: HypAttrsClass(a=nan, _b=0, _d=0, e='') != HypAttrsClass(a=nan, _b=0, _d=0, e='')
E ...
E
E ...Full output truncated (6 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={})}
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_union_field_roundtrip(
E # The test always failed when commented parts were varied together.
E cl_and_vals_a=(tests.typed.HypAttrsClass, (nan, 0, 0), {'_f': ''}),
E cl_and_vals_b=(tests.typed.HypAttrsClass,
E (None,),
E {}), # or any other generated value
E strat=UnstructureStrategy.AS_DICT, # or any other generated value
E )
C = <class 'tests.test_baseconverter.test_union_field_roundtrip.<locals>.C'>
_ = {}
a_field_names = {'_b', '_d', 'a', 'e'}
b_field_names = {'a'}
cl_a = <class 'tests.typed.HypAttrsClass'>
cl_and_vals_a = (<class 'tests.typed.HypAttrsClass'>, (nan, 0, 0), {'_f': ''})
cl_and_vals_b = (<class 'tests.typed.HypAttrsClass'>, (None,), {})
cl_b = <class 'tests.typed.HypAttrsClass'>
common_names = {'a'}
converter = <cattrs.converters.BaseConverter object at 0xffff834128c0>
inst = C(a=HypAttrsClass(a=nan, _b=0, _d=0, e=''))
kwargs_a = {'_f': ''}
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
vals_a = (nan, 0, 0)
vals_b = (None,)
tests/test_baseconverter.py:99: AssertionError
______________________ test_310_optional_field_roundtrip _______________________
@pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax")
> @given(simple_typed_classes(defaults=False, newtypes=False))
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da6700>
tests/test_baseconverter.py:177:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
@pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax")
@given(simple_typed_classes(defaults=False, newtypes=False))
def test_310_optional_field_roundtrip(cl_and_vals):
"""
Classes with optional fields can be unstructured and structured.
"""
converter = BaseConverter()
cl, vals, kwargs = cl_and_vals
@define
class C:
a: cl | None
inst = C(a=cl(*vals, **kwargs))
> assert inst == converter.structure(converter.unstructure(inst), C)
E AssertionError: assert C(a=HypAttrsClass(a=nan)) == C(a=HypAttrsClass(a=nan))
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: HypAttrsClass(a=nan) != HypAttrsClass(a=nan)
E ...
E
E ...Full output truncated (5 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_310_optional_field_roundtrip(
E cl_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
C = <class 'tests.test_baseconverter.test_310_optional_field_roundtrip.<locals>.C'>
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.BaseConverter object at 0xffff79c59540>
inst = C(a=HypAttrsClass(a=nan))
kwargs = {}
vals = (nan,)
tests/test_baseconverter.py:190: AssertionError
____________________________ test_simple_roundtrip _____________________________
@given(simple_typed_classes() | simple_typed_dataclasses(), booleans())
> def test_simple_roundtrip(cls_and_vals, detailed_validation):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83da7e20>
tests/test_converter.py:41:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (frozenset(), nan), {})
detailed_validation = False
@given(simple_typed_classes() | simple_typed_dataclasses(), booleans())
def test_simple_roundtrip(cls_and_vals, detailed_validation):
"""
Simple classes with metadata can be unstructured and restructured.
"""
converter = Converter(detailed_validation=detailed_validation)
cl, vals, kwargs = cls_and_vals
inst = cl(*vals, **kwargs)
unstructured = converter.unstructure(inst)
assert "Hyp" not in repr(unstructured)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypAttrsClass...set(), _b=nan) == HypAttrsClass...set(), _b=nan)
E
E Omitting 1 identical items, use -vv to show
E Differing attributes:
E ['_b']
E
E Drill down into differing attribute _b:
E _b: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})}
E Falsifying example: test_simple_roundtrip(
E cls_and_vals=(tests.typed.HypAttrsClass,
E (frozenset(),
E struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0]),
E {}),
E detailed_validation=False, # or any other generated value
E )
cl = <class 'tests.typed.HypAttrsClass'>
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (frozenset(), nan), {})
converter = <cattrs.converters.Converter object at 0xffff68a291c0>
detailed_validation = False
inst = HypAttrsClass(a=frozenset(), _b=nan)
kwargs = {}
unstructured = {'_b': nan, 'a': frozenset()}
vals = (frozenset(), nan)
tests/test_converter.py:50: AssertionError
_______________ test_simple_roundtrip_with_extra_keys_forbidden ________________
@given(
> simple_typed_classes(newtypes=False) | simple_typed_dataclasses(newtypes=False),
unstructure_strats,
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83e011c0>
tests/test_converter.py:103:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
@given(
simple_typed_classes(newtypes=False) | simple_typed_dataclasses(newtypes=False),
unstructure_strats,
)
def test_simple_roundtrip_with_extra_keys_forbidden(cls_and_vals, strat):
"""
Simple classes can be unstructured and restructured with forbid_extra_keys=True.
"""
converter = Converter(unstruct_strat=strat, forbid_extra_keys=True)
cl, vals, kwargs = cls_and_vals
assume(strat is UnstructureStrategy.AS_DICT or not kwargs)
inst = cl(*vals, **kwargs)
unstructured = converter.unstructure(inst)
assert "Hyp" not in repr(unstructured)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_simple_roundtrip_with_extra_keys_forbidden(
E cls_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E strat=UnstructureStrategy.AS_DICT, # or any other generated value
E )
cl = <class 'tests.typed.HypAttrsClass'>
cls_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.Converter object at 0xffff70631da0>
inst = HypAttrsClass(a=nan)
kwargs = {}
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
unstructured = {'a': nan}
vals = (nan,)
tests/test_converter.py:116: AssertionError
____________________________ test_nested_roundtrip _____________________________
@given(nested_typed_classes(defaults=True, min_attrs=1), booleans())
> def test_nested_roundtrip(cls_and_vals, omit_if_default):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83e01580>
tests/test_converter.py:203:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan, [HypClass(a=None)]), {})
omit_if_default = False
@given(nested_typed_classes(defaults=True, min_attrs=1), booleans())
def test_nested_roundtrip(cls_and_vals, omit_if_default):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = Converter(omit_if_default=omit_if_default)
cl, vals, kwargs = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals, **kwargs)
unstructured = converter.unstructure(inst)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypClass(a=na...lass(a=None)]) == HypClass(a=na...lass(a=None)])
E
E Omitting 1 identical items, use -vv to show
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Falsifying example: test_nested_roundtrip(
E cls_and_vals=(tests.typed.HypClass, (nan, [HypClass(a=None)]), {}),
E omit_if_default=False, # or any other generated value
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, (nan, [HypClass(a=None)]), {})
converter = <cattrs.converters.Converter object at 0xffff7b122480>
inst = HypClass(a=nan, _b=[HypClass(a=None)])
kwargs = {}
omit_if_default = False
unstructured = {'_b': [{'a': None}], 'a': nan}
vals = (nan, [HypClass(a=None)])
tests/test_converter.py:212: AssertionError
_________________________ test_nested_roundtrip_tuple __________________________
@given(
> nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False),
booleans(),
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83e019e0>
tests/test_converter.py:216:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls_and_vals = (<class 'tests.typed.HypClass'>, (0, '', 0.0, 0.0, {}, PosixPath('a'), ...), {})
omit_if_default = False
@given(
nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False),
booleans(),
)
def test_nested_roundtrip_tuple(cls_and_vals, omit_if_default: bool):
"""
Nested classes with metadata can be unstructured and restructured.
"""
converter = Converter(
unstruct_strat=UnstructureStrategy.AS_TUPLE, omit_if_default=omit_if_default
)
cl, vals, _ = cls_and_vals
# Vals are a tuple, convert into a dictionary.
inst = cl(*vals)
unstructured = converter.unstructure(inst)
> assert inst == converter.structure(unstructured, cl)
E AssertionError: assert HypClass(a=0,...0, ab=11799)]) == HypClass(a=0,...0, ab=11799)])
E
E Omitting 9 identical items, use -vv to show
E Differing attributes:
E ['g']
E
E Drill down into differing attribute g:
E g: nan != nan
E Falsifying example: test_nested_roundtrip_tuple(
E cls_and_vals=(tests.typed.HypClass,
E (0,
E '',
E 0.0,
E 0.0,
E {},
E Path('a'),
E struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0],
E 0,
E frozenset(),
E [HypClass(a=None,
E _b=None,
E c=None,
E _d=None,
E e=0,
E _f=0,
E g='',
E _h='',
E i=0.0,
E _j=0.0,
E k=frozenset(),
E _l={},
E m={},
E _n={},
E o={},
E _p={},
E q={},
E _r=[],
E s=[0],
E _t=0,
E u=0,
E _v=('', '', ''),
E w={'': 0},
E _x=[],
E y=[],
E _z=[0.0],
E aa=0,
E ab=11799)]),
E {}),
E omit_if_default=False,
E )
_ = {}
cl = <class 'tests.typed.HypClass'>
cls_and_vals = (<class 'tests.typed.HypClass'>, (0, '', 0.0, 0.0, {}, PosixPath('a'), ...), {})
converter = <cattrs.converters.Converter object at 0xffff71c74180>
inst = HypClass(a=0, _b='', c=0.0, _d=0.0, e={}, _f=PosixPath('a'), g=nan, _h=0, i=frozenset(), _j=[HypClass(a=None, _b=None,..._n={}, o={}, _p={}, q={}, _r=[], s=[0], _t=0, u=0, _v=('', '', ''), w={'': 0}, _x=[], y=[], _z=[0.0], aa=0, ab=11799)])
omit_if_default = False
unstructured = (0, '', 0.0, 0.0, {}, 'a', ...)
vals = (0, '', 0.0, 0.0, {}, PosixPath('a'), ...)
tests/test_converter.py:230: AssertionError
---------------------------------- Hypothesis ----------------------------------
WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress. When you re-run your tests, shrinking will resume and may take this long before aborting again.
PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone.
__________________________ test_union_field_roundtrip __________________________
@settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
> @given(
simple_typed_classes(defaults=False, newtypes=False),
simple_typed_classes(defaults=False, newtypes=False),
unstructure_strats,
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83e01ee0>
tests/test_converter.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals_a = (<class 'tests.typed.HypAttrsClass'>, (0, frozenset(), frozenset()), {'_f': nan, 'g': 0, 'i': frozenset()})
cl_and_vals_b = (<class 'tests.typed.HypAttrsClass'>, (None,), {})
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
@settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
@given(
simple_typed_classes(defaults=False, newtypes=False),
simple_typed_classes(defaults=False, newtypes=False),
unstructure_strats,
)
def test_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat):
"""
Classes with union fields can be unstructured and structured.
"""
converter = Converter(unstruct_strat=strat)
cl_a, vals_a, kwargs_a = cl_and_vals_a
cl_b, _, _ = cl_and_vals_b
assume(strat is UnstructureStrategy.AS_DICT or not kwargs_a)
a_field_names = {a.name for a in fields(cl_a)}
b_field_names = {a.name for a in fields(cl_b)}
assume(a_field_names)
assume(b_field_names)
common_names = a_field_names & b_field_names
assume(len(a_field_names) > len(common_names))
@define
class C:
a: Union[cl_a, cl_b]
inst = C(a=cl_a(*vals_a, **kwargs_a))
if strat is UnstructureStrategy.AS_DICT:
unstructured = converter.unstructure(inst)
> assert inst == converter.structure(converter.unstructure(unstructured), C)
E AssertionError: assert C(a=HypAttrsC...=frozenset())) == C(a=HypAttrsC...=frozenset()))
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: HypAttrsClass(a=0, _b=frozenset(), _d=frozenset(), e=nan, g=0, _h=frozenset()) != HypAttrsClass(a=0, _b=frozenset(), _d=frozenset(), e=nan, g=0, _h=frozenset())
E ...
E
E ...Full output truncated (6 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={})}
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_union_field_roundtrip(
E # The test always failed when commented parts were varied together.
E cl_and_vals_a=(tests.typed.HypAttrsClass,
E (0, frozenset(), frozenset()),
E {'_f': nan, 'g': 0, 'i': frozenset()}),
E cl_and_vals_b=(tests.typed.HypAttrsClass,
E (None,),
E {}), # or any other generated value
E strat=UnstructureStrategy.AS_DICT, # or any other generated value
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
C = <class 'tests.test_converter.test_union_field_roundtrip.<locals>.C'>
_ = {}
a_field_names = {'_b', '_d', '_h', 'a', 'e', 'g'}
b_field_names = {'a'}
cl_a = <class 'tests.typed.HypAttrsClass'>
cl_and_vals_a = (<class 'tests.typed.HypAttrsClass'>, (0, frozenset(), frozenset()), {'_f': nan, 'g': 0, 'i': frozenset()})
cl_and_vals_b = (<class 'tests.typed.HypAttrsClass'>, (None,), {})
cl_b = <class 'tests.typed.HypAttrsClass'>
common_names = {'a'}
converter = <cattrs.converters.Converter object at 0xffff75873f60>
inst = C(a=HypAttrsClass(a=0, _b=frozenset(), _d=frozenset(), e=nan, g=0, _h=frozenset()))
kwargs_a = {'_f': nan, 'g': 0, 'i': frozenset()}
strat = <UnstructureStrategy.AS_DICT: 'asdict'>
unstructured = {'a': {'_b': frozenset(), '_d': frozenset(), '_h': frozenset(), 'a': 0, ...}}
vals_a = (0, frozenset(), frozenset())
tests/test_converter.py:263: AssertionError
________________________ test_310_union_field_roundtrip ________________________
+ Exception Group Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in <lambda>
| lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall
| return outcome.get_result()
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result
| raise exc.with_traceback(exc.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
| yield from thread_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
| yield from unraisable_exception_runtest_hook()
| File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 846, in pytest_runtest_call
| yield from self._runtest_for(item, "call")
| File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 829, in _runtest_for
| yield
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 880, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
| teardown.throw(outcome._exception)
| File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call
| item.runtest()
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall
| raise exception.with_traceback(exception.__traceback__)
| File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/tests/test_converter.py", line 278, in test_310_union_field_roundtrip
| @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow])
| ^^^
| File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1705, in wrapped_test
| raise the_error_hypothesis_found
| ExceptionGroup: Hypothesis found 2 distinct failures. (2 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/tests/test_converter.py", line 319, in test_310_union_field_roundtrip
| assert inst == converter.structure(unstructured, C)
| AssertionError: assert C(a=HypAttrsC...('', '', ''))) == C(a=HypAttrsC...('', '', '')))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=0, _b=0, _d=0, e=0, g={}, _h={}, _j={}, k=[], m=nan, _n=0, _p=0, q=('', '', '')) != HypAttrsClass(a=0, _b=0, _d=0, e=0, g={}, _h={}, _j={}, k=[], m=nan, _n=0, _p=0, q=('', '', ''))
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_n': _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='o', metadata={}), '_p': _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'q': _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_r', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| # The test always failed when commented parts were varied together.
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (0,
| 0,
| 0,
| 0,
| {},
| {},
| {},
| [],
| struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0],
| 0,
| 0,
| ('', '', '')),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass,
| (None,),
| {}), # or any other generated value
| strat=UnstructureStrategy.AS_TUPLE, # or any other generated value
| )
| Explanation:
| These lines were always and only run by failing examples:
| /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/tests/test_converter.py", line 308, in test_310_union_field_roundtrip
| assert inst == converter.structure(converter.unstructure(unstructured), C)
| AssertionError: assert C(a=HypAttrsC...('', '', ''))) == C(a=HypAttrsC...('', '', '')))
|
| Differing attributes:
| ['a']
|
| Drill down into differing attribute a:
| a: HypAttrsClass(a=0, _b=0, _d=0, e=0, g={}, _h={}, _j={}, k=[], m=nan, _n=0, _p=0, q=('', '', '')) != HypAttrsClass(a=0, _b=0, _d=0, e=0, g={}, _h={}, _j={}, k=[], m=nan, _n=0, _p=0, q=('', '', ''))
| ...
|
| ...Full output truncated (6 lines hidden), use '-vv' to show
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_n': _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='o', metadata={}), '_p': _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'q': _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_r', metadata={})}
| Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
| Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
| Falsifying example: test_310_union_field_roundtrip(
| # The test always failed when commented parts were varied together.
| cl_and_vals_a=(tests.typed.HypAttrsClass,
| (0,
| 0,
| 0,
| 0,
| {},
| {},
| {},
| [],
| struct.unpack('d', struct.pack('Q', 0x7ff8000000000001))[0],
| 0,
| 0,
| ('', '', '')),
| {}),
| cl_and_vals_b=(tests.typed.HypAttrsClass,
| (None,),
| {}), # or any other generated value
| strat=UnstructureStrategy.AS_DICT, # or any other generated value
| )
| Explanation:
| These lines were always and only run by failing examples:
| /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250
+------------------------------------
_________________________ test_omit_default_roundtrip __________________________
@given(simple_typed_classes(defaults=True))
> def test_omit_default_roundtrip(cl_and_vals):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83e02b60>
tests/test_converter.py:366:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (0, 0, 0, 0, ('', '', ''), {}, ...), {})
@given(simple_typed_classes(defaults=True))
def test_omit_default_roundtrip(cl_and_vals):
"""
Omit default on the converter works.
"""
converter = Converter(omit_if_default=True)
cl, vals, kwargs = cl_and_vals
@define
class C:
a: int = 1
b: cl = Factory(lambda: cl(*vals, **kwargs))
inst = C()
unstructured = converter.unstructure(inst)
> assert unstructured == {}
E AssertionError: assert {'b': {'m': nan}} == {}
E
E Left contains 1 more item:
E {'b': {'m': nan}}
E
E Full diff:
E - {}
E + {...
E
E ...Full output truncated (4 lines hidden), use '-vv' to show
E Class fields: [_CountingAttr(counter=0, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=('', '', ''), repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=('', '', ''), repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default={}, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_omit_default_roundtrip(
E cl_and_vals=(tests.typed.HypAttrsClass,
E (0, 0, 0, 0, ('', '', ''), {}, {}, {}, nan),
E {}),
E )
E Explanation:
E These lines were always and only run by failing examples:
E /usr/lib/python3.12/pprint.py:197
E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:128
C = <class 'tests.test_converter.test_omit_default_roundtrip.<locals>.C'>
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (0, 0, 0, 0, ('', '', ''), {}, ...), {})
converter = <cattrs.converters.Converter object at 0xffff716a3880>
inst = C(a=1, b=HypAttrsClass(a=0, _b=0, _d=0, e=0, g=('', '', ''), _h={}, _j={}, k={}, m=nan))
kwargs = {}
unstructured = {'b': {'m': nan}}
vals = (0, 0, 0, 0, ('', '', ''), {}, ...)
tests/test_converter.py:380: AssertionError
____________________ test_unmodified_generated_structuring _____________________
@given(
> cl_and_vals=nested_typed_classes()
| simple_typed_classes()
| simple_typed_dataclasses(),
dv=...,
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83c9e8e0>
tests/test_gen_dict.py:166:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {}), dv = False
@given(
cl_and_vals=nested_typed_classes()
| simple_typed_classes()
| simple_typed_dataclasses(),
dv=...,
)
def test_unmodified_generated_structuring(cl_and_vals, dv: bool):
converter = Converter(detailed_validation=dv)
cl, vals, kwargs = cl_and_vals
fn = make_dict_structure_fn(cl, converter, _cattrs_detailed_validation=dv)
inst = cl(*vals, **kwargs)
unstructured = converter.unstructure(inst)
assert "Hyp" not in repr(unstructured)
converter.register_structure_hook(cl, fn)
res = converter.structure(unstructured, cl)
> assert inst == res
E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_unmodified_generated_structuring(
E cl_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E dv=False, # or any other generated value
E )
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.Converter object at 0xffff7c37e160>
dv = False
fn = <function structure_HypAttrsClass at 0xffff79b10900>
inst = HypAttrsClass(a=nan)
kwargs = {}
res = HypAttrsClass(a=nan)
unstructured = {'a': nan}
vals = (nan,)
tests/test_gen_dict.py:186: AssertionError
________________________________ test_renaming _________________________________
@given(
> simple_typed_classes(min_attrs=1) | simple_typed_dataclasses(min_attrs=1), data()
)
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83c9e840>
tests/test_gen_dict.py:190:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
data = data(...)
@given(
simple_typed_classes(min_attrs=1) | simple_typed_dataclasses(min_attrs=1), data()
)
def test_renaming(cl_and_vals, data):
converter = Converter()
cl, vals, kwargs = cl_and_vals
attrs = fields(cl)
to_replace = data.draw(sampled_from(attrs))
u_fn = make_dict_unstructure_fn(
cl, converter, **{to_replace.name: override(rename="class")}
)
s_fn = make_dict_structure_fn(
cl, converter, **{to_replace.name: override(rename="class")}
)
converter.register_structure_hook(cl, s_fn)
converter.register_unstructure_hook(cl, u_fn)
inst = cl(*vals, **kwargs)
raw = converter.unstructure(inst)
assert "class" in raw
new_inst = converter.structure(raw, cl)
> assert inst == new_inst
E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan)
E
E Differing attributes:
E ['a']
E
E Drill down into differing attribute a:
E a: nan != nan
E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})]
E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})}
E Falsifying example: test_renaming(
E cl_and_vals=(tests.typed.HypAttrsClass, (nan,), {}),
E data=data(...),
E )
E Draw 1: Attribute(name='a', default=NOTHING, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=<class 'float'>, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='a')
attrs = (Attribute(name='a', default=NOTHING, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, has...a=mappingproxy({}), type=<class 'float'>, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='a'),)
cl = <class 'tests.typed.HypAttrsClass'>
cl_and_vals = (<class 'tests.typed.HypAttrsClass'>, (nan,), {})
converter = <cattrs.converters.Converter object at 0xffff6f1bbce0>
data = data(...)
inst = HypAttrsClass(a=nan)
kwargs = {}
new_inst = HypAttrsClass(a=nan)
raw = {'class': nan}
s_fn = <function structure_HypAttrsClass at 0xffff6f1bae80>
to_replace = Attribute(name='a', default=NOTHING, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash...ata=mappingproxy({}), type=<class 'float'>, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='a')
u_fn = <function unstructure_HypAttrsClass at 0xffff6f1b8540>
vals = (nan,)
tests/test_gen_dict.py:217: AssertionError
___________________ test_structure_simple_from_dict_default ____________________
@given(simple_classes(defaults=True, min_attrs=1, frozen=False), data())
> def test_structure_simple_from_dict_default(cl_and_vals, data):
f = <function given.<locals>.run_test_as_given.<locals>.wrapped_test at 0xffff83c23920>
tests/test_structure_attrs.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cl_and_vals = (<class 'tests.untyped.HypClass'>, (0, 0.0), {}), data = data(...)
@given(simple_classes(defaults=True, min_attrs=1, frozen=False), data())
def test_structure_simple_from_dict_default(cl_and_vals, data):
"""Test structuring non-nested attrs classes with default value."""
converter = BaseConverter()
cl, vals, kwargs = cl_and_vals
obj = cl(*vals, **kwargs)
attrs_with_defaults = [a for a in fields(cl) if a.default is not NOTHING]
to_remove = data.draw(
lists(elements=sampled_from(attrs_with_defaults), unique=True)
)
for a in to_remove:
if isinstance(a.default, Factory):
setattr(obj, a.name, a.default.factory())
else:
setattr(obj, a.name, a.default)
dumped = asdict(obj)
for a in to_remove:
del dumped[a.name]
> assert obj == converter.structure(dumped, cl)
E AssertionError: assert HypClass(a=0, _b=nan) == HypClass(a=0, _b=nan)
E
E Omitting 1 identical items, use -vv to show
E Differing attributes:
E ['_b']
E
E Drill down into differing attribute _b:
E _b: nan != nan
E Falsifying example: test_structure_simple_from_dict_default(
E cl_and_vals=(tests.untyped.HypClass, (0, 0.0), {}),
E data=data(...),
E )
E Draw 1: [Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')]
a = Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=No...True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')
attrs_with_defaults = [Attribute(name='a', default=0, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None...rue, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')]
cl = <class 'tests.untyped.HypClass'>
cl_and_vals = (<class 'tests.untyped.HypClass'>, (0, 0.0), {})
converter = <cattrs.converters.BaseConverter object at 0xffff7e010dc0>
data = data(...)
dumped = {'a': 0}
kwargs = {}
obj = HypClass(a=0, _b=nan)
to_remove = [Attribute(name='_b', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=N...rue, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b')]
vals = (0, 0.0)
tests/test_structure_attrs.py:52: AssertionError
=============================== warnings summary ===============================
tests/typed.py:417
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/tests/typed.py:417: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[attr._make._CountingAttr, st.SearchStrategy]]`, but the decorated function should return a value (not a strategy)
@composite
tests/typed.py:826
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build/tests/typed.py:826: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[typing.Type, st.SearchStrategy[typing.Tuple[typing.Any]], st.SearchStrategy[typing.Dict[str, typing.Any]]]]`, but the decorated function should return a value (not a strategy)
@composite
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_baseconverter.py::test_simple_roundtrip - AssertionError: a...
FAILED tests/test_baseconverter.py::test_nested_roundtrip - AssertionError: a...
FAILED tests/test_baseconverter.py::test_nested_roundtrip_tuple - AssertionEr...
FAILED tests/test_baseconverter.py::test_union_field_roundtrip - AssertionErr...
FAILED tests/test_baseconverter.py::test_310_optional_field_roundtrip - Asser...
FAILED tests/test_converter.py::test_simple_roundtrip - AssertionError: asser...
FAILED tests/test_converter.py::test_simple_roundtrip_with_extra_keys_forbidden
FAILED tests/test_converter.py::test_nested_roundtrip - AssertionError: asser...
FAILED tests/test_converter.py::test_nested_roundtrip_tuple - AssertionError:...
FAILED tests/test_converter.py::test_union_field_roundtrip - AssertionError: ...
FAILED tests/test_converter.py::test_310_union_field_roundtrip - ExceptionGro...
FAILED tests/test_converter.py::test_omit_default_roundtrip - AssertionError:...
FAILED tests/test_gen_dict.py::test_unmodified_generated_structuring - Assert...
FAILED tests/test_gen_dict.py::test_renaming - AssertionError: assert HypAttr...
FAILED tests/test_structure_attrs.py::test_structure_simple_from_dict_default
===== 15 failed, 562 passed, 15 xfailed, 2 warnings in 1278.11s (0:21:18) ======
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_cattr/build; python3.12 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson'
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13
make: *** [debian/rules:9: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-18T01:58:55Z
Finished
--------
+------------------------------------------------------------------------------+
| Cleanup |
+------------------------------------------------------------------------------+
Purging /<<BUILDDIR>>
Not cleaning session: cloned chroot in use
E: Build failure (dpkg-buildpackage died)
+------------------------------------------------------------------------------+
| Summary |
+------------------------------------------------------------------------------+
Build Architecture: arm64
Build Type: binary
Build-Space: 13108
Build-Time: 2652
Distribution: sid
Fail-Stage: build
Host Architecture: arm64
Install-Time: 43
Job: /tmp/debusine-fetch-exec-upload-4x7f4skv/python-cattrs_23.2.3-1.dsc
Machine Architecture: arm64
Package: python-cattrs
Package-Time: 2731
Source-Version: 23.2.3-1
Space: 13108
Status: attempted
Version: 23.2.3-1
--------------------------------------------------------------------------------
Finished at 2024-11-18T01:58:55Z
Build needed 00:45:31, 13108k disk space