0s autopkgtest [23:46:08]: starting date and time: 2026-01-23 23:46:08+0000 0s autopkgtest [23:46:08]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [23:46:08]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.k9s3dv49/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:libsbml,src:apbs,src:binutils,src:bornagain,src:ccls,src:cp2k,src:createrepo-c,src:gcc-11,src:gcc-12,src:gcc-13,src:gcc-14,src:gcc-15,src:gcc-snapshot,src:gdm3,src:hkl,src:hmmer,src:ktimetracker,src:libixion,src:liborcus,src:libpeas,src:libpeas2,src:libreoffice,src:libsndfile,src:libzstd,src:link-grammar,src:mosquitto,src:orthanc-python,src:psychopy,src:pyside2,src:python3-defaults,src:rumur,src:systemd,src:vim --apt-upgrade python-cobra --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=libsbml/5.20.5+dfsg-1build1 apbs/3.4.1-7build1 binutils/2.45.50.20260119-1ubuntu1 bornagain/23.0-5build1 ccls/0.20250815-0ubuntu1 cp2k/2025.2-3 createrepo-c/1.2.1-2build1 gcc-11/11.5.0-8ubuntu1 gcc-12/12.5.0-7ubuntu1 gcc-13/13.4.0-5ubuntu1 gcc-14/14.3.0-11ubuntu1 gcc-15/15.2.0-12ubuntu1 gcc-snapshot/1:20260121-1ubuntu1 gdm3/50~alpha.1-0ubuntu1 hkl/5.1.4-1 hmmer/3.4+dfsg-3 ktimetracker/4:6.0.0-1build1 libixion/0.20.0-6build1 liborcus/0.21.0-2build1 libpeas/1.36.0-8build1 libpeas2/2.2.0-2build1 libreoffice/4:25.8.4~rc2-0ubuntu2 libsndfile/1.2.2-4 libzstd/1.5.7+dfsg-3 link-grammar/5.13.0+dfsg-1build1 mosquitto/2.0.22-5 orthanc-python/7.0+ds-1build1 psychopy/2023.2.4+dfsg-4 pyside2/5.15.18-1 python3-defaults/3.14.2-1 rumur/2025.08.31-1 systemd/259-1ubuntu3 vim/2:9.1.1882-1ubuntu2' -- lxd -r lxd-armhf-10.145.243.176 lxd-armhf-10.145.243.176:autopkgtest/ubuntu/resolute/armhf 20s autopkgtest [23:46:28]: testbed dpkg architecture: armhf 22s autopkgtest [23:46:30]: testbed apt version: 3.1.13 25s autopkgtest [23:46:33]: @@@@@@@@@@@@@@@@@@@@ test bed setup 27s autopkgtest [23:46:35]: testbed release detected to be: None 34s autopkgtest [23:46:42]: updating testbed package index (apt update) 36s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 36s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 36s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [124 kB] 37s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [124 kB] 37s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1021 kB] 37s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [97.3 kB] 37s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 37s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 37s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [109 kB] 37s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [827 kB] 37s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [8712 B] 37s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1399 kB] 37s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.4 MB] 37s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [310 kB] 37s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1371 kB] 38s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.3 MB] 38s Get:17 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [175 kB] 41s Fetched 42.5 MB in 5s (8275 kB/s) 42s Reading package lists... 48s autopkgtest [23:46:56]: upgrading testbed (apt dist-upgrade and autopurge) 50s Reading package lists... 50s Building dependency tree... 50s Reading state information... 50s Calculating upgrade... 51s The following packages were automatically installed and are no longer required: 51s libpython3.13-minimal libpython3.13-stdlib libsframe2 python3.13 51s python3.13-minimal 51s Use 'apt autoremove' to remove them. 51s The following NEW packages will be installed: 51s libpython3.14-minimal libpython3.14-stdlib libsframe3 python3.14 51s python3.14-minimal 51s The following packages will be upgraded: 51s binutils binutils-arm-linux-gnueabihf binutils-common dhcpcd-base 51s gcc-15-base libatomic1 libbinutils libctf-nobfd0 libctf0 libgcc-s1 51s libnss-systemd libpam-systemd libplymouth5 libpython3-stdlib libstdc++6 51s libsystemd-shared libsystemd0 libtasn1-6 libudev1 libzstd1 plymouth 51s plymouth-theme-ubuntu-text python3 python3-gdbm python3-jaraco.context 51s python3-minimal systemd systemd-cryptsetup systemd-resolved systemd-sysv 51s systemd-userdbd udev vim-common vim-tiny xxd zstd 51s 36 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 51s Need to get 20.4 MB of archives. 51s After this operation, 22.7 MB of additional disk space will be used. 51s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-minimal armhf 3.14.2-1 [905 kB] 51s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-minimal armhf 3.14.2-1 [2155 kB] 52s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3-minimal armhf 3.14.2-1 [28.2 kB] 52s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3 armhf 3.14.2-1 [22.9 kB] 52s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libzstd1 armhf 1.5.7+dfsg-3 [275 kB] 52s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-stdlib armhf 3.14.2-1 [2270 kB] 52s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14 armhf 3.14.2-1 [816 kB] 52s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libpython3-stdlib armhf 3.14.2-1 [10.9 kB] 52s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf systemd-userdbd armhf 259-1ubuntu3 [52.0 kB] 52s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libnss-systemd armhf 259-1ubuntu3 [277 kB] 52s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libsystemd0 armhf 259-1ubuntu3 [517 kB] 52s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf systemd-sysv armhf 259-1ubuntu3 [9246 B] 52s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf systemd-resolved armhf 259-1ubuntu3 [292 kB] 52s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libpam-systemd armhf 259-1ubuntu3 [252 kB] 52s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libsystemd-shared armhf 259-1ubuntu3 [2430 kB] 52s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf systemd armhf 259-1ubuntu3 [3156 kB] 52s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf systemd-cryptsetup armhf 259-1ubuntu3 [126 kB] 52s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf udev armhf 259-1ubuntu3 [1492 kB] 52s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libudev1 armhf 259-1ubuntu3 [204 kB] 52s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf gcc-15-base armhf 15.2.0-12ubuntu1 [59.6 kB] 52s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libstdc++6 armhf 15.2.0-12ubuntu1 [731 kB] 52s Get:22 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libatomic1 armhf 15.2.0-12ubuntu1 [7824 B] 52s Get:23 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgcc-s1 armhf 15.2.0-12ubuntu1 [40.5 kB] 52s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf dhcpcd-base armhf 1:10.3.0-7 [194 kB] 52s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libtasn1-6 armhf 4.21.0-2 [38.5 kB] 52s Get:26 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf vim-tiny armhf 2:9.1.1882-1ubuntu2 [727 kB] 52s Get:27 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf vim-common all 2:9.1.1882-1ubuntu2 [402 kB] 52s Get:28 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf xxd armhf 2:9.1.1882-1ubuntu2 [70.2 kB] 52s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf libplymouth5 armhf 24.004.60+git20250831.4a3c171d-0ubuntu5 [147 kB] 52s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf plymouth-theme-ubuntu-text armhf 24.004.60+git20250831.4a3c171d-0ubuntu5 [9996 B] 52s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf plymouth armhf 24.004.60+git20250831.4a3c171d-0ubuntu5 [146 kB] 52s Get:32 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3-gdbm armhf 3.14.2-1 [11.1 kB] 52s Get:33 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libctf0 armhf 2.45.50.20260119-1ubuntu1 [75.7 kB] 52s Get:34 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libctf-nobfd0 armhf 2.45.50.20260119-1ubuntu1 [78.3 kB] 52s Get:35 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils-arm-linux-gnueabihf armhf 2.45.50.20260119-1ubuntu1 [1034 kB] 52s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libbinutils armhf 2.45.50.20260119-1ubuntu1 [404 kB] 52s Get:37 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils armhf 2.45.50.20260119-1ubuntu1 [3264 B] 52s Get:38 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils-common armhf 2.45.50.20260119-1ubuntu1 [222 kB] 52s Get:39 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libsframe3 armhf 2.45.50.20260119-1ubuntu1 [16.4 kB] 52s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jaraco.context all 6.0.1-2 [8198 B] 52s Get:41 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf zstd armhf 1.5.7+dfsg-3 [728 kB] 53s Fetched 20.4 MB in 2s (12.3 MB/s) 53s Selecting previously unselected package libpython3.14-minimal:armhf. 53s (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 ... 66485 files and directories currently installed.) 53s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_armhf.deb ... 53s Unpacking libpython3.14-minimal:armhf (3.14.2-1) ... 53s Selecting previously unselected package python3.14-minimal. 53s Preparing to unpack .../python3.14-minimal_3.14.2-1_armhf.deb ... 53s Unpacking python3.14-minimal (3.14.2-1) ... 54s Setting up libpython3.14-minimal:armhf (3.14.2-1) ... 54s Setting up python3.14-minimal (3.14.2-1) ... 55s (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 ... 66827 files and directories currently installed.) 55s Preparing to unpack .../python3-minimal_3.14.2-1_armhf.deb ... 55s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 55s Setting up python3-minimal (3.14.2-1) ... 55s (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 ... 66827 files and directories currently installed.) 55s Preparing to unpack .../python3_3.14.2-1_armhf.deb ... 56s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 56s Preparing to unpack .../libzstd1_1.5.7+dfsg-3_armhf.deb ... 56s Unpacking libzstd1:armhf (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 56s Setting up libzstd1:armhf (1.5.7+dfsg-3) ... 56s Selecting previously unselected package libpython3.14-stdlib:armhf. 56s (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 ... 66828 files and directories currently installed.) 56s Preparing to unpack .../0-libpython3.14-stdlib_3.14.2-1_armhf.deb ... 56s Unpacking libpython3.14-stdlib:armhf (3.14.2-1) ... 56s Selecting previously unselected package python3.14. 56s Preparing to unpack .../1-python3.14_3.14.2-1_armhf.deb ... 56s Unpacking python3.14 (3.14.2-1) ... 56s Preparing to unpack .../2-libpython3-stdlib_3.14.2-1_armhf.deb ... 56s Unpacking libpython3-stdlib:armhf (3.14.2-1) over (3.13.9-3) ... 56s Preparing to unpack .../3-systemd-userdbd_259-1ubuntu3_armhf.deb ... 56s Unpacking systemd-userdbd (259-1ubuntu3) over (259-1ubuntu2) ... 56s Preparing to unpack .../4-libnss-systemd_259-1ubuntu3_armhf.deb ... 56s Unpacking libnss-systemd:armhf (259-1ubuntu3) over (259-1ubuntu2) ... 56s Preparing to unpack .../5-libsystemd0_259-1ubuntu3_armhf.deb ... 56s Unpacking libsystemd0:armhf (259-1ubuntu3) over (259-1ubuntu2) ... 56s Setting up libsystemd0:armhf (259-1ubuntu3) ... 56s (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 ... 67259 files and directories currently installed.) 56s Preparing to unpack .../systemd-sysv_259-1ubuntu3_armhf.deb ... 56s Unpacking systemd-sysv (259-1ubuntu3) over (259-1ubuntu2) ... 56s Preparing to unpack .../systemd-resolved_259-1ubuntu3_armhf.deb ... 56s Unpacking systemd-resolved (259-1ubuntu3) over (259-1ubuntu2) ... 56s Preparing to unpack .../libpam-systemd_259-1ubuntu3_armhf.deb ... 56s Unpacking libpam-systemd:armhf (259-1ubuntu3) over (259-1ubuntu2) ... 56s Preparing to unpack .../libsystemd-shared_259-1ubuntu3_armhf.deb ... 56s Unpacking libsystemd-shared:armhf (259-1ubuntu3) over (259-1ubuntu2) ... 57s Setting up libsystemd-shared:armhf (259-1ubuntu3) ... 57s (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 ... 67259 files and directories currently installed.) 57s Preparing to unpack .../systemd_259-1ubuntu3_armhf.deb ... 57s Unpacking systemd (259-1ubuntu3) over (259-1ubuntu2) ... 57s Preparing to unpack .../systemd-cryptsetup_259-1ubuntu3_armhf.deb ... 57s Unpacking systemd-cryptsetup (259-1ubuntu3) over (259-1ubuntu2) ... 57s Preparing to unpack .../udev_259-1ubuntu3_armhf.deb ... 57s Unpacking udev (259-1ubuntu3) over (259-1ubuntu2) ... 57s Preparing to unpack .../libudev1_259-1ubuntu3_armhf.deb ... 57s Unpacking libudev1:armhf (259-1ubuntu3) over (259-1ubuntu2) ... 57s Setting up libudev1:armhf (259-1ubuntu3) ... 57s (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 ... 67259 files and directories currently installed.) 58s Preparing to unpack .../gcc-15-base_15.2.0-12ubuntu1_armhf.deb ... 58s Unpacking gcc-15-base:armhf (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 58s Setting up gcc-15-base:armhf (15.2.0-12ubuntu1) ... 58s (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 ... 67259 files and directories currently installed.) 58s Preparing to unpack .../libstdc++6_15.2.0-12ubuntu1_armhf.deb ... 58s Unpacking libstdc++6:armhf (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 58s Setting up libstdc++6:armhf (15.2.0-12ubuntu1) ... 58s (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 ... 67259 files and directories currently installed.) 58s Preparing to unpack .../libatomic1_15.2.0-12ubuntu1_armhf.deb ... 58s Unpacking libatomic1:armhf (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 58s Preparing to unpack .../libgcc-s1_15.2.0-12ubuntu1_armhf.deb ... 58s Unpacking libgcc-s1:armhf (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 58s Setting up libgcc-s1:armhf (15.2.0-12ubuntu1) ... 58s (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 ... 67259 files and directories currently installed.) 58s Preparing to unpack .../00-dhcpcd-base_1%3a10.3.0-7_armhf.deb ... 58s Unpacking dhcpcd-base (1:10.3.0-7) over (1:10.3.0-3) ... 58s Preparing to unpack .../01-libtasn1-6_4.21.0-2_armhf.deb ... 58s Unpacking libtasn1-6:armhf (4.21.0-2) over (4.20.0-2ubuntu1) ... 58s Preparing to unpack .../02-vim-tiny_2%3a9.1.1882-1ubuntu2_armhf.deb ... 58s Unpacking vim-tiny (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 58s Preparing to unpack .../03-vim-common_2%3a9.1.1882-1ubuntu2_all.deb ... 58s Unpacking vim-common (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 58s Preparing to unpack .../04-xxd_2%3a9.1.1882-1ubuntu2_armhf.deb ... 58s Unpacking xxd (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 58s Preparing to unpack .../05-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu5_armhf.deb ... 58s Unpacking libplymouth5:armhf (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 58s Preparing to unpack .../06-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu5_armhf.deb ... 58s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 59s Preparing to unpack .../07-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu5_armhf.deb ... 59s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 59s Preparing to unpack .../08-python3-gdbm_3.14.2-1_armhf.deb ... 59s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 59s Preparing to unpack .../09-libctf0_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking libctf0:armhf (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Preparing to unpack .../10-libctf-nobfd0_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking libctf-nobfd0:armhf (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Preparing to unpack .../11-binutils-arm-linux-gnueabihf_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking binutils-arm-linux-gnueabihf (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Preparing to unpack .../12-libbinutils_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking libbinutils:armhf (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Preparing to unpack .../13-binutils_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking binutils (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Preparing to unpack .../14-binutils-common_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking binutils-common:armhf (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 59s Selecting previously unselected package libsframe3:armhf. 59s Preparing to unpack .../15-libsframe3_2.45.50.20260119-1ubuntu1_armhf.deb ... 59s Unpacking libsframe3:armhf (2.45.50.20260119-1ubuntu1) ... 59s Preparing to unpack .../16-python3-jaraco.context_6.0.1-2_all.deb ... 59s Unpacking python3-jaraco.context (6.0.1-2) over (6.0.1-1build1) ... 59s Preparing to unpack .../17-zstd_1.5.7+dfsg-3_armhf.deb ... 59s Unpacking zstd (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 59s Setting up libpython3.14-stdlib:armhf (3.14.2-1) ... 59s Setting up binutils-common:armhf (2.45.50.20260119-1ubuntu1) ... 59s Setting up libsframe3:armhf (2.45.50.20260119-1ubuntu1) ... 59s Setting up libctf-nobfd0:armhf (2.45.50.20260119-1ubuntu1) ... 59s Setting up libnss-systemd:armhf (259-1ubuntu3) ... 59s Setting up systemd (259-1ubuntu3) ... 60s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 60s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 60s Setting up xxd (2:9.1.1882-1ubuntu2) ... 60s Setting up vim-common (2:9.1.1882-1ubuntu2) ... 60s Setting up systemd-cryptsetup (259-1ubuntu3) ... 60s Setting up libatomic1:armhf (15.2.0-12ubuntu1) ... 60s Setting up udev (259-1ubuntu3) ... 61s Setting up dhcpcd-base (1:10.3.0-7) ... 61s Setting up libplymouth5:armhf (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 61s Setting up libtasn1-6:armhf (4.21.0-2) ... 61s Setting up python3.14 (3.14.2-1) ... 63s Setting up libbinutils:armhf (2.45.50.20260119-1ubuntu1) ... 63s Setting up zstd (1.5.7+dfsg-3) ... 63s Setting up libpython3-stdlib:armhf (3.14.2-1) ... 63s Setting up systemd-resolved (259-1ubuntu3) ... 64s Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 148. 64s Setting up libctf0:armhf (2.45.50.20260119-1ubuntu1) ... 64s Setting up systemd-userdbd (259-1ubuntu3) ... 64s Setting up systemd-sysv (259-1ubuntu3) ... 64s Setting up python3-gdbm (3.14.2-1) ... 64s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 64s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 64s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 65s Setting up python3 (3.14.2-1) ... 65s Setting up vim-tiny (2:9.1.1882-1ubuntu2) ... 65s Setting up libpam-systemd:armhf (259-1ubuntu3) ... 65s Setting up binutils-arm-linux-gnueabihf (2.45.50.20260119-1ubuntu1) ... 65s Setting up python3-jaraco.context (6.0.1-2) ... 65s Setting up binutils (2.45.50.20260119-1ubuntu1) ... 65s Processing triggers for dbus (1.16.2-2ubuntu2) ... 65s Processing triggers for shared-mime-info (2.4-5build2) ... 66s Processing triggers for procps (2:4.0.4-9ubuntu1) ... 66s Processing triggers for initramfs-tools (0.150ubuntu7) ... 66s Processing triggers for libc-bin (2.42-2ubuntu4) ... 66s Processing triggers for man-db (2.13.1-1) ... 68s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 68s Processing triggers for initramfs-tools (0.150ubuntu7) ... 70s Reading package lists... 70s Building dependency tree... 70s Reading state information... 71s Solving dependencies... 71s The following packages will be REMOVED: 71s libpython3.13-minimal* libpython3.13-stdlib* libsframe2* python3.13* 71s python3.13-minimal* 72s 0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded. 72s After this operation, 21.4 MB disk space will be freed. 72s (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 ... 67256 files and directories currently installed.) 72s Removing python3.13 (3.13.11-1) ... 72s Removing libpython3.13-stdlib:armhf (3.13.11-1) ... 72s Removing python3.13-minimal (3.13.11-1) ... 73s Removing libpython3.13-minimal:armhf (3.13.11-1) ... 73s Removing libsframe2:armhf (2.45.50.20251209-1ubuntu1) ... 73s Processing triggers for systemd (259-1ubuntu3) ... 73s Processing triggers for man-db (2.13.1-1) ... 74s Processing triggers for libc-bin (2.42-2ubuntu4) ... 74s (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 ... 66512 files and directories currently installed.) 74s Purging configuration files for libpython3.13-minimal:armhf (3.13.11-1) ... 74s Purging configuration files for python3.13-minimal (3.13.11-1) ... 76s autopkgtest [23:47:24]: rebooting testbed after setup commands that affected boot 115s autopkgtest [23:48:03]: testbed running kernel: Linux 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:00:09 UTC 2 138s autopkgtest [23:48:26]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cobra 152s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (dsc) [3080 B] 152s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (tar) [3651 kB] 152s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (diff) [11.1 kB] 152s gpgv: Signature made Wed Jul 2 22:43:59 2025 UTC 152s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 152s gpgv: issuer "tchet@debian.org" 152s gpgv: Can't check signature: No public key 152s dpkg-source: warning: cannot verify inline signature for ./python-cobra_0.29.1-3.dsc: no acceptable signature found 152s autopkgtest [23:48:40]: testing package python-cobra version 0.29.1-3 154s autopkgtest [23:48:42]: build not needed 157s autopkgtest [23:48:45]: test run-unit-test: preparing testbed 158s Reading package lists... 159s Building dependency tree... 159s Reading state information... 159s Solving dependencies... 160s The following NEW packages will be installed: 160s diffstat gettext libamd3 libblas3 libcolamd3 libgfortran5 libglpk40 libgomp1 160s liblapack3 libltdl7 libpython3.14 libqhull-r8.0 libsuitesparseconfig7 160s python-cobra-data python3-annotated-types python3-anyio python3-click 160s python3-cobra python3-cpuinfo python3-decorator python3-depinfo 160s python3-diskcache python3-dnspython python3-email-validator python3-h11 160s python3-httpcore python3-httpx python3-iniconfig python3-mpmath 160s python3-numpy python3-numpy-dev python3-optlang python3-pandas 160s python3-pandas-lib python3-platformdirs python3-pluggy python3-pydantic 160s python3-pydantic-core python3-pytest python3-pytest-benchmark 160s python3-pytest-mock python3-pytz python3-ruamel.yaml 160s python3-ruamel.yaml.clib python3-sbml5 python3-scipy python3-sniffio 160s python3-swiglpk python3-sympy python3-tabulate python3-typing-inspection 160s quilt 160s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 160s Need to get 60.4 MB of archives. 160s After this operation, 288 MB of additional disk space will be used. 160s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf python3-numpy-dev armhf 1:2.3.5+ds-3 [141 kB] 160s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libblas3 armhf 3.12.1-7ubuntu1 [133 kB] 160s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgfortran5 armhf 15.2.0-12ubuntu1 [334 kB] 160s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf liblapack3 armhf 3.12.1-7ubuntu1 [2090 kB] 160s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf python3-numpy armhf 1:2.3.5+ds-3 [4729 kB] 161s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf diffstat armhf 1.68-1 [28.5 kB] 161s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgomp1 armhf 15.2.0-12ubuntu1 [129 kB] 161s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.2-1 [1059 kB] 161s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libsuitesparseconfig7 armhf 1:7.12.1+dfsg-1 [21.4 kB] 161s Get:10 http://ftpmaster.internal/ubuntu resolute/universe armhf libamd3 armhf 1:7.12.1+dfsg-1 [37.5 kB] 161s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libcolamd3 armhf 1:7.12.1+dfsg-1 [28.2 kB] 161s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libltdl7 armhf 2.5.4-9 [40.4 kB] 161s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libglpk40 armhf 5.0-2 [325 kB] 161s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14 armhf 3.14.2-1 [2213 kB] 161s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libqhull-r8.0 armhf 2020.2-8 [175 kB] 161s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf python-cobra-data all 0.29.1-3 [1611 kB] 161s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-annotated-types all 0.7.0-1 [19.4 kB] 161s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-sniffio all 1.3.1-1 [7262 B] 161s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-anyio all 4.11.0-3 [72.6 kB] 161s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 161s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-depinfo armhf 2.2.0-4 [11.2 kB] 161s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-diskcache all 5.6.3-1 [35.1 kB] 161s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-h11 all 0.14.0-1.1 [51.6 kB] 161s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-httpcore all 1.0.9-1 [38.9 kB] 161s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-httpx all 0.28.1-1 [59.4 kB] 161s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-swiglpk armhf 5.0.10-2build3 [96.4 kB] 161s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-mpmath all 1.3.0-2 [423 kB] 161s Get:28 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-sympy all 1.14.0-2 [4306 kB] 161s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-optlang all 1.8.3-1 [5368 kB] 161s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytz all 2025.2-5 [32.4 kB] 161s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pandas-lib armhf 2.3.3+dfsg-3 [7022 kB] 162s Get:32 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pandas all 2.3.3+dfsg-3 [2948 kB] 162s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf python3-platformdirs all 4.5.1-1 [17.1 kB] 162s Get:34 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pydantic-core armhf 2.41.5-2 [2274 kB] 162s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-typing-inspection all 0.4.2-1 [13.1 kB] 162s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 162s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-email-validator all 2.2.0-1 [28.5 kB] 162s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pydantic armhf 2.12.5-2 [312 kB] 162s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml.clib armhf 0.2.15+ds-1 [183 kB] 162s Get:40 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 162s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf python3-tabulate all 0.9.0-1build1 [45.4 kB] 162s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-sbml5 armhf 5.20.5+dfsg-1build1 [3390 kB] 162s Get:43 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-cobra armhf 0.29.1-3 [1118 kB] 162s Get:44 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-cpuinfo all 9.0.0+git20221119-3 [21.7 kB] 162s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf python3-decorator all 5.2.1-2 [28.1 kB] 162s Get:46 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniconfig all 2.1.0-2 [6962 B] 162s Get:47 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pluggy all 1.6.0-2 [21.1 kB] 162s Get:48 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest all 9.0.2-2 [277 kB] 162s Get:49 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest-benchmark all 5.2.3-1 [40.0 kB] 162s Get:50 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest-mock all 3.15.1-1 [11.9 kB] 162s Get:51 http://ftpmaster.internal/ubuntu resolute/universe armhf quilt all 0.68-1 [439 kB] 162s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-scipy armhf 1.16.3-3 [18.2 MB] 163s Fetched 60.4 MB in 3s (19.8 MB/s) 163s Selecting previously unselected package python3-numpy-dev:armhf. 163s (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 ... 66512 files and directories currently installed.) 163s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_armhf.deb ... 163s Unpacking python3-numpy-dev:armhf (1:2.3.5+ds-3) ... 163s Selecting previously unselected package libblas3:armhf. 163s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_armhf.deb ... 163s Unpacking libblas3:armhf (3.12.1-7ubuntu1) ... 163s Selecting previously unselected package libgfortran5:armhf. 163s Preparing to unpack .../02-libgfortran5_15.2.0-12ubuntu1_armhf.deb ... 163s Unpacking libgfortran5:armhf (15.2.0-12ubuntu1) ... 163s Selecting previously unselected package liblapack3:armhf. 163s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_armhf.deb ... 163s Unpacking liblapack3:armhf (3.12.1-7ubuntu1) ... 164s Selecting previously unselected package python3-numpy. 164s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_armhf.deb ... 164s Unpacking python3-numpy (1:2.3.5+ds-3) ... 164s Selecting previously unselected package diffstat. 164s Preparing to unpack .../05-diffstat_1.68-1_armhf.deb ... 164s Unpacking diffstat (1.68-1) ... 164s Selecting previously unselected package libgomp1:armhf. 164s Preparing to unpack .../06-libgomp1_15.2.0-12ubuntu1_armhf.deb ... 164s Unpacking libgomp1:armhf (15.2.0-12ubuntu1) ... 164s Selecting previously unselected package gettext. 164s Preparing to unpack .../07-gettext_0.23.2-1_armhf.deb ... 164s Unpacking gettext (0.23.2-1) ... 164s Selecting previously unselected package libsuitesparseconfig7:armhf. 164s Preparing to unpack .../08-libsuitesparseconfig7_1%3a7.12.1+dfsg-1_armhf.deb ... 164s Unpacking libsuitesparseconfig7:armhf (1:7.12.1+dfsg-1) ... 164s Selecting previously unselected package libamd3:armhf. 164s Preparing to unpack .../09-libamd3_1%3a7.12.1+dfsg-1_armhf.deb ... 164s Unpacking libamd3:armhf (1:7.12.1+dfsg-1) ... 164s Selecting previously unselected package libcolamd3:armhf. 164s Preparing to unpack .../10-libcolamd3_1%3a7.12.1+dfsg-1_armhf.deb ... 164s Unpacking libcolamd3:armhf (1:7.12.1+dfsg-1) ... 164s Selecting previously unselected package libltdl7:armhf. 164s Preparing to unpack .../11-libltdl7_2.5.4-9_armhf.deb ... 164s Unpacking libltdl7:armhf (2.5.4-9) ... 164s Selecting previously unselected package libglpk40:armhf. 164s Preparing to unpack .../12-libglpk40_5.0-2_armhf.deb ... 164s Unpacking libglpk40:armhf (5.0-2) ... 164s Selecting previously unselected package libpython3.14:armhf. 164s Preparing to unpack .../13-libpython3.14_3.14.2-1_armhf.deb ... 164s Unpacking libpython3.14:armhf (3.14.2-1) ... 164s Selecting previously unselected package libqhull-r8.0:armhf. 164s Preparing to unpack .../14-libqhull-r8.0_2020.2-8_armhf.deb ... 164s Unpacking libqhull-r8.0:armhf (2020.2-8) ... 164s Selecting previously unselected package python-cobra-data. 164s Preparing to unpack .../15-python-cobra-data_0.29.1-3_all.deb ... 164s Unpacking python-cobra-data (0.29.1-3) ... 165s Selecting previously unselected package python3-annotated-types. 165s Preparing to unpack .../16-python3-annotated-types_0.7.0-1_all.deb ... 165s Unpacking python3-annotated-types (0.7.0-1) ... 165s Selecting previously unselected package python3-sniffio. 165s Preparing to unpack .../17-python3-sniffio_1.3.1-1_all.deb ... 165s Unpacking python3-sniffio (1.3.1-1) ... 165s Selecting previously unselected package python3-anyio. 165s Preparing to unpack .../18-python3-anyio_4.11.0-3_all.deb ... 165s Unpacking python3-anyio (4.11.0-3) ... 165s Selecting previously unselected package python3-click. 165s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 165s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 165s Selecting previously unselected package python3-depinfo. 165s Preparing to unpack .../20-python3-depinfo_2.2.0-4_armhf.deb ... 165s Unpacking python3-depinfo (2.2.0-4) ... 165s Selecting previously unselected package python3-diskcache. 165s Preparing to unpack .../21-python3-diskcache_5.6.3-1_all.deb ... 165s Unpacking python3-diskcache (5.6.3-1) ... 165s Selecting previously unselected package python3-h11. 165s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 165s Unpacking python3-h11 (0.14.0-1.1) ... 165s Selecting previously unselected package python3-httpcore. 165s Preparing to unpack .../23-python3-httpcore_1.0.9-1_all.deb ... 165s Unpacking python3-httpcore (1.0.9-1) ... 165s Selecting previously unselected package python3-httpx. 165s Preparing to unpack .../24-python3-httpx_0.28.1-1_all.deb ... 165s Unpacking python3-httpx (0.28.1-1) ... 165s Selecting previously unselected package python3-swiglpk. 165s Preparing to unpack .../25-python3-swiglpk_5.0.10-2build3_armhf.deb ... 165s Unpacking python3-swiglpk (5.0.10-2build3) ... 165s Selecting previously unselected package python3-mpmath. 165s Preparing to unpack .../26-python3-mpmath_1.3.0-2_all.deb ... 165s Unpacking python3-mpmath (1.3.0-2) ... 165s Selecting previously unselected package python3-sympy. 165s Preparing to unpack .../27-python3-sympy_1.14.0-2_all.deb ... 165s Unpacking python3-sympy (1.14.0-2) ... 166s Selecting previously unselected package python3-optlang. 166s Preparing to unpack .../28-python3-optlang_1.8.3-1_all.deb ... 166s Unpacking python3-optlang (1.8.3-1) ... 166s Selecting previously unselected package python3-pytz. 166s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 166s Unpacking python3-pytz (2025.2-5) ... 166s Selecting previously unselected package python3-pandas-lib:armhf. 166s Preparing to unpack .../30-python3-pandas-lib_2.3.3+dfsg-3_armhf.deb ... 166s Unpacking python3-pandas-lib:armhf (2.3.3+dfsg-3) ... 166s Selecting previously unselected package python3-pandas. 166s Preparing to unpack .../31-python3-pandas_2.3.3+dfsg-3_all.deb ... 166s Unpacking python3-pandas (2.3.3+dfsg-3) ... 167s Selecting previously unselected package python3-platformdirs. 167s Preparing to unpack .../32-python3-platformdirs_4.5.1-1_all.deb ... 167s Unpacking python3-platformdirs (4.5.1-1) ... 167s Selecting previously unselected package python3-pydantic-core. 167s Preparing to unpack .../33-python3-pydantic-core_2.41.5-2_armhf.deb ... 167s Unpacking python3-pydantic-core (2.41.5-2) ... 167s Selecting previously unselected package python3-typing-inspection. 167s Preparing to unpack .../34-python3-typing-inspection_0.4.2-1_all.deb ... 167s Unpacking python3-typing-inspection (0.4.2-1) ... 167s Selecting previously unselected package python3-dnspython. 167s Preparing to unpack .../35-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 167s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 167s Selecting previously unselected package python3-email-validator. 167s Preparing to unpack .../36-python3-email-validator_2.2.0-1_all.deb ... 167s Unpacking python3-email-validator (2.2.0-1) ... 167s Selecting previously unselected package python3-pydantic. 167s Preparing to unpack .../37-python3-pydantic_2.12.5-2_armhf.deb ... 167s Unpacking python3-pydantic (2.12.5-2) ... 167s Selecting previously unselected package python3-ruamel.yaml.clib. 167s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_armhf.deb ... 167s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 167s Selecting previously unselected package python3-ruamel.yaml. 167s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 167s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 167s Selecting previously unselected package python3-tabulate. 167s Preparing to unpack .../40-python3-tabulate_0.9.0-1build1_all.deb ... 167s Unpacking python3-tabulate (0.9.0-1build1) ... 167s Selecting previously unselected package python3-sbml5. 167s Preparing to unpack .../41-python3-sbml5_5.20.5+dfsg-1build1_armhf.deb ... 167s Unpacking python3-sbml5 (5.20.5+dfsg-1build1) ... 167s Selecting previously unselected package python3-cobra. 167s Preparing to unpack .../42-python3-cobra_0.29.1-3_armhf.deb ... 167s Unpacking python3-cobra (0.29.1-3) ... 167s Selecting previously unselected package python3-cpuinfo. 167s Preparing to unpack .../43-python3-cpuinfo_9.0.0+git20221119-3_all.deb ... 167s Unpacking python3-cpuinfo (9.0.0+git20221119-3) ... 167s Selecting previously unselected package python3-decorator. 167s Preparing to unpack .../44-python3-decorator_5.2.1-2_all.deb ... 167s Unpacking python3-decorator (5.2.1-2) ... 167s Selecting previously unselected package python3-iniconfig. 167s Preparing to unpack .../45-python3-iniconfig_2.1.0-2_all.deb ... 167s Unpacking python3-iniconfig (2.1.0-2) ... 167s Selecting previously unselected package python3-pluggy. 167s Preparing to unpack .../46-python3-pluggy_1.6.0-2_all.deb ... 167s Unpacking python3-pluggy (1.6.0-2) ... 167s Selecting previously unselected package python3-pytest. 167s Preparing to unpack .../47-python3-pytest_9.0.2-2_all.deb ... 167s Unpacking python3-pytest (9.0.2-2) ... 168s Selecting previously unselected package python3-pytest-benchmark. 168s Preparing to unpack .../48-python3-pytest-benchmark_5.2.3-1_all.deb ... 168s Unpacking python3-pytest-benchmark (5.2.3-1) ... 168s Selecting previously unselected package python3-pytest-mock. 168s Preparing to unpack .../49-python3-pytest-mock_3.15.1-1_all.deb ... 168s Unpacking python3-pytest-mock (3.15.1-1) ... 168s Selecting previously unselected package quilt. 168s Preparing to unpack .../50-quilt_0.68-1_all.deb ... 168s Unpacking quilt (0.68-1) ... 168s Selecting previously unselected package python3-scipy. 168s Preparing to unpack .../51-python3-scipy_1.16.3-3_armhf.deb ... 168s Unpacking python3-scipy (1.16.3-3) ... 169s Setting up python3-iniconfig (2.1.0-2) ... 169s Setting up python3-sniffio (1.3.1-1) ... 169s Setting up python3-pydantic-core (2.41.5-2) ... 169s Setting up python3-typing-inspection (0.4.2-1) ... 170s Setting up python3-anyio (4.11.0-3) ... 170s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 170s Setting up python3-tabulate (0.9.0-1build1) ... 170s Setting up libqhull-r8.0:armhf (2020.2-8) ... 170s Setting up python3-pytz (2025.2-5) ... 170s Setting up libgomp1:armhf (15.2.0-12ubuntu1) ... 170s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 171s Setting up python3-annotated-types (0.7.0-1) ... 171s Setting up python3-platformdirs (4.5.1-1) ... 171s Setting up python3-decorator (5.2.1-2) ... 171s Setting up libblas3:armhf (3.12.1-7ubuntu1) ... 171s update-alternatives: using /usr/lib/arm-linux-gnueabihf/blas/libblas.so.3 to provide /usr/lib/arm-linux-gnueabihf/libblas.so.3 (libblas.so.3-arm-linux-gnueabihf) in auto mode 171s Setting up diffstat (1.68-1) ... 171s Setting up python3-numpy-dev:armhf (1:2.3.5+ds-3) ... 171s Setting up python3-h11 (0.14.0-1.1) ... 171s Setting up python3-depinfo (2.2.0-4) ... 172s Setting up python3-cpuinfo (9.0.0+git20221119-3) ... 172s Setting up libltdl7:armhf (2.5.4-9) ... 172s Setting up libgfortran5:armhf (15.2.0-12ubuntu1) ... 172s Setting up python3-pluggy (1.6.0-2) ... 172s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 172s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 173s Setting up libpython3.14:armhf (3.14.2-1) ... 173s Setting up libsuitesparseconfig7:armhf (1:7.12.1+dfsg-1) ... 173s Setting up python3-email-validator (2.2.0-1) ... 173s Setting up python3-mpmath (1.3.0-2) ... 174s Setting up python3-diskcache (5.6.3-1) ... 174s Setting up python-cobra-data (0.29.1-3) ... 174s Setting up python3-httpcore (1.0.9-1) ... 174s Setting up python3-sympy (1.14.0-2) ... 181s /usr/lib/python3/dist-packages/sympy/testing/runtests.py:283: SyntaxWarning: 'return' in a 'finally' block 181s return p.returncode 182s Setting up liblapack3:armhf (3.12.1-7ubuntu1) ... 182s update-alternatives: using /usr/lib/arm-linux-gnueabihf/lapack/liblapack.so.3 to provide /usr/lib/arm-linux-gnueabihf/liblapack.so.3 (liblapack.so.3-arm-linux-gnueabihf) in auto mode 182s Setting up gettext (0.23.2-1) ... 182s Setting up libamd3:armhf (1:7.12.1+dfsg-1) ... 182s Setting up libcolamd3:armhf (1:7.12.1+dfsg-1) ... 182s Setting up python3-pytest (9.0.2-2) ... 182s Setting up quilt (0.68-1) ... 182s Setting up python3-sbml5 (5.20.5+dfsg-1build1) ... 183s Setting up python3-httpx (0.28.1-1) ... 183s Setting up libglpk40:armhf (5.0-2) ... 183s Setting up python3-pydantic (2.12.5-2) ... 184s Setting up python3-numpy (1:2.3.5+ds-3) ... 186s Setting up python3-pytest-mock (3.15.1-1) ... 187s Setting up python3-swiglpk (5.0.10-2build3) ... 187s Setting up python3-optlang (1.8.3-1) ... 187s Setting up python3-pytest-benchmark (5.2.3-1) ... 187s Setting up python3-scipy (1.16.3-3) ... 193s Setting up python3-pandas-lib:armhf (2.3.3+dfsg-3) ... 193s Setting up python3-pandas (2.3.3+dfsg-3) ... 199s Setting up python3-cobra (0.29.1-3) ... 199s Processing triggers for libc-bin (2.42-2ubuntu4) ... 199s Processing triggers for man-db (2.13.1-1) ... 200s Processing triggers for install-info (7.2-5) ... 211s autopkgtest [23:49:39]: test run-unit-test: [----------------------- 213s File series fully applied, ends at patch debian/patches/pr1452.patch 213s Running Tests 213s Since python3-sbml5 can only deal with one Python3 version we restrict the test to default Python3 217s ============================= test session starts ============================== 217s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 217s benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000) 217s rootdir: /tmp/autopkgtest.D9GK6D/autopkgtest_tmp 217s plugins: typeguard-4.4.4, anyio-4.11.0, benchmark-5.2.3, mock-3.15.1 217s collected 554 items 217s 217s tests/test_core/test_configuration.py ...... [ 1%] 223s tests/test_core/test_core_reaction.py ..........ss.............F..FFFF.. [ 7%] 223s ...................x....... [ 12%] 223s tests/test_core/test_dictlist.py ...................... [ 16%] 223s tests/test_core/test_formula.py ..... [ 16%] 223s tests/test_core/test_gene.py . [ 17%] 224s tests/test_core/test_gpr.py ......................x..x.................. [ 25%] 232s ........................... [ 29%] 232s tests/test_core/test_group.py .. [ 30%] 233s tests/test_core/test_metabolite.py ...ss.ss. [ 31%] 239s tests/test_core/test_model.py .........................FF.F............. [ 39%] 240s ...........s..s.ss. [ 42%] 240s tests/test_core/test_solution.py .ss [ 43%] 261s tests/test_flux_analysis/test_deletion.py ....s..... [ 45%] 268s tests/test_flux_analysis/test_fastcc.py .... [ 46%] 271s tests/test_flux_analysis/test_geometric.py .. [ 46%] 271s tests/test_flux_analysis/test_moma.py . [ 46%] 275s tests/test_flux_analysis/test_parsimonious.py .. [ 46%] 275s tests/test_flux_analysis/test_reaction.py . [ 47%] 278s tests/test_flux_analysis/test_room.py .... [ 47%] 340s tests/test_flux_analysis/test_variability.py ....... [ 49%] 340s tests/test_flux_analysis/test_deletion.py sss [ 49%] 340s tests/test_flux_analysis/test_moma.py s [ 49%] 468s tests/test_flux_analysis/test_deletion.py ...... [ 50%] 469s tests/test_flux_analysis/test_gapfilling.py F [ 51%] 469s tests/test_flux_analysis/test_helpers.py ... [ 51%] 471s tests/test_flux_analysis/test_loopless.py ..... [ 52%] 487s tests/test_flux_analysis/test_phenotype_phase_plane.py ...... [ 53%] 509s tests/test_flux_analysis/test_variability.py ....... [ 54%] 509s tests/test_io/test_annotation.py .. [ 55%] 509s tests/test_io/test_annotation_format.py .. [ 55%] 512s tests/test_io/test_io_order.py ........................... [ 60%] 513s tests/test_io/test_json.py .... [ 61%] 514s tests/test_io/test_mat.py .......ssss.... [ 63%] 514s tests/test_io/test_notes.py . [ 64%] 514s tests/test_io/test_pickle.py .. [ 64%] 522s tests/test_io/test_sbml.py .ssss............xxxx.x.x..s............. [ 71%] 522s tests/test_io/test_web/test_load.py ..ssss. [ 73%] 523s tests/test_io/test_yaml.py .x [ 73%] 523s tests/test_manipulation/test_annotate.py . [ 73%] 523s tests/test_manipulation/test_delete.py ....... [ 74%] 523s tests/test_manipulation/test_modify.py ... [ 75%] 523s tests/test_manipulation/test_validate.py .. [ 75%] 524s tests/test_medium/test_boundary_types.py ........... [ 77%] 526s tests/test_medium/test_minimal_medium.py .......... [ 79%] 529s tests/test_sampling/test_achr.py ...... [ 80%] 532s tests/test_sampling/test_optgp.py ...... [ 81%] 544s tests/test_sampling/test_sampling.py .......... [ 83%] 546s tests/test_summary/test_metabolite_summary.py FFFFFFFFFFFFFFFFF [ 86%] 553s tests/test_summary/test_model_summary.py FFFFFFFFFFFFFFF [ 89%] 555s tests/test_summary/test_reaction_summary.py FFFFFFFFFFFFFFFFFFFF [ 92%] 555s tests/test_util/test_array.py .. [ 93%] 555s tests/test_util/test_context.py ... [ 93%] 572s tests/test_util/test_process_pool.py ............... [ 96%] 573s tests/test_util/test_solver.py ..............s [ 99%] 573s tests/test_util/test_util.py ...X [100%] 573s 573s =================================== FAILURES =================================== 573s __________________________________ test_copy ___________________________________ 573s 573s model = 573s 573s def test_copy(model: Model) -> None: 573s """Test reaction copying.""" 573s PGI = model.reactions.PGI 573s > copied = PGI.copy() 573s ^^^^^^^^^^ 573s 573s tests/test_core/test_core_reaction.py:393: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________________________ test_add ___________________________________ 573s 573s model = 573s 573s def test_add(model: Model) -> None: 573s """Test reaction addition to model.""" 573s # Not in place addition should work on a copy 573s > new = model.reactions.PGI + model.reactions.EX_h2o_e 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_core/test_core_reaction.py:469: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 573s new_reaction = self.copy() 573s ^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s __________________________________ test_radd ___________________________________ 573s 573s model = 573s 573s def test_radd(model: Model) -> None: 573s """Test __radd__ for a reaction.""" 573s > new = sum([model.reactions.PGI, model.reactions.EX_h2o_e]) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_core/test_core_reaction.py:485: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 573s new_reaction = self.copy() 573s ^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________________________ test_mul ___________________________________ 573s 573s model = 573s 573s def test_mul(model: Model) -> None: 573s """Test scalar multiplication of factors with a reaction.""" 573s > new = model.reactions.PGI * 2 573s ^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_core/test_core_reaction.py:492: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1131: in __mul__ 573s new = self.copy() 573s ^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________________________ test_sub ___________________________________ 573s 573s model = 573s 573s def test_sub(model: Model) -> None: 573s """Test reaction subtraction.""" 573s > new = model.reactions.PGI - model.reactions.EX_h2o_e 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_core/test_core_reaction.py:498: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1050: in __sub__ 573s new = self.copy() 573s ^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________________ test_deepcopy_benchmark ____________________________ 573s 573s model = 573s benchmark = 573s 573s def test_deepcopy_benchmark(model: Model, benchmark: BenchmarkFixture) -> None: 573s """Benchmark deepcopying a model. 573s 573s Parameters 573s ---------- 573s model: cobra.Model 573s benchmark: BenchmarkFixture 573s """ 573s > benchmark(deepcopy, model) 573s 573s tests/test_core/test_model.py:613: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:184: in __call__ 573s return self._raw(function_to_benchmark, *args, **kwargs) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:216: in _raw 573s duration, iterations, loops_range = self._calibrate_timer(runner) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:370: in _calibrate_timer 573s duration = runner(loops_range) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:138: in runner 573s function_to_benchmark(*args, **kwargs) 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:240: in _reconstruct 573s state = deepcopy(state, memo) 573s ^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:131: in deepcopy 573s y = copier(x, memo) 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 573s y[deepcopy(key, memo)] = deepcopy(value, memo) 573s ^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:257: in _reconstruct 573s item = deepcopy(item, memo) 573s ^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ________________________________ test_deepcopy _________________________________ 573s 573s model = 573s 573s def test_deepcopy(model: Model) -> None: 573s """Test deepcopying works, and maintains reference structures. 573s 573s Parameters 573s ---------- 573s model: cobra.Model 573s """ 573s # Reference structures are maintained when deepcopying 573s > model_copy = deepcopy(model) 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_core/test_model.py:624: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:240: in _reconstruct 573s state = deepcopy(state, memo) 573s ^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:131: in deepcopy 573s y = copier(x, memo) 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 573s y[deepcopy(key, memo)] = deepcopy(value, memo) 573s ^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:257: in _reconstruct 573s item = deepcopy(item, memo) 573s ^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________________________ test_merge_models _______________________________ 573s 573s model = 573s tiny_toy_model = 573s 573s def test_merge_models(model: Model, tiny_toy_model: Model) -> None: 573s """Test merging models. 573s 573s Parameters 573s ---------- 573s model: cobra.Model 573s tiny_toy_model: cobra.Model 573s """ 573s with model, tiny_toy_model: 573s # Add some cons/vars to tiny_toy_model for testing merging 573s tiny_toy_model.add_reactions([Reaction("EX_glc__D_e")]) 573s variable = tiny_toy_model.problem.Variable("foo") 573s constraint = tiny_toy_model.problem.Constraint( 573s variable, ub=0, lb=0, name="constraint" 573s ) 573s tiny_toy_model.add_cons_vars([variable, constraint]) 573s 573s > merged = model.merge( 573s tiny_toy_model, inplace=False, objective="sum", prefix_existing="tiny_" 573s ) 573s 573s tests/test_core/test_model.py:679: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1454: in merge 573s new_reactions = deepcopy(right.reactions) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:257: in _reconstruct 573s item = deepcopy(item, memo) 573s ^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________________________ test_gapfilling ________________________________ 573s 573s salmonella = 573s 573s def test_gapfilling(salmonella: Model) -> None: 573s """Test Gapfilling.""" 573s m = Model() 573s m.add_metabolites([Metabolite(m_id) for m_id in ["a", "b", "c"]]) 573s exa = Reaction("EX_a") 573s exa.add_metabolites({m.metabolites.a: 1}) 573s b2c = Reaction("b2c") 573s b2c.add_metabolites({m.metabolites.b: -1, m.metabolites.c: 1}) 573s dmc = Reaction("DM_c") 573s dmc.add_metabolites({m.metabolites.c: -1}) 573s m.add_reactions([exa, b2c, dmc]) 573s m.objective = "DM_c" 573s 573s universal = Model() 573s a2b = Reaction("a2b") 573s a2d = Reaction("a2d") 573s universal.add_reactions([a2b, a2d]) 573s a2b.build_reaction_from_string("a --> b", verbose=False) 573s a2d.build_reaction_from_string("a --> d", verbose=False) 573s 573s # # GrowMatch 573s # result = gapfilling.growMatch(m, universal)[0] 573s result = gapfill(m, universal)[0] 573s assert len(result) == 1 573s assert result[0].id == "a2b" 573s 573s # # SMILEY 573s # result = gapfilling.SMILEY(m, "b", universal)[0] 573s with m: 573s m.objective = m.add_boundary(m.metabolites.b, type="demand") 573s result = gapfill(m, universal)[0] 573s assert len(result) == 1 573s assert result[0].id == "a2b" 573s 573s # # 2 rounds of GrowMatch with exchange reactions 573s # result = gapfilling.growMatch(m, None, ex_rxns=True, iterations=2) 573s result = gapfill(m, None, exchange_reactions=True, iterations=2) 573s assert len(result) == 2 573s assert len(result[0]) == 1 573s assert len(result[1]) == 1 573s assert {i[0].id for i in result} == {"EX_b", "EX_c"} 573s 573s # # Gapfilling solution adds metabolites not present in original model 573s # test for when demand = T 573s # a demand reaction must be added to clear new metabolite 573s universal_noDM = Model() 573s a2b = Reaction("a2b") 573s universal_noDM.add_reactions([a2b]) 573s a2b.build_reaction_from_string("a --> b + d", verbose=False) 573s result = gapfill( 573s m, universal_noDM, exchange_reactions=False, demand_reactions=True 573s )[0] 573s # add reaction a2b and demand reaction to clear met d 573s assert len(result) == 2 573s assert "a2b" in [x.id for x in result] 573s 573s # test for when demand = False 573s # test for when metabolites are added to the model and 573s # must be cleared by other reactions in universal model 573s # (i.e. not necessarily a demand reaction) 573s universal_withDM = universal_noDM.copy() 573s d_dm = Reaction("d_dm") 573s universal_withDM.add_reactions([d_dm]) 573s d_dm.build_reaction_from_string("d -->", verbose=False) 573s result = gapfill( 573s m, universal_withDM, exchange_reactions=False, demand_reactions=False 573s )[0] 573s assert len(result) == 2 573s assert "a2b" in [x.id for x in result] 573s 573s # somewhat bigger model 573s universal = Model("universal_reactions") 573s with salmonella as model: 573s for i in [i.id for i in model.metabolites.f6p_c.reactions]: 573s reaction = model.reactions.get_by_id(i) 573s > universal.add_reactions([reaction.copy()]) 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_flux_analysis/test_gapfilling.py:82: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_metabolite_summary_interface[optlang-glpk] ________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_metabolite_summary_interface(model, opt_solver): 573s """Test that a summary can be created successfully.""" 573s model.solver = opt_solver 573s metabolite = model.metabolites.get_by_id("q8_c") 573s > MetaboliteSummary( 573s metabolite=metabolite, 573s model=model, 573s ) 573s 573s tests/test_summary/test_metabolite_summary.py:13: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ________________ test_metabolite_summary_to_frame[optlang-glpk] ________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_metabolite_summary_to_frame(model, opt_solver): 573s """Test that the summary's method ``to_frame`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:39: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs0] ____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:56: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs1] ____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:56: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs2] ____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:56: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs3] ____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:56: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs4] ____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'column_width': 20} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:56: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs0] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:66: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs1] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:66: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs2] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:66: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs3] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("atp_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:66: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________ test_q8_producing_summary[optlang-glpk] ____________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_q8_producing_summary(model, opt_solver): 573s """Test that the production summary of q8 is accurate.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("q8_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:73: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ___________________ test_q8_consuming_summary[optlang-glpk] ____________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_q8_consuming_summary(model, opt_solver): 573s """Test that the consumption summary of q8 is accurate.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("q8_c").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:82: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s __________________ test_fdp_production_with_fva[optlang-glpk] __________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_fdp_production_with_fva(model, opt_solver): 573s """Test that the production summary of fdp is within expected bounds.""" 573s model.solver = opt_solver 573s > summary = model.metabolites.get_by_id("fdp_c").summary(fva=0.99) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:100: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s __________ test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] __________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s metabolite_id = 'q8_c' 573s 573s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 573s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 573s """Test that the metabolite summary inside and outside of a context are equal.""" 573s model.solver = opt_solver 573s with model: 573s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:112: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _________ test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] __________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s metabolite_id = 'fdp_c' 573s 573s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 573s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 573s """Test that the metabolite summary inside and outside of a context are equal.""" 573s model.solver = opt_solver 573s with model: 573s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:112: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _________ test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] __________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s metabolite_id = 'atp_c' 573s 573s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 573s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 573s """Test that the metabolite summary inside and outside of a context are equal.""" 573s model.solver = opt_solver 573s with model: 573s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_metabolite_summary.py:112: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 573s return MetaboliteSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 573s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 573s ^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s __________________ test_model_summary_interface[optlang-glpk] __________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_interface(model, opt_solver): 573s """Test that a summary can be created successfully.""" 573s model.solver = opt_solver 573s > ModelSummary( 573s model=model, 573s ) 573s 573s tests/test_summary/test_model_summary.py:12: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s __________________ test_model_summary_to_frame[optlang-glpk] ___________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_to_frame(model, opt_solver): 573s """Test that the summary's method ``to_frame`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:34: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________ test_model_summary_to_string[optlang-glpk-kwargs0] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_model_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:51: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________ test_model_summary_to_string[optlang-glpk-kwargs1] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_model_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:51: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________ test_model_summary_to_string[optlang-glpk-kwargs2] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_model_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:51: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________ test_model_summary_to_string[optlang-glpk-kwargs3] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_model_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:51: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ______________ test_model_summary_to_string[optlang-glpk-kwargs4] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'column_width': 20} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_model_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:51: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_model_summary_to_html[optlang-glpk-kwargs0] _______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_model_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:61: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_model_summary_to_html[optlang-glpk-kwargs1] _______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_model_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:61: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_model_summary_to_html[optlang-glpk-kwargs2] _______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_model_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:61: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_model_summary_to_html[optlang-glpk-kwargs3] _______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_model_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:61: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _________ test_model_summary_to_frame_previous_solution[optlang-glpk] __________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_to_frame_previous_solution(model, opt_solver): 573s """Test that the summary correctly uses an existing solution.""" 573s model.solver = opt_solver 573s solution = pfba(model) 573s rxn = model.reactions.EX_glc__D_e 573s solution.fluxes[rxn.id] = -123 573s > summary = model.summary(solution=solution) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:71: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________________ test_model_summary_flux[optlang-glpk] _____________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_flux(model, opt_solver): 573s """Test that the summary has expected fluxes.""" 573s model.solver = opt_solver 573s > summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:78: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________________ test_model_summary_fva[optlang-glpk] _____________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_fva(model, opt_solver): 573s """Test that the exchange summary is within expected bounds.""" 573s model.solver = opt_solver 573s > summary = model.summary(fva=0.95) 573s ^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:88: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_model_summary_flux_in_context[optlang-glpk] _______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_model_summary_flux_in_context(model, opt_solver): 573s """Test that the model summary inside and outside of a context are equal.""" 573s model.solver = opt_solver 573s copy = model.copy() 573s with model: 573s model.reactions.EX_glc__D_e.bounds = (0, 1000) 573s model.reactions.EX_ac_e.bounds = (-10, 1000) 573s > context_summary = model.summary() 573s ^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_model_summary.py:109: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 573s return ModelSummary(model=self, solution=solution, fva=fva) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 573s self._generate(model, solution, fva) 573s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 573s rxn.copy(): coef for rxn, coef in coefficients.items() 573s ^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ________________ test_reaction_summary_interface[optlang-glpk] _________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_reaction_summary_interface(model, opt_solver): 573s """Test that a summary can be created successfully.""" 573s model.solver = opt_solver 573s reaction = model.reactions.get_by_id("FUM") 573s > ReactionSummary( 573s reaction=reaction, 573s model=model, 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:13: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _________________ test_reaction_summary_to_frame[optlang-glpk] _________________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s 573s def test_reaction_summary_to_frame(model, opt_solver): 573s """Test that the summary's method ``to_frame`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:37: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs0] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_reaction_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:54: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs1] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_reaction_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:54: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs2] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_reaction_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:54: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs3] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_reaction_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:54: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs4] _____________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'column_width': 20} 573s 573s @pytest.mark.parametrize( 573s "kwargs", 573s [ 573s {}, 573s {"names": True}, 573s {"float_format": ".1f"}, 573s {"threshold": 1e-2}, 573s {"column_width": 20}, 573s ], 573s ) 573s def test_reaction_summary_to_string(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_string`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:54: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs0] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_reaction_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:64: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs1] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'names': True} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_reaction_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:64: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs2] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'float_format': '.1f'} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_reaction_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:64: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs3] ______________ 573s 573s model = , opt_solver = 'optlang-glpk' 573s kwargs = {'threshold': 0.01} 573s 573s @pytest.mark.parametrize( 573s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 573s ) 573s def test_reaction_summary_to_html(model, opt_solver, kwargs): 573s """Test that the summary's method ``to_html`` can be called.""" 573s model.solver = opt_solver 573s > summary = model.reactions.get_by_id("FUM").summary() 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s 573s tests/test_summary/test_reaction_summary.py:64: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 573s return ReactionSummary( 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ____________________ test_reaction_summary_flux[ACALD-0.0] _____________________ 573s 573s model = , reaction_id = 'ACALD', expected = 0.0 573s 573s @pytest.mark.parametrize( 573s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 573s ) 573s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 573s """Test that the reported flux in the summary is reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:73: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________________ test_reaction_summary_flux[FUM-5.06] _____________________ 573s 573s model = , reaction_id = 'FUM', expected = 5.06 573s 573s @pytest.mark.parametrize( 573s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 573s ) 573s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 573s """Test that the reported flux in the summary is reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:73: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _____________________ test_reaction_summary_flux[PFK-7.48] _____________________ 573s 573s model = , reaction_id = 'PFK', expected = 7.48 573s 573s @pytest.mark.parametrize( 573s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 573s ) 573s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 573s """Test that the reported flux in the summary is reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:73: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _______________ test_reaction_summary_flux_fva[ACALD--1.27-0.0] ________________ 573s 573s model = , reaction_id = 'ACALD' 573s min_flux = -1.27, max_flux = 0.0 573s 573s @pytest.mark.parametrize( 573s "reaction_id, min_flux, max_flux", 573s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 573s ) 573s def test_reaction_summary_flux_fva( 573s model, reaction_id: str, min_flux: float, max_flux: float 573s ) -> None: 573s """Test that the reported flux ranges in the summary are reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:89: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ________________ test_reaction_summary_flux_fva[FUM-0.79-7.38] _________________ 573s 573s model = , reaction_id = 'FUM', min_flux = 0.79 573s max_flux = 7.38 573s 573s @pytest.mark.parametrize( 573s "reaction_id, min_flux, max_flux", 573s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 573s ) 573s def test_reaction_summary_flux_fva( 573s model, reaction_id: str, min_flux: float, max_flux: float 573s ) -> None: 573s """Test that the reported flux ranges in the summary are reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:89: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s ________________ test_reaction_summary_flux_fva[PFK-2.58-16.38] ________________ 573s 573s model = , reaction_id = 'PFK', min_flux = 2.58 573s max_flux = 16.38 573s 573s @pytest.mark.parametrize( 573s "reaction_id, min_flux, max_flux", 573s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 573s ) 573s def test_reaction_summary_flux_fva( 573s model, reaction_id: str, min_flux: float, max_flux: float 573s ) -> None: 573s """Test that the reported flux ranges in the summary are reasonable.""" 573s > result = ReactionSummary( 573s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 573s ) 573s 573s tests/test_summary/test_reaction_summary.py:89: 573s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 573s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 573s self._reaction = reaction.copy() 573s ^^^^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 573s new_reaction = deepcopy(self) 573s ^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:157: in deepcopy 573s y = _reconstruct(x, memo, *rv) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:234: in _reconstruct 573s y = func(*args) 573s ^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:233: in 573s args = (deepcopy(arg, memo) for arg in args) 573s ^^^^^^^^^^^^^^^^^^^ 573s /usr/lib/python3.14/copy.py:138: in deepcopy 573s y = copier(memo) 573s ^^^^^^^^^^^^ 573s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 573s cop = deepcopy(super(Reaction, self), memo) 573s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 573s E RecursionError: maximum recursion depth exceeded 573s !!! Recursion detected (same locals & position) 573s _________________ test_reaction_summary_flux_in_context[ACALD] _________________ 573s 573s model = , reaction_id = 'ACALD' 573s 573s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 575s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 575s """Test that the reaction summary inside and outside of a context are equal.""" 575s with model: 575s > context_summary = model.reactions.get_by_id(reaction_id).summary() 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s 575s tests/test_summary/test_reaction_summary.py:104: 575s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 575s return ReactionSummary( 575s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 575s self._reaction = reaction.copy() 575s ^^^^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 575s new_reaction = deepcopy(self) 575s ^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:157: in deepcopy 575s y = _reconstruct(x, memo, *rv) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:234: in _reconstruct 575s y = func(*args) 575s ^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:233: in 575s args = (deepcopy(arg, memo) for arg in args) 575s ^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s E RecursionError: maximum recursion depth exceeded 575s !!! Recursion detected (same locals & position) 575s __________________ test_reaction_summary_flux_in_context[FUM] __________________ 575s 575s model = , reaction_id = 'FUM' 575s 575s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 575s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 575s """Test that the reaction summary inside and outside of a context are equal.""" 575s with model: 575s > context_summary = model.reactions.get_by_id(reaction_id).summary() 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s 575s tests/test_summary/test_reaction_summary.py:104: 575s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 575s return ReactionSummary( 575s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 575s self._reaction = reaction.copy() 575s ^^^^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 575s new_reaction = deepcopy(self) 575s ^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:157: in deepcopy 575s y = _reconstruct(x, memo, *rv) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:234: in _reconstruct 575s y = func(*args) 575s ^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:233: in 575s args = (deepcopy(arg, memo) for arg in args) 575s ^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s E RecursionError: maximum recursion depth exceeded 575s !!! Recursion detected (same locals & position) 575s __________________ test_reaction_summary_flux_in_context[PFK] __________________ 575s 575s model = , reaction_id = 'PFK' 575s 575s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 575s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 575s """Test that the reaction summary inside and outside of a context are equal.""" 575s with model: 575s > context_summary = model.reactions.get_by_id(reaction_id).summary() 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s 575s tests/test_summary/test_reaction_summary.py:104: 575s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 575s return ReactionSummary( 575s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 575s self._reaction = reaction.copy() 575s ^^^^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 575s new_reaction = deepcopy(self) 575s ^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:157: in deepcopy 575s y = _reconstruct(x, memo, *rv) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:234: in _reconstruct 575s y = func(*args) 575s ^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:233: in 575s args = (deepcopy(arg, memo) for arg in args) 575s ^^^^^^^^^^^^^^^^^^^ 575s /usr/lib/python3.14/copy.py:138: in deepcopy 575s y = copier(memo) 575s ^^^^^^^^^^^^ 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 575s cop = deepcopy(super(Reaction, self), memo) 575s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 575s E RecursionError: maximum recursion depth exceeded 575s !!! Recursion detected (same locals & position) 575s =============================== warnings summary =============================== 575s :491 575s :491: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute 575s 575s :491 575s :491: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute 575s 575s tests/test_core/test_gpr.py::test_and_gpr[a AND b-2-gpr_genes2-a and b] 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_or_gpr[a OR b-2-gpr_genes2-a or b] 575s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[a OR b-symbolic_gpr2] 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 575s tests/test_core/test_gpr.py::test_gpr_from_symbolic[a OR b-symbolic_gpr5] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_complicated_gpr[(a OR b) AND c] 575s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[(a OR b) AND c-symbolic_gpr6] 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_and_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 575s tests/test_core/test_gpr.py::test_gpr_from_symbolic[(a OR b) AND c-symbolic_gpr9] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(a OR b) AND c'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_gpr_that_needs_two_replacements 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(591001.3.peg.1891 AND 591001.3.peg.1892 AND 591001.3.peg.1893)'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b AND a'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b OR a'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b or c'. 575s warn( 575s 575s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_and_strs] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 575s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 575s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b and c'. 575s warn( 575s 575s tests/test_core/test_model.py::test_reaction_delete 575s tests/test_core/test_model.py::test_reaction_delete 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:879: DeprecationWarning: delete is deprecated. Use reaction.remove_from_model instead 575s warn( 575s 575s tests/test_core/test_model.py::test_group_loss_of_elements 575s /usr/lib/python3/dist-packages/cobra/core/group.py:147: UserWarning: need to pass in a list 575s warn("need to pass in a list") 575s 575s tests/test_core/test_model.py::test_change_objective 575s tests/test_core/test_model.py::test_change_objective 575s tests/test_core/test_model.py::test_change_objective 575s /usr/lib/python3/dist-packages/cobra/core/reaction.py:761: DeprecationWarning: Please use reaction.flux instead. 575s warn("Please use reaction.flux instead.", DeprecationWarning) 575s 575s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 575s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_flux_analysis/test_deletion.py:437: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead 575s assert math.isnan(sol.growth) 575s 575s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 575s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_flux_analysis/test_deletion.py:438: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead 575s assert math.isnan(sol_one.growth) 575s 575s tests/test_flux_analysis/test_gapfilling.py: 980 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 575s return _load(infile) 575s 575s tests/test_flux_analysis/test_gapfilling.py: 4020 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 575s return _load(infile) 575s 575s tests/test_io/test_json.py: 34 warnings 575s tests/test_io/test_mat.py: 34 warnings 575s tests/test_io/test_pickle.py: 34 warnings 575s tests/test_io/test_yaml.py: 34 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/conftest.py:17: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 575s return load(infile) 575s 575s tests/test_io/test_json.py: 11 warnings 575s tests/test_io/test_mat.py: 11 warnings 575s tests/test_io/test_pickle.py: 11 warnings 575s tests/test_io/test_yaml.py: 11 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/conftest.py:17: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 575s return load(infile) 575s 575s tests/test_io/test_json.py: 1 warning 575s tests/test_io/test_mat.py: 3 warnings 575s tests/test_io/test_pickle.py: 1 warning 575s tests/test_io/test_sbml.py: 9 warnings 575s tests/test_io/test_yaml.py: 1 warning 575s /usr/lib/python3/dist-packages/cobra/util/solver.py:554: UserWarning: Solver status is 'infeasible'. 575s warn(f"Solver status is '{status}'.", UserWarning) 575s 575s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 575s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_mat.py:32: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 575s return load(infile) 575s 575s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 575s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 575s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 575s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 575s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 575s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_mat.py:32: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 575s return load(infile) 575s 575s tests/test_io/test_pickle.py: 34 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_pickle.py:24: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 575s pickle_model = load_function(infile) 575s 575s tests/test_io/test_pickle.py: 11 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_pickle.py:24: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 575s pickle_model = load_function(infile) 575s 575s tests/test_io/test_sbml.py: 136 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_sbml.py:268: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 575s reference_model = load(infile) 575s 575s tests/test_io/test_sbml.py: 44 warnings 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_sbml.py:268: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 575s reference_model = load(infile) 575s 575s tests/test_io/test_yaml.py::test_save_yaml_model 575s /tmp/autopkgtest.D9GK6D/autopkgtest_tmp/tests/test_io/test_yaml.py:29: PendingDeprecationWarning: 575s you should no longer specify 'unsafe'. 575s For **dumping only** use yaml=YAML(typ='full') 575s 575s yaml = YAML(typ="unsafe") 575s 575s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 575s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 575s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 575s /usr/lib/python3/dist-packages/cobra/medium/boundary_types.py:74: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` 575s compartment = most[matches[most]][0] 575s 575s tests/test_util/test_process_pool.py::test_with_context 575s /usr/lib/python3/dist-packages/cobra/util/process_pool.py:71: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/usage.html#usage-as-context-manager 575s self._pool.__enter__() 575s 575s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 575s 575s --------------------------------------------------------------------------------------------------------------------------- benchmark: 30 tests ---------------------------------------------------------------------------------------------------------------------------- 575s Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations 575s ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 575s test_subtract_metabolite_benchmark[cplex] 2.9998 (1.0) 75.1996 (2.97) 3.1505 (1.01) 1.2847 (2.21) 3.0799 (1.0) 0.0407 (1.02) 32;310 317,414.2037 (0.99) 4187 1 575s test_subtract_metabolite_benchmark[glpk] 2.9998 (1.0) 28.8403 (1.14) 3.1581 (1.01) 0.7978 (1.37) 3.0799 (1.0) 0.0400 (1.0) 49;300 316,646.1703 (0.99) 4329 1 575s test_subtract_metabolite_benchmark[gurobi] 2.9998 (1.0) 25.2808 (1.0) 3.1316 (1.0) 0.5821 (1.0) 3.0799 (1.0) 0.0400 (1.0) 24;97 319,329.8598 (1.0) 3306 1 575s test_change_objective_benchmark[optlang-glpk] 182.5616 (60.86) 796.9281 (31.52) 215.2025 (68.72) 37.0572 (63.66) 201.9620 (65.57) 39.4797 (985.84) 378;57 4,646.7857 (0.01) 2526 1 575s test_optgp_sample_benchmark 295.5226 (98.51) 749.1671 (29.63) 335.0198 (106.98) 37.8338 (65.00) 333.2440 (108.20) 26.4803 (661.23) 47;34 2,984.8979 (0.01) 1462 1 575s test_achr_sample_benchmark 362.3636 (120.80) 974.8898 (38.56) 424.8259 (135.66) 49.2509 (84.61) 420.6439 (136.58) 44.2604 (>1000.0) 46;10 2,353.9054 (0.01) 491 1 575s test_loopless_benchmark_after 1,347.9730 (449.36) 2,531.6644 (100.14) 1,435.8172 (458.50) 132.4225 (227.50) 1,411.7332 (458.37) 37.4701 (935.66) 11;29 696.4675 (0.00) 345 1 575s test_loopless_benchmark_before 5,351.2519 (>1000.0) 14,976.5071 (592.41) 5,681.6459 (>1000.0) 933.6748 (>1000.0) 5,575.7351 (>1000.0) 181.6815 (>1000.0) 1;1 176.0053 (0.00) 103 1 575s test_minimal_medium_mip_benchmark 8,331.6406 (>1000.0) 18,107.5772 (716.26) 11,651.0251 (>1000.0) 4,342.7430 (>1000.0) 8,632.0238 (>1000.0) 9,048.8289 (>1000.0) 27;0 85.8294 (0.00) 80 1 575s test_minimal_medium_linear_benchmark 8,445.6820 (>1000.0) 9,180.4899 (363.14) 8,634.3624 (>1000.0) 136.2296 (234.04) 8,596.7234 (>1000.0) 130.5211 (>1000.0) 18;6 115.8163 (0.00) 80 1 575s test_copy_benchmark[optlang-glpk] 13,972.7388 (>1000.0) 159,981.7425 (>1000.0) 16,793.6701 (>1000.0) 17,767.4746 (>1000.0) 14,528.4645 (>1000.0) 374.2024 (>1000.0) 1;2 59.5462 (0.00) 67 1 575s test_gpr_equality_benchmark 20,034.3179 (>1000.0) 24,877.4067 (984.05) 20,895.8959 (>1000.0) 683.1651 (>1000.0) 20,796.5253 (>1000.0) 401.2641 (>1000.0) 3;2 47.8563 (0.00) 43 1 575s test_single_reaction_deletion_benchmark[glpk] 27,286.4699 (>1000.0) 35,231.6285 (>1000.0) 28,487.1305 (>1000.0) 1,379.0136 (>1000.0) 28,199.3188 (>1000.0) 724.0472 (>1000.0) 2;2 35.1036 (0.00) 35 1 575s test_fastcc_benchmark[glpk] 62,319.8561 (>1000.0) 65,748.7288 (>1000.0) 63,658.6944 (>1000.0) 868.8713 (>1000.0) 63,442.2861 (>1000.0) 814.3289 (>1000.0) 3;1 15.7088 (0.00) 14 1 575s test_add_metabolite_benchmark[cplex] 75,212.8642 (>1000.0) 92,719.1172 (>1000.0) 77,881.8562 (>1000.0) 5,097.8499 (>1000.0) 75,640.1680 (>1000.0) 460.7243 (>1000.0) 3;3 12.8400 (0.00) 14 1 575s test_add_metabolite_benchmark[gurobi] 75,915.3115 (>1000.0) 85,508.2860 (>1000.0) 77,504.5439 (>1000.0) 2,482.8484 (>1000.0) 76,755.5796 (>1000.0) 1,200.2923 (>1000.0) 1;2 12.9025 (0.00) 14 1 575s test_add_metabolite_benchmark[glpk] 76,445.7565 (>1000.0) 77,640.8482 (>1000.0) 76,917.3812 (>1000.0) 395.8074 (680.00) 76,863.5613 (>1000.0) 458.4454 (>1000.0) 6;0 13.0010 (0.00) 14 1 575s test_gpr_symbolism_benchmark 87,923.1496 (>1000.0) 89,887.8090 (>1000.0) 88,780.5178 (>1000.0) 724.5733 (>1000.0) 88,603.5962 (>1000.0) 1,267.3414 (>1000.0) 5;0 11.2637 (0.00) 11 1 575s test_optgp_init_benchmark 131,874.0509 (>1000.0) 140,933.0992 (>1000.0) 134,036.3348 (>1000.0) 3,338.1670 (>1000.0) 132,404.6561 (>1000.0) 3,075.2802 (>1000.0) 1;1 7.4607 (0.00) 7 1 575s test_achr_init_benchmark 153,467.1020 (>1000.0) 405,627.5310 (>1000.0) 205,518.4253 (>1000.0) 98,614.4630 (>1000.0) 167,022.8150 (>1000.0) 26,808.0216 (>1000.0) 1;1 4.8657 (0.00) 6 1 575s test_single_gene_deletion_linear_moma_benchmark[glpk] 176,388.9017 (>1000.0) 181,851.8760 (>1000.0) 178,967.3612 (>1000.0) 2,063.0952 (>1000.0) 179,219.7707 (>1000.0) 3,031.9504 (>1000.0) 2;0 5.5876 (0.00) 6 1 575s test_single_gene_deletion_linear_room_benchmark[glpk] 255,111.7996 (>1000.0) 268,670.1342 (>1000.0) 262,659.9940 (>1000.0) 5,477.3849 (>1000.0) 262,825.5542 (>1000.0) 8,791.7370 (>1000.0) 2;0 3.8072 (0.00) 5 1 575s test_copy_benchmark_large_model[optlang-glpk] 319,424.2381 (>1000.0) 517,451.7166 (>1000.0) 362,023.1953 (>1000.0) 86,962.9503 (>1000.0) 325,994.1824 (>1000.0) 55,342.4680 (>1000.0) 1;1 2.7623 (0.00) 5 1 575s test_pfba_benchmark[glpk] 321,468.2927 (>1000.0) 443,550.3781 (>1000.0) 369,354.3658 (>1000.0) 49,421.1129 (>1000.0) 363,479.9477 (>1000.0) 74,615.7672 (>1000.0) 1;0 2.7074 (0.00) 5 1 575s test_double_gene_deletion_benchmark 354,043.4455 (>1000.0) 389,149.5112 (>1000.0) 366,426.2634 (>1000.0) 13,958.7573 (>1000.0) 361,951.9230 (>1000.0) 17,806.6054 (>1000.0) 1;0 2.7291 (0.00) 5 1 575s test_geometric_fba_benchmark[glpk] 414,215.6094 (>1000.0) 456,907.5108 (>1000.0) 429,251.5740 (>1000.0) 18,075.8220 (>1000.0) 423,536.7021 (>1000.0) 27,759.4940 (>1000.0) 1;0 2.3296 (0.00) 5 1 575s test_flux_variability_benchmark[glpk] 551,961.3661 (>1000.0) 564,020.0851 (>1000.0) 555,729.9878 (>1000.0) 4,913.0936 (>1000.0) 553,636.2240 (>1000.0) 5,675.8572 (>1000.0) 1;0 1.7994 (0.00) 5 1 575s test_single_gene_deletion_fba_benchmark[glpk] 1,970,496.6741 (>1000.0) 2,722,835.2614 (>1000.0) 2,326,771.9205 (>1000.0) 364,147.6082 (>1000.0) 2,181,941.9218 (>1000.0) 685,717.4991 (>1000.0) 2;0 0.4298 (0.00) 5 1 575s test_flux_variability_loopless_benchmark[glpk] 3,812,913.8201 (>1000.0) 5,197,365.0418 (>1000.0) 4,312,471.3501 (>1000.0) 571,511.8418 (>1000.0) 4,144,412.8342 (>1000.0) 845,930.4043 (>1000.0) 1;0 0.2319 (0.00) 5 1 575s test_double_reaction_deletion_benchmark 15,489,702.2424 (>1000.0) 17,381,708.2243 (>1000.0) 16,381,385.0733 (>1000.0) 810,809.0370 (>1000.0) 16,669,768.0103 (>1000.0) 1,342,433.6691 (>1000.0) 2;0 0.0610 (0.00) 5 1 575s ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 575s 575s Legend: 575s Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. 575s OPS: Operations Per Second, computed as 1 / Mean 575s =========================== short test summary info ============================ 575s FAILED tests/test_core/test_core_reaction.py::test_copy - RecursionError: max... 575s FAILED tests/test_core/test_core_reaction.py::test_add - RecursionError: maxi... 575s FAILED tests/test_core/test_core_reaction.py::test_radd - RecursionError: max... 575s FAILED tests/test_core/test_core_reaction.py::test_mul - RecursionError: maxi... 575s FAILED tests/test_core/test_core_reaction.py::test_sub - RecursionError: maxi... 575s FAILED tests/test_core/test_model.py::test_deepcopy_benchmark - RecursionErro... 575s FAILED tests/test_core/test_model.py::test_deepcopy - RecursionError: maximum... 575s FAILED tests/test_core/test_model.py::test_merge_models - RecursionError: max... 575s FAILED tests/test_flux_analysis/test_gapfilling.py::test_gapfilling - Recursi... 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_interface[optlang-glpk] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_frame[optlang-glpk] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs4] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_producing_summary[optlang-glpk] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_consuming_summary[optlang-glpk] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_fdp_production_with_fva[optlang-glpk] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] 575s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_interface[optlang-glpk] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame[optlang-glpk] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs4] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame_previous_solution[optlang-glpk] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux[optlang-glpk] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_fva[optlang-glpk] 575s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux_in_context[optlang-glpk] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_interface[optlang-glpk] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_frame[optlang-glpk] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs4] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs0] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs1] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs2] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs3] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[ACALD-0.0] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[FUM-5.06] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[PFK-7.48] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[ACALD--1.27-0.0] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[FUM-0.79-7.38] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[PFK-2.58-16.38] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[ACALD] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[FUM] 575s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[PFK] 575s = 61 failed, 451 passed, 31 skipped, 10 xfailed, 1 xpassed, 5488 warnings in 357.69s (0:05:57) = 577s autopkgtest [23:55:45]: test run-unit-test: -----------------------] 580s autopkgtest [23:55:48]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 580s run-unit-test FAIL non-zero exit status 1 584s autopkgtest [23:55:52]: @@@@@@@@@@@@@@@@@@@@ summary 584s run-unit-test FAIL non-zero exit status 1