0s autopkgtest [23:47:07]: starting date and time: 2026-01-23 23:47:07+0000 0s autopkgtest [23:47:07]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [23:47:07]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.w4eac4br/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --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' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-arm64-2.secgroup --name adt-resolute-arm64-python-cobra-20260123-234707-juju-7f2275-prod-proposed-migration-environment-2-1b5237bf-89c6-4b7f-a579-6de6e61c8678 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-arm64-python-cobra-20260123-234707-juju-7f2275-prod-proposed-migration-environment-2-1b5237bf-89c6-4b7f-a579-6de6e61c8678 from image adt/ubuntu-resolute-arm64-server-20260123.img (UUID af50d520-9a73-4a18-8f4a-1e9db3030ff5)... 59s autopkgtest [23:48:06]: testbed dpkg architecture: arm64 59s autopkgtest [23:48:06]: testbed apt version: 3.1.13 60s autopkgtest [23:48:07]: @@@@@@@@@@@@@@@@@@@@ test bed setup 60s autopkgtest [23:48:07]: testbed release detected to be: None 61s autopkgtest [23:48:08]: updating testbed package index (apt update) 62s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 62s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 62s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 62s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 62s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 62s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [97.3 kB] 62s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 62s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1021 kB] 63s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [115 kB] 63s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3892 B] 63s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [12.3 kB] 63s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [328 B] 63s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [900 kB] 63s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [22.3 kB] 63s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [11.5 kB] 63s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [556 B] 67s Fetched 2336 kB in 2s (1128 kB/s) 67s Reading package lists... 70s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 70s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 70s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 70s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 71s Reading package lists... 71s Reading package lists... 71s Building dependency tree... 71s Reading state information... 71s Calculating upgrade... 72s The following packages were automatically installed and are no longer required: 72s python3.13 python3.13-minimal 72s Use 'sudo apt autoremove' to remove them. 72s The following NEW packages will be installed: 72s libpython3.14-minimal libpython3.14-stdlib libsframe3 python3.14 72s python3.14-minimal 72s The following packages will be upgraded: 72s binutils binutils-aarch64-linux-gnu binutils-common gcc-15-base libatomic1 72s libbinutils libctf-nobfd0 libctf0 libgcc-s1 libgprofng0 libnss-systemd 72s libpam-systemd libplymouth5 libpython3-stdlib libstdc++6 libsystemd-shared 72s libsystemd0 libtasn1-6 libudev1 libzstd1 plymouth plymouth-theme-ubuntu-text 72s python3 python3-gdbm python3-jaraco.context python3-minimal systemd 72s systemd-cryptsetup systemd-resolved systemd-sysv systemd-userdbd udev 72s vim-common vim-tiny xxd zstd 72s 36 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 72s Need to get 22.1 MB of archives. 72s After this operation, 26.0 MB of additional disk space will be used. 72s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 72s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 72s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.14.2-1 [28.2 kB] 72s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.14.2-1 [22.9 kB] 72s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libzstd1 arm64 1.5.7+dfsg-3 [277 kB] 72s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 72s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 73s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.14.2-1 [10.9 kB] 73s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 systemd-userdbd arm64 259-1ubuntu3 [50.7 kB] 73s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libnss-systemd arm64 259-1ubuntu3 [284 kB] 73s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libsystemd0 arm64 259-1ubuntu3 [532 kB] 73s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 systemd-sysv arm64 259-1ubuntu3 [9248 B] 73s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 systemd-resolved arm64 259-1ubuntu3 [291 kB] 73s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpam-systemd arm64 259-1ubuntu3 [267 kB] 73s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libsystemd-shared arm64 259-1ubuntu3 [2435 kB] 73s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 systemd arm64 259-1ubuntu3 [3060 kB] 73s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 systemd-cryptsetup arm64 259-1ubuntu3 [122 kB] 73s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 udev arm64 259-1ubuntu3 [1468 kB] 73s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libudev1 arm64 259-1ubuntu3 [209 kB] 73s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libstdc++6 arm64 15.2.0-12ubuntu1 [760 kB] 73s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libatomic1 arm64 15.2.0-12ubuntu1 [11.2 kB] 73s Get:22 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 gcc-15-base arm64 15.2.0-12ubuntu1 [59.6 kB] 73s Get:23 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libgcc-s1 arm64 15.2.0-12ubuntu1 [61.1 kB] 73s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 libtasn1-6 arm64 4.21.0-2 [44.4 kB] 73s Get:25 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 vim-tiny arm64 2:9.1.1882-1ubuntu2 [826 kB] 73s Get:26 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 vim-common all 2:9.1.1882-1ubuntu2 [402 kB] 73s Get:27 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 xxd arm64 2:9.1.1882-1ubuntu2 [70.4 kB] 73s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 libplymouth5 arm64 24.004.60+git20250831.4a3c171d-0ubuntu5 [141 kB] 73s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth-theme-ubuntu-text arm64 24.004.60+git20250831.4a3c171d-0ubuntu5 [9982 B] 73s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth arm64 24.004.60+git20250831.4a3c171d-0ubuntu5 [133 kB] 74s Get:31 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-gdbm arm64 3.14.2-1 [11.1 kB] 74s Get:32 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libgprofng0 arm64 2.45.50.20260119-1ubuntu1 [789 kB] 74s Get:33 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libctf0 arm64 2.45.50.20260119-1ubuntu1 [101 kB] 74s Get:34 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libctf-nobfd0 arm64 2.45.50.20260119-1ubuntu1 [104 kB] 74s Get:35 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 binutils-aarch64-linux-gnu arm64 2.45.50.20260119-1ubuntu1 [1007 kB] 74s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libbinutils arm64 2.45.50.20260119-1ubuntu1 [800 kB] 74s Get:37 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 binutils arm64 2.45.50.20260119-1ubuntu1 [227 kB] 74s Get:38 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 binutils-common arm64 2.45.50.20260119-1ubuntu1 [222 kB] 74s Get:39 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libsframe3 arm64 2.45.50.20260119-1ubuntu1 [21.4 kB] 74s Get:40 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-jaraco.context all 6.0.1-2 [8198 B] 74s Get:41 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 zstd arm64 1.5.7+dfsg-3 [596 kB] 74s dpkg-preconfigure: unable to re-open stdin: No such file or directory 74s Fetched 22.1 MB in 2s (11.0 MB/s) 74s Selecting previously unselected package libpython3.14-minimal:arm64. 75s (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 ... 135220 files and directories currently installed.) 75s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_arm64.deb ... 75s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 75s Selecting previously unselected package python3.14-minimal. 75s Preparing to unpack .../python3.14-minimal_3.14.2-1_arm64.deb ... 75s Unpacking python3.14-minimal (3.14.2-1) ... 75s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 75s Setting up python3.14-minimal (3.14.2-1) ... 76s (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 ... 135562 files and directories currently installed.) 76s Preparing to unpack .../python3-minimal_3.14.2-1_arm64.deb ... 76s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 76s Setting up python3-minimal (3.14.2-1) ... 77s (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 ... 135562 files and directories currently installed.) 77s Preparing to unpack .../python3_3.14.2-1_arm64.deb ... 77s running python pre-rtupdate hooks for python3.14... 77s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 77s Preparing to unpack .../libzstd1_1.5.7+dfsg-3_arm64.deb ... 77s Unpacking libzstd1:arm64 (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 77s Setting up libzstd1:arm64 (1.5.7+dfsg-3) ... 77s Selecting previously unselected package libpython3.14-stdlib:arm64. 77s (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 ... 135563 files and directories currently installed.) 77s Preparing to unpack .../0-libpython3.14-stdlib_3.14.2-1_arm64.deb ... 77s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 77s Selecting previously unselected package python3.14. 77s Preparing to unpack .../1-python3.14_3.14.2-1_arm64.deb ... 77s Unpacking python3.14 (3.14.2-1) ... 77s Preparing to unpack .../2-libpython3-stdlib_3.14.2-1_arm64.deb ... 77s Unpacking libpython3-stdlib:arm64 (3.14.2-1) over (3.13.9-3) ... 77s Preparing to unpack .../3-systemd-userdbd_259-1ubuntu3_arm64.deb ... 77s Unpacking systemd-userdbd (259-1ubuntu3) over (259-1ubuntu2) ... 78s Preparing to unpack .../4-libnss-systemd_259-1ubuntu3_arm64.deb ... 78s Unpacking libnss-systemd:arm64 (259-1ubuntu3) over (259-1ubuntu2) ... 78s Preparing to unpack .../5-libsystemd0_259-1ubuntu3_arm64.deb ... 78s Unpacking libsystemd0:arm64 (259-1ubuntu3) over (259-1ubuntu2) ... 78s Setting up libsystemd0:arm64 (259-1ubuntu3) ... 78s (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 ... 135994 files and directories currently installed.) 78s Preparing to unpack .../systemd-sysv_259-1ubuntu3_arm64.deb ... 78s Unpacking systemd-sysv (259-1ubuntu3) over (259-1ubuntu2) ... 78s Preparing to unpack .../systemd-resolved_259-1ubuntu3_arm64.deb ... 78s Unpacking systemd-resolved (259-1ubuntu3) over (259-1ubuntu2) ... 78s Preparing to unpack .../libpam-systemd_259-1ubuntu3_arm64.deb ... 78s Unpacking libpam-systemd:arm64 (259-1ubuntu3) over (259-1ubuntu2) ... 78s Preparing to unpack .../libsystemd-shared_259-1ubuntu3_arm64.deb ... 78s Unpacking libsystemd-shared:arm64 (259-1ubuntu3) over (259-1ubuntu2) ... 78s Setting up libsystemd-shared:arm64 (259-1ubuntu3) ... 79s (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 ... 135994 files and directories currently installed.) 79s Preparing to unpack .../systemd_259-1ubuntu3_arm64.deb ... 79s Unpacking systemd (259-1ubuntu3) over (259-1ubuntu2) ... 79s Preparing to unpack .../systemd-cryptsetup_259-1ubuntu3_arm64.deb ... 79s Unpacking systemd-cryptsetup (259-1ubuntu3) over (259-1ubuntu2) ... 79s Preparing to unpack .../udev_259-1ubuntu3_arm64.deb ... 79s Unpacking udev (259-1ubuntu3) over (259-1ubuntu2) ... 79s Preparing to unpack .../libudev1_259-1ubuntu3_arm64.deb ... 79s Unpacking libudev1:arm64 (259-1ubuntu3) over (259-1ubuntu2) ... 79s Setting up libudev1:arm64 (259-1ubuntu3) ... 79s (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 ... 135994 files and directories currently installed.) 79s Preparing to unpack .../libstdc++6_15.2.0-12ubuntu1_arm64.deb ... 79s Unpacking libstdc++6:arm64 (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 80s Preparing to unpack .../libatomic1_15.2.0-12ubuntu1_arm64.deb ... 80s Unpacking libatomic1:arm64 (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 80s Preparing to unpack .../gcc-15-base_15.2.0-12ubuntu1_arm64.deb ... 80s Unpacking gcc-15-base:arm64 (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 80s Setting up gcc-15-base:arm64 (15.2.0-12ubuntu1) ... 80s (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 ... 135994 files and directories currently installed.) 80s Preparing to unpack .../libgcc-s1_15.2.0-12ubuntu1_arm64.deb ... 80s Unpacking libgcc-s1:arm64 (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 80s Setting up libgcc-s1:arm64 (15.2.0-12ubuntu1) ... 80s (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 ... 135994 files and directories currently installed.) 80s Preparing to unpack .../00-libtasn1-6_4.21.0-2_arm64.deb ... 80s Unpacking libtasn1-6:arm64 (4.21.0-2) over (4.20.0-2ubuntu1) ... 80s Preparing to unpack .../01-vim-tiny_2%3a9.1.1882-1ubuntu2_arm64.deb ... 80s Unpacking vim-tiny (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 80s Preparing to unpack .../02-vim-common_2%3a9.1.1882-1ubuntu2_all.deb ... 80s Unpacking vim-common (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 80s Preparing to unpack .../03-xxd_2%3a9.1.1882-1ubuntu2_arm64.deb ... 80s Unpacking xxd (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 80s Preparing to unpack .../04-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu5_arm64.deb ... 81s Unpacking libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 81s Preparing to unpack .../05-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu5_arm64.deb ... 81s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 81s Preparing to unpack .../06-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu5_arm64.deb ... 81s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 81s Preparing to unpack .../07-python3-gdbm_3.14.2-1_arm64.deb ... 81s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 81s Preparing to unpack .../08-libgprofng0_2.45.50.20260119-1ubuntu1_arm64.deb ... 81s Unpacking libgprofng0:arm64 (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 81s Preparing to unpack .../09-libctf0_2.45.50.20260119-1ubuntu1_arm64.deb ... 81s Unpacking libctf0:arm64 (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 81s Preparing to unpack .../10-libctf-nobfd0_2.45.50.20260119-1ubuntu1_arm64.deb ... 81s Unpacking libctf-nobfd0:arm64 (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 81s Preparing to unpack .../11-binutils-aarch64-linux-gnu_2.45.50.20260119-1ubuntu1_arm64.deb ... 81s Unpacking binutils-aarch64-linux-gnu (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 82s Preparing to unpack .../12-libbinutils_2.45.50.20260119-1ubuntu1_arm64.deb ... 82s Unpacking libbinutils:arm64 (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 82s Preparing to unpack .../13-binutils_2.45.50.20260119-1ubuntu1_arm64.deb ... 82s Unpacking binutils (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 82s Preparing to unpack .../14-binutils-common_2.45.50.20260119-1ubuntu1_arm64.deb ... 82s Unpacking binutils-common:arm64 (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 82s Selecting previously unselected package libsframe3:arm64. 82s Preparing to unpack .../15-libsframe3_2.45.50.20260119-1ubuntu1_arm64.deb ... 82s Unpacking libsframe3:arm64 (2.45.50.20260119-1ubuntu1) ... 82s Preparing to unpack .../16-python3-jaraco.context_6.0.1-2_all.deb ... 82s Unpacking python3-jaraco.context (6.0.1-2) over (6.0.1-1build1) ... 82s Preparing to unpack .../17-zstd_1.5.7+dfsg-3_arm64.deb ... 82s Unpacking zstd (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 82s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 82s Setting up binutils-common:arm64 (2.45.50.20260119-1ubuntu1) ... 82s Setting up libsframe3:arm64 (2.45.50.20260119-1ubuntu1) ... 82s Setting up libctf-nobfd0:arm64 (2.45.50.20260119-1ubuntu1) ... 82s Setting up libnss-systemd:arm64 (259-1ubuntu3) ... 82s Setting up systemd (259-1ubuntu3) ... 83s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 83s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 83s Setting up xxd (2:9.1.1882-1ubuntu2) ... 84s Setting up vim-common (2:9.1.1882-1ubuntu2) ... 84s Setting up systemd-cryptsetup (259-1ubuntu3) ... 84s Setting up libatomic1:arm64 (15.2.0-12ubuntu1) ... 84s Setting up udev (259-1ubuntu3) ... 84s Setting up libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 84s Setting up libtasn1-6:arm64 (4.21.0-2) ... 85s Setting up python3.14 (3.14.2-1) ... 86s Setting up libbinutils:arm64 (2.45.50.20260119-1ubuntu1) ... 86s Setting up libstdc++6:arm64 (15.2.0-12ubuntu1) ... 86s Setting up libpython3-stdlib:arm64 (3.14.2-1) ... 86s Setting up systemd-resolved (259-1ubuntu3) ... 87s Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 148. 87s Setting up libctf0:arm64 (2.45.50.20260119-1ubuntu1) ... 87s Setting up systemd-userdbd (259-1ubuntu3) ... 87s Setting up systemd-sysv (259-1ubuntu3) ... 87s Setting up python3-gdbm (3.14.2-1) ... 87s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 87s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 88s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 88s Setting up binutils-aarch64-linux-gnu (2.45.50.20260119-1ubuntu1) ... 88s Setting up python3 (3.14.2-1) ... 88s running python rtupdate hooks for python3.14... 88s running python post-rtupdate hooks for python3.14... 88s Setting up vim-tiny (2:9.1.1882-1ubuntu2) ... 88s Setting up libgprofng0:arm64 (2.45.50.20260119-1ubuntu1) ... 88s Setting up libpam-systemd:arm64 (259-1ubuntu3) ... 88s Setting up zstd (1.5.7+dfsg-3) ... 88s Setting up python3-jaraco.context (6.0.1-2) ... 89s Setting up binutils (2.45.50.20260119-1ubuntu1) ... 89s Installing new version of config file /etc/gprofng.rc ... 89s Processing triggers for dbus (1.16.2-2ubuntu2) ... 89s Processing triggers for shared-mime-info (2.4-5build2) ... 91s Processing triggers for procps (2:4.0.4-9ubuntu1) ... 91s Processing triggers for initramfs-tools (0.150ubuntu7) ... 91s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 109s System running in EFI mode, skipping. 109s Processing triggers for libc-bin (2.42-2ubuntu4) ... 109s Processing triggers for man-db (2.13.1-1) ... 110s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 110s Processing triggers for initramfs-tools (0.150ubuntu7) ... 110s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 126s System running in EFI mode, skipping. 126s autopkgtest [23:49:13]: upgrading testbed (apt dist-upgrade and autopurge) 127s Reading package lists... 127s Building dependency tree... 127s Reading state information... 127s Calculating upgrade... 128s The following packages were automatically installed and are no longer required: 128s python3.13 python3.13-minimal 128s Use 'sudo apt autoremove' to remove them. 128s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 128s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s Solving dependencies... 129s The following packages will be REMOVED: 129s python3.13* python3.13-minimal* 129s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 129s After this operation, 7766 kB disk space will be freed. 129s (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 ... 135994 files and directories currently installed.) 129s Removing python3.13 (3.13.11-1) ... 129s Removing python3.13-minimal (3.13.11-1) ... 130s Processing triggers for man-db (2.13.1-1) ... 130s Processing triggers for systemd (259-1ubuntu3) ... 131s (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 ... 135967 files and directories currently installed.) 131s Purging configuration files for python3.13-minimal (3.13.11-1) ... 131s autopkgtest [23:49:18]: rebooting testbed after setup commands that affected boot 169s autopkgtest [23:49:56]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 172s autopkgtest [23:49:59]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cobra 174s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (dsc) [3080 B] 174s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (tar) [3651 kB] 174s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (diff) [11.1 kB] 174s gpgv: Signature made Wed Jul 2 22:43:59 2025 UTC 174s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 174s gpgv: issuer "tchet@debian.org" 174s gpgv: Can't check signature: No public key 174s dpkg-source: warning: cannot verify inline signature for ./python-cobra_0.29.1-3.dsc: no acceptable signature found 174s autopkgtest [23:50:01]: testing package python-cobra version 0.29.1-3 175s autopkgtest [23:50:02]: build not needed 177s autopkgtest [23:50:04]: test run-unit-test: preparing testbed 177s Reading package lists... 177s Building dependency tree... 177s Reading state information... 178s Solving dependencies... 178s The following NEW packages will be installed: 178s diffstat gettext libamd3 libblas3 libcolamd3 libgfortran5 libglpk40 libgomp1 178s liblapack3 libltdl7 libpython3.14 libqhull-r8.0 libsuitesparseconfig7 178s python-cobra-data python3-annotated-types python3-anyio python3-click 178s python3-cobra python3-cpuinfo python3-decorator python3-depinfo 178s python3-diskcache python3-dnspython python3-email-validator python3-h11 178s python3-httpcore python3-httpx python3-iniconfig python3-mpmath 178s python3-numpy python3-numpy-dev python3-optlang python3-pandas 178s python3-pandas-lib python3-platformdirs python3-pluggy python3-pydantic 178s python3-pydantic-core python3-pytest python3-pytest-benchmark 178s python3-pytest-mock python3-pytz python3-ruamel.yaml 178s python3-ruamel.yaml.clib python3-sbml5 python3-scipy python3-sniffio 178s python3-swiglpk python3-sympy python3-tabulate python3-typing-inspection 178s quilt 178s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 178s Need to get 59.8 MB of archives. 178s After this operation, 327 MB of additional disk space will be used. 178s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-numpy-dev arm64 1:2.3.5+ds-3 [366 kB] 178s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libblas3 arm64 3.12.1-7ubuntu1 [181 kB] 178s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libgfortran5 arm64 15.2.0-12ubuntu1 [451 kB] 179s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 liblapack3 arm64 3.12.1-7ubuntu1 [2299 kB] 179s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-numpy arm64 1:2.3.5+ds-3 [4569 kB] 179s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 diffstat arm64 1.68-1 [29.1 kB] 179s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libgomp1 arm64 15.2.0-12ubuntu1 [147 kB] 179s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 179s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libsuitesparseconfig7 arm64 1:7.12.1+dfsg-1 [22.0 kB] 179s Get:10 http://ftpmaster.internal/ubuntu resolute/universe arm64 libamd3 arm64 1:7.12.1+dfsg-1 [34.6 kB] 179s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libcolamd3 arm64 1:7.12.1+dfsg-1 [27.1 kB] 179s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libltdl7 arm64 2.5.4-9 [43.3 kB] 179s Get:13 http://ftpmaster.internal/ubuntu resolute/universe arm64 libglpk40 arm64 5.0-2 [347 kB] 179s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14 arm64 3.14.2-1 [2593 kB] 180s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libqhull-r8.0 arm64 2020.2-8 [191 kB] 180s Get:16 http://ftpmaster.internal/ubuntu resolute/universe arm64 python-cobra-data all 0.29.1-3 [1611 kB] 180s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-annotated-types all 0.7.0-1 [19.4 kB] 180s Get:18 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-sniffio all 1.3.1-1 [7262 B] 180s Get:19 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-anyio all 4.11.0-3 [72.6 kB] 180s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 180s Get:21 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-depinfo arm64 2.2.0-4 [11.2 kB] 180s Get:22 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diskcache all 5.6.3-1 [35.1 kB] 180s Get:23 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-h11 all 0.14.0-1.1 [51.6 kB] 180s Get:24 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-httpcore all 1.0.9-1 [38.9 kB] 180s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-httpx all 0.28.1-1 [59.4 kB] 180s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-swiglpk arm64 5.0.10-2build3 [101 kB] 180s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mpmath all 1.3.0-2 [423 kB] 180s Get:28 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-sympy all 1.14.0-2 [4306 kB] 180s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-optlang all 1.8.3-1 [5368 kB] 180s Get:30 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytz all 2025.2-5 [32.4 kB] 180s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pandas-lib arm64 2.3.3+dfsg-3 [6290 kB] 180s Get:32 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pandas all 2.3.3+dfsg-3 [2948 kB] 180s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-platformdirs all 4.5.1-1 [17.1 kB] 181s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pydantic-core arm64 2.41.5-2 [2170 kB] 181s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-typing-inspection all 0.4.2-1 [13.1 kB] 181s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 181s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-email-validator all 2.2.0-1 [28.5 kB] 181s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pydantic arm64 2.12.5-2 [312 kB] 181s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.15+ds-1 [178 kB] 181s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 181s Get:41 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-tabulate all 0.9.0-1build1 [45.4 kB] 181s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-sbml5 arm64 5.20.5+dfsg-1build1 [3560 kB] 181s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cobra arm64 0.29.1-3 [1118 kB] 181s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cpuinfo all 9.0.0+git20221119-3 [21.7 kB] 181s Get:45 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-decorator all 5.2.1-2 [28.1 kB] 181s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 181s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 181s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 181s Get:49 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest-benchmark all 5.2.3-1 [40.0 kB] 181s Get:50 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest-mock all 3.15.1-1 [11.9 kB] 181s Get:51 http://ftpmaster.internal/ubuntu resolute/universe arm64 quilt all 0.68-1 [439 kB] 181s Get:52 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-scipy arm64 1.16.3-3 [17.4 MB] 182s Fetched 59.8 MB in 3s (17.9 MB/s) 182s Selecting previously unselected package python3-numpy-dev:arm64. 182s (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 ... 135969 files and directories currently installed.) 182s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_arm64.deb ... 182s Unpacking python3-numpy-dev:arm64 (1:2.3.5+ds-3) ... 182s Selecting previously unselected package libblas3:arm64. 182s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_arm64.deb ... 182s Unpacking libblas3:arm64 (3.12.1-7ubuntu1) ... 182s Selecting previously unselected package libgfortran5:arm64. 182s Preparing to unpack .../02-libgfortran5_15.2.0-12ubuntu1_arm64.deb ... 182s Unpacking libgfortran5:arm64 (15.2.0-12ubuntu1) ... 182s Selecting previously unselected package liblapack3:arm64. 182s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_arm64.deb ... 182s Unpacking liblapack3:arm64 (3.12.1-7ubuntu1) ... 182s Selecting previously unselected package python3-numpy. 182s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_arm64.deb ... 182s Unpacking python3-numpy (1:2.3.5+ds-3) ... 183s Selecting previously unselected package diffstat. 183s Preparing to unpack .../05-diffstat_1.68-1_arm64.deb ... 183s Unpacking diffstat (1.68-1) ... 183s Selecting previously unselected package libgomp1:arm64. 183s Preparing to unpack .../06-libgomp1_15.2.0-12ubuntu1_arm64.deb ... 183s Unpacking libgomp1:arm64 (15.2.0-12ubuntu1) ... 183s Selecting previously unselected package gettext. 183s Preparing to unpack .../07-gettext_0.23.2-1_arm64.deb ... 183s Unpacking gettext (0.23.2-1) ... 183s Selecting previously unselected package libsuitesparseconfig7:arm64. 183s Preparing to unpack .../08-libsuitesparseconfig7_1%3a7.12.1+dfsg-1_arm64.deb ... 183s Unpacking libsuitesparseconfig7:arm64 (1:7.12.1+dfsg-1) ... 183s Selecting previously unselected package libamd3:arm64. 183s Preparing to unpack .../09-libamd3_1%3a7.12.1+dfsg-1_arm64.deb ... 183s Unpacking libamd3:arm64 (1:7.12.1+dfsg-1) ... 183s Selecting previously unselected package libcolamd3:arm64. 183s Preparing to unpack .../10-libcolamd3_1%3a7.12.1+dfsg-1_arm64.deb ... 183s Unpacking libcolamd3:arm64 (1:7.12.1+dfsg-1) ... 183s Selecting previously unselected package libltdl7:arm64. 183s Preparing to unpack .../11-libltdl7_2.5.4-9_arm64.deb ... 183s Unpacking libltdl7:arm64 (2.5.4-9) ... 183s Selecting previously unselected package libglpk40:arm64. 183s Preparing to unpack .../12-libglpk40_5.0-2_arm64.deb ... 183s Unpacking libglpk40:arm64 (5.0-2) ... 183s Selecting previously unselected package libpython3.14:arm64. 183s Preparing to unpack .../13-libpython3.14_3.14.2-1_arm64.deb ... 183s Unpacking libpython3.14:arm64 (3.14.2-1) ... 183s Selecting previously unselected package libqhull-r8.0:arm64. 183s Preparing to unpack .../14-libqhull-r8.0_2020.2-8_arm64.deb ... 183s Unpacking libqhull-r8.0:arm64 (2020.2-8) ... 183s Selecting previously unselected package python-cobra-data. 183s Preparing to unpack .../15-python-cobra-data_0.29.1-3_all.deb ... 183s Unpacking python-cobra-data (0.29.1-3) ... 183s Selecting previously unselected package python3-annotated-types. 183s Preparing to unpack .../16-python3-annotated-types_0.7.0-1_all.deb ... 183s Unpacking python3-annotated-types (0.7.0-1) ... 183s Selecting previously unselected package python3-sniffio. 183s Preparing to unpack .../17-python3-sniffio_1.3.1-1_all.deb ... 183s Unpacking python3-sniffio (1.3.1-1) ... 183s Selecting previously unselected package python3-anyio. 183s Preparing to unpack .../18-python3-anyio_4.11.0-3_all.deb ... 183s Unpacking python3-anyio (4.11.0-3) ... 183s Selecting previously unselected package python3-click. 183s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 183s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 183s Selecting previously unselected package python3-depinfo. 183s Preparing to unpack .../20-python3-depinfo_2.2.0-4_arm64.deb ... 183s Unpacking python3-depinfo (2.2.0-4) ... 183s Selecting previously unselected package python3-diskcache. 184s Preparing to unpack .../21-python3-diskcache_5.6.3-1_all.deb ... 184s Unpacking python3-diskcache (5.6.3-1) ... 184s Selecting previously unselected package python3-h11. 184s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 184s Unpacking python3-h11 (0.14.0-1.1) ... 184s Selecting previously unselected package python3-httpcore. 184s Preparing to unpack .../23-python3-httpcore_1.0.9-1_all.deb ... 184s Unpacking python3-httpcore (1.0.9-1) ... 184s Selecting previously unselected package python3-httpx. 184s Preparing to unpack .../24-python3-httpx_0.28.1-1_all.deb ... 184s Unpacking python3-httpx (0.28.1-1) ... 184s Selecting previously unselected package python3-swiglpk. 184s Preparing to unpack .../25-python3-swiglpk_5.0.10-2build3_arm64.deb ... 184s Unpacking python3-swiglpk (5.0.10-2build3) ... 184s Selecting previously unselected package python3-mpmath. 184s Preparing to unpack .../26-python3-mpmath_1.3.0-2_all.deb ... 184s Unpacking python3-mpmath (1.3.0-2) ... 184s Selecting previously unselected package python3-sympy. 184s Preparing to unpack .../27-python3-sympy_1.14.0-2_all.deb ... 184s Unpacking python3-sympy (1.14.0-2) ... 184s Selecting previously unselected package python3-optlang. 184s Preparing to unpack .../28-python3-optlang_1.8.3-1_all.deb ... 184s Unpacking python3-optlang (1.8.3-1) ... 184s Selecting previously unselected package python3-pytz. 184s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 184s Unpacking python3-pytz (2025.2-5) ... 184s Selecting previously unselected package python3-pandas-lib:arm64. 184s Preparing to unpack .../30-python3-pandas-lib_2.3.3+dfsg-3_arm64.deb ... 184s Unpacking python3-pandas-lib:arm64 (2.3.3+dfsg-3) ... 184s Selecting previously unselected package python3-pandas. 184s Preparing to unpack .../31-python3-pandas_2.3.3+dfsg-3_all.deb ... 184s Unpacking python3-pandas (2.3.3+dfsg-3) ... 185s Selecting previously unselected package python3-platformdirs. 185s Preparing to unpack .../32-python3-platformdirs_4.5.1-1_all.deb ... 185s Unpacking python3-platformdirs (4.5.1-1) ... 185s Selecting previously unselected package python3-pydantic-core. 185s Preparing to unpack .../33-python3-pydantic-core_2.41.5-2_arm64.deb ... 185s Unpacking python3-pydantic-core (2.41.5-2) ... 185s Selecting previously unselected package python3-typing-inspection. 185s Preparing to unpack .../34-python3-typing-inspection_0.4.2-1_all.deb ... 185s Unpacking python3-typing-inspection (0.4.2-1) ... 185s Selecting previously unselected package python3-dnspython. 185s Preparing to unpack .../35-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 185s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 185s Selecting previously unselected package python3-email-validator. 185s Preparing to unpack .../36-python3-email-validator_2.2.0-1_all.deb ... 185s Unpacking python3-email-validator (2.2.0-1) ... 185s Selecting previously unselected package python3-pydantic. 185s Preparing to unpack .../37-python3-pydantic_2.12.5-2_arm64.deb ... 185s Unpacking python3-pydantic (2.12.5-2) ... 185s Selecting previously unselected package python3-ruamel.yaml.clib. 185s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_arm64.deb ... 185s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 185s Selecting previously unselected package python3-ruamel.yaml. 185s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 185s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 185s Selecting previously unselected package python3-tabulate. 185s Preparing to unpack .../40-python3-tabulate_0.9.0-1build1_all.deb ... 185s Unpacking python3-tabulate (0.9.0-1build1) ... 185s Selecting previously unselected package python3-sbml5. 185s Preparing to unpack .../41-python3-sbml5_5.20.5+dfsg-1build1_arm64.deb ... 185s Unpacking python3-sbml5 (5.20.5+dfsg-1build1) ... 185s Selecting previously unselected package python3-cobra. 185s Preparing to unpack .../42-python3-cobra_0.29.1-3_arm64.deb ... 185s Unpacking python3-cobra (0.29.1-3) ... 185s Selecting previously unselected package python3-cpuinfo. 185s Preparing to unpack .../43-python3-cpuinfo_9.0.0+git20221119-3_all.deb ... 185s Unpacking python3-cpuinfo (9.0.0+git20221119-3) ... 185s Selecting previously unselected package python3-decorator. 186s Preparing to unpack .../44-python3-decorator_5.2.1-2_all.deb ... 186s Unpacking python3-decorator (5.2.1-2) ... 186s Selecting previously unselected package python3-iniconfig. 186s Preparing to unpack .../45-python3-iniconfig_2.1.0-2_all.deb ... 186s Unpacking python3-iniconfig (2.1.0-2) ... 186s Selecting previously unselected package python3-pluggy. 186s Preparing to unpack .../46-python3-pluggy_1.6.0-2_all.deb ... 186s Unpacking python3-pluggy (1.6.0-2) ... 186s Selecting previously unselected package python3-pytest. 186s Preparing to unpack .../47-python3-pytest_9.0.2-2_all.deb ... 186s Unpacking python3-pytest (9.0.2-2) ... 186s Selecting previously unselected package python3-pytest-benchmark. 186s Preparing to unpack .../48-python3-pytest-benchmark_5.2.3-1_all.deb ... 186s Unpacking python3-pytest-benchmark (5.2.3-1) ... 186s Selecting previously unselected package python3-pytest-mock. 186s Preparing to unpack .../49-python3-pytest-mock_3.15.1-1_all.deb ... 186s Unpacking python3-pytest-mock (3.15.1-1) ... 186s Selecting previously unselected package quilt. 186s Preparing to unpack .../50-quilt_0.68-1_all.deb ... 186s Unpacking quilt (0.68-1) ... 186s Selecting previously unselected package python3-scipy. 186s Preparing to unpack .../51-python3-scipy_1.16.3-3_arm64.deb ... 186s Unpacking python3-scipy (1.16.3-3) ... 186s Setting up python3-iniconfig (2.1.0-2) ... 187s Setting up python3-sniffio (1.3.1-1) ... 187s Setting up python3-pydantic-core (2.41.5-2) ... 187s Setting up python3-typing-inspection (0.4.2-1) ... 187s Setting up python3-anyio (4.11.0-3) ... 187s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 187s Setting up python3-tabulate (0.9.0-1build1) ... 188s Setting up libqhull-r8.0:arm64 (2020.2-8) ... 188s Setting up python3-pytz (2025.2-5) ... 188s Setting up libgomp1:arm64 (15.2.0-12ubuntu1) ... 188s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 188s Setting up python3-annotated-types (0.7.0-1) ... 188s Setting up python3-platformdirs (4.5.1-1) ... 188s Setting up python3-decorator (5.2.1-2) ... 189s Setting up libblas3:arm64 (3.12.1-7ubuntu1) ... 189s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 189s Setting up diffstat (1.68-1) ... 189s Setting up python3-numpy-dev:arm64 (1:2.3.5+ds-3) ... 189s Setting up python3-h11 (0.14.0-1.1) ... 189s Setting up python3-depinfo (2.2.0-4) ... 189s Setting up python3-cpuinfo (9.0.0+git20221119-3) ... 189s Setting up libltdl7:arm64 (2.5.4-9) ... 189s Setting up libgfortran5:arm64 (15.2.0-12ubuntu1) ... 189s Setting up python3-pluggy (1.6.0-2) ... 189s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 190s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 190s Setting up libpython3.14:arm64 (3.14.2-1) ... 190s Setting up libsuitesparseconfig7:arm64 (1:7.12.1+dfsg-1) ... 190s Setting up python3-email-validator (2.2.0-1) ... 190s Setting up python3-mpmath (1.3.0-2) ... 191s Setting up python3-diskcache (5.6.3-1) ... 191s Setting up python-cobra-data (0.29.1-3) ... 191s Setting up python3-httpcore (1.0.9-1) ... 191s Setting up python3-sympy (1.14.0-2) ... 199s /usr/lib/python3/dist-packages/sympy/testing/runtests.py:283: SyntaxWarning: 'return' in a 'finally' block 199s return p.returncode 199s Setting up liblapack3:arm64 (3.12.1-7ubuntu1) ... 199s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 199s Setting up gettext (0.23.2-1) ... 199s Setting up libamd3:arm64 (1:7.12.1+dfsg-1) ... 199s Setting up libcolamd3:arm64 (1:7.12.1+dfsg-1) ... 199s Setting up python3-pytest (9.0.2-2) ... 199s Setting up quilt (0.68-1) ... 199s Setting up python3-sbml5 (5.20.5+dfsg-1build1) ... 200s Setting up python3-httpx (0.28.1-1) ... 200s Setting up libglpk40:arm64 (5.0-2) ... 200s Setting up python3-pydantic (2.12.5-2) ... 201s Setting up python3-numpy (1:2.3.5+ds-3) ... 203s Setting up python3-pytest-mock (3.15.1-1) ... 203s Setting up python3-swiglpk (5.0.10-2build3) ... 203s Setting up python3-optlang (1.8.3-1) ... 204s Setting up python3-pytest-benchmark (5.2.3-1) ... 204s Setting up python3-scipy (1.16.3-3) ... 208s Setting up python3-pandas-lib:arm64 (2.3.3+dfsg-3) ... 208s Setting up python3-pandas (2.3.3+dfsg-3) ... 214s Setting up python3-cobra (0.29.1-3) ... 214s Processing triggers for libc-bin (2.42-2ubuntu4) ... 214s Processing triggers for man-db (2.13.1-1) ... 215s Processing triggers for install-info (7.2-5) ... 216s autopkgtest [23:50:43]: test run-unit-test: [----------------------- 217s Running Tests 217s Since python3-sbml5 can only deal with one Python3 version we restrict the test to default Python3 217s File series fully applied, ends at patch debian/patches/pr1452.patch 220s ============================= test session starts ============================== 220s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 220s 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) 220s rootdir: /tmp/autopkgtest.jCplDT/autopkgtest_tmp 220s plugins: anyio-4.11.0, typeguard-4.4.4, mock-3.15.1, benchmark-5.2.3 220s collected 554 items 220s 221s tests/test_core/test_configuration.py ...... [ 1%] 226s tests/test_core/test_core_reaction.py ..........ss.............F..FFFF.. [ 7%] 227s ...................x....... [ 12%] 227s tests/test_core/test_dictlist.py ...................... [ 16%] 227s tests/test_core/test_formula.py ..... [ 16%] 227s tests/test_core/test_gene.py . [ 17%] 227s tests/test_core/test_gpr.py ......................x..x.................. [ 25%] 235s ........................... [ 29%] 235s tests/test_core/test_group.py .. [ 30%] 235s tests/test_core/test_metabolite.py ...ss.ss. [ 31%] 241s tests/test_core/test_model.py .........................FF.F............. [ 39%] 241s ...........s..s.ss. [ 42%] 241s tests/test_core/test_solution.py .ss [ 43%] 247s tests/test_flux_analysis/test_deletion.py ....s..... [ 45%] 248s tests/test_flux_analysis/test_fastcc.py .... [ 46%] 251s tests/test_flux_analysis/test_geometric.py .. [ 46%] 252s tests/test_flux_analysis/test_moma.py . [ 46%] 255s tests/test_flux_analysis/test_parsimonious.py .. [ 46%] 255s tests/test_flux_analysis/test_reaction.py . [ 47%] 257s tests/test_flux_analysis/test_room.py .... [ 47%] 266s tests/test_flux_analysis/test_variability.py ....... [ 49%] 266s tests/test_flux_analysis/test_deletion.py sss [ 49%] 266s tests/test_flux_analysis/test_moma.py s [ 49%] 275s tests/test_flux_analysis/test_deletion.py ...... [ 50%] 276s tests/test_flux_analysis/test_gapfilling.py F [ 51%] 276s tests/test_flux_analysis/test_helpers.py ... [ 51%] 279s tests/test_flux_analysis/test_loopless.py ..... [ 52%] 280s tests/test_flux_analysis/test_phenotype_phase_plane.py ...... [ 53%] 281s tests/test_flux_analysis/test_variability.py ....... [ 54%] 281s tests/test_io/test_annotation.py .. [ 55%] 281s tests/test_io/test_annotation_format.py .. [ 55%] 283s tests/test_io/test_io_order.py ........................... [ 60%] 283s tests/test_io/test_json.py .... [ 61%] 297s tests/test_io/test_mat.py ............... [ 63%] 297s tests/test_io/test_notes.py . [ 64%] 297s tests/test_io/test_pickle.py .. [ 64%] 304s tests/test_io/test_sbml.py .ssss............xxxx.x.x..s............. [ 71%] 304s tests/test_io/test_web/test_load.py ..ssss. [ 73%] 304s tests/test_io/test_yaml.py .x [ 73%] 304s tests/test_manipulation/test_annotate.py . [ 73%] 304s tests/test_manipulation/test_delete.py ....... [ 74%] 304s tests/test_manipulation/test_modify.py ... [ 75%] 304s tests/test_manipulation/test_validate.py .. [ 75%] 304s tests/test_medium/test_boundary_types.py ........... [ 77%] 306s tests/test_medium/test_minimal_medium.py .......... [ 79%] 308s tests/test_sampling/test_achr.py ...... [ 80%] 311s tests/test_sampling/test_optgp.py ...... [ 81%] 320s tests/test_sampling/test_sampling.py .......... [ 83%] 322s tests/test_summary/test_metabolite_summary.py FFFFFFFFFFFFFFFFF [ 86%] 324s tests/test_summary/test_model_summary.py FFFFFFFFFFFFFFF [ 89%] 326s tests/test_summary/test_reaction_summary.py FFFFFFFFFFFFFFFFFFFF [ 92%] 326s tests/test_util/test_array.py .. [ 93%] 326s tests/test_util/test_context.py ... [ 93%] 348s tests/test_util/test_process_pool.py ............... [ 96%] 349s tests/test_util/test_solver.py ..............s [ 99%] 349s tests/test_util/test_util.py ...X [100%] 349s 349s =================================== FAILURES =================================== 349s __________________________________ test_copy ___________________________________ 349s 349s model = 349s 349s def test_copy(model: Model) -> None: 349s """Test reaction copying.""" 349s PGI = model.reactions.PGI 349s > copied = PGI.copy() 349s ^^^^^^^^^^ 349s 349s tests/test_core/test_core_reaction.py:393: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________________________ test_add ___________________________________ 349s 349s model = 349s 349s def test_add(model: Model) -> None: 349s """Test reaction addition to model.""" 349s # Not in place addition should work on a copy 349s > new = model.reactions.PGI + model.reactions.EX_h2o_e 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_core/test_core_reaction.py:469: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 349s new_reaction = self.copy() 349s ^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s __________________________________ test_radd ___________________________________ 349s 349s model = 349s 349s def test_radd(model: Model) -> None: 349s """Test __radd__ for a reaction.""" 349s > new = sum([model.reactions.PGI, model.reactions.EX_h2o_e]) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_core/test_core_reaction.py:485: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 349s new_reaction = self.copy() 349s ^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________________________ test_mul ___________________________________ 349s 349s model = 349s 349s def test_mul(model: Model) -> None: 349s """Test scalar multiplication of factors with a reaction.""" 349s > new = model.reactions.PGI * 2 349s ^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_core/test_core_reaction.py:492: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1131: in __mul__ 349s new = self.copy() 349s ^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________________________ test_sub ___________________________________ 349s 349s model = 349s 349s def test_sub(model: Model) -> None: 349s """Test reaction subtraction.""" 349s > new = model.reactions.PGI - model.reactions.EX_h2o_e 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_core/test_core_reaction.py:498: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1050: in __sub__ 349s new = self.copy() 349s ^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________________ test_deepcopy_benchmark ____________________________ 349s 349s model = 349s benchmark = 349s 349s def test_deepcopy_benchmark(model: Model, benchmark: BenchmarkFixture) -> None: 349s """Benchmark deepcopying a model. 349s 349s Parameters 349s ---------- 349s model: cobra.Model 349s benchmark: BenchmarkFixture 349s """ 349s > benchmark(deepcopy, model) 349s 349s tests/test_core/test_model.py:613: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:184: in __call__ 349s return self._raw(function_to_benchmark, *args, **kwargs) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:216: in _raw 349s duration, iterations, loops_range = self._calibrate_timer(runner) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:370: in _calibrate_timer 349s duration = runner(loops_range) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:138: in runner 349s function_to_benchmark(*args, **kwargs) 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:240: in _reconstruct 349s state = deepcopy(state, memo) 349s ^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:131: in deepcopy 349s y = copier(x, memo) 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 349s y[deepcopy(key, memo)] = deepcopy(value, memo) 349s ^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:257: in _reconstruct 349s item = deepcopy(item, memo) 349s ^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ________________________________ test_deepcopy _________________________________ 349s 349s model = 349s 349s def test_deepcopy(model: Model) -> None: 349s """Test deepcopying works, and maintains reference structures. 349s 349s Parameters 349s ---------- 349s model: cobra.Model 349s """ 349s # Reference structures are maintained when deepcopying 349s > model_copy = deepcopy(model) 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_core/test_model.py:624: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:240: in _reconstruct 349s state = deepcopy(state, memo) 349s ^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:131: in deepcopy 349s y = copier(x, memo) 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 349s y[deepcopy(key, memo)] = deepcopy(value, memo) 349s ^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:257: in _reconstruct 349s item = deepcopy(item, memo) 349s ^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________________________ test_merge_models _______________________________ 349s 349s model = 349s tiny_toy_model = 349s 349s def test_merge_models(model: Model, tiny_toy_model: Model) -> None: 349s """Test merging models. 349s 349s Parameters 349s ---------- 349s model: cobra.Model 349s tiny_toy_model: cobra.Model 349s """ 349s with model, tiny_toy_model: 349s # Add some cons/vars to tiny_toy_model for testing merging 349s tiny_toy_model.add_reactions([Reaction("EX_glc__D_e")]) 349s variable = tiny_toy_model.problem.Variable("foo") 349s constraint = tiny_toy_model.problem.Constraint( 349s variable, ub=0, lb=0, name="constraint" 349s ) 349s tiny_toy_model.add_cons_vars([variable, constraint]) 349s 349s > merged = model.merge( 349s tiny_toy_model, inplace=False, objective="sum", prefix_existing="tiny_" 349s ) 349s 349s tests/test_core/test_model.py:679: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1454: in merge 349s new_reactions = deepcopy(right.reactions) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:257: in _reconstruct 349s item = deepcopy(item, memo) 349s ^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________________________ test_gapfilling ________________________________ 349s 349s salmonella = 349s 349s def test_gapfilling(salmonella: Model) -> None: 349s """Test Gapfilling.""" 349s m = Model() 349s m.add_metabolites([Metabolite(m_id) for m_id in ["a", "b", "c"]]) 349s exa = Reaction("EX_a") 349s exa.add_metabolites({m.metabolites.a: 1}) 349s b2c = Reaction("b2c") 349s b2c.add_metabolites({m.metabolites.b: -1, m.metabolites.c: 1}) 349s dmc = Reaction("DM_c") 349s dmc.add_metabolites({m.metabolites.c: -1}) 349s m.add_reactions([exa, b2c, dmc]) 349s m.objective = "DM_c" 349s 349s universal = Model() 349s a2b = Reaction("a2b") 349s a2d = Reaction("a2d") 349s universal.add_reactions([a2b, a2d]) 349s a2b.build_reaction_from_string("a --> b", verbose=False) 349s a2d.build_reaction_from_string("a --> d", verbose=False) 349s 349s # # GrowMatch 349s # result = gapfilling.growMatch(m, universal)[0] 349s result = gapfill(m, universal)[0] 349s assert len(result) == 1 349s assert result[0].id == "a2b" 349s 349s # # SMILEY 349s # result = gapfilling.SMILEY(m, "b", universal)[0] 349s with m: 349s m.objective = m.add_boundary(m.metabolites.b, type="demand") 349s result = gapfill(m, universal)[0] 349s assert len(result) == 1 349s assert result[0].id == "a2b" 349s 349s # # 2 rounds of GrowMatch with exchange reactions 349s # result = gapfilling.growMatch(m, None, ex_rxns=True, iterations=2) 349s result = gapfill(m, None, exchange_reactions=True, iterations=2) 349s assert len(result) == 2 349s assert len(result[0]) == 1 349s assert len(result[1]) == 1 349s assert {i[0].id for i in result} == {"EX_b", "EX_c"} 349s 349s # # Gapfilling solution adds metabolites not present in original model 349s # test for when demand = T 349s # a demand reaction must be added to clear new metabolite 349s universal_noDM = Model() 349s a2b = Reaction("a2b") 349s universal_noDM.add_reactions([a2b]) 349s a2b.build_reaction_from_string("a --> b + d", verbose=False) 349s result = gapfill( 349s m, universal_noDM, exchange_reactions=False, demand_reactions=True 349s )[0] 349s # add reaction a2b and demand reaction to clear met d 349s assert len(result) == 2 349s assert "a2b" in [x.id for x in result] 349s 349s # test for when demand = False 349s # test for when metabolites are added to the model and 349s # must be cleared by other reactions in universal model 349s # (i.e. not necessarily a demand reaction) 349s universal_withDM = universal_noDM.copy() 349s d_dm = Reaction("d_dm") 349s universal_withDM.add_reactions([d_dm]) 349s d_dm.build_reaction_from_string("d -->", verbose=False) 349s result = gapfill( 349s m, universal_withDM, exchange_reactions=False, demand_reactions=False 349s )[0] 349s assert len(result) == 2 349s assert "a2b" in [x.id for x in result] 349s 349s # somewhat bigger model 349s universal = Model("universal_reactions") 349s with salmonella as model: 349s for i in [i.id for i in model.metabolites.f6p_c.reactions]: 349s reaction = model.reactions.get_by_id(i) 349s > universal.add_reactions([reaction.copy()]) 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_flux_analysis/test_gapfilling.py:82: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_metabolite_summary_interface[optlang-glpk] ________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_metabolite_summary_interface(model, opt_solver): 349s """Test that a summary can be created successfully.""" 349s model.solver = opt_solver 349s metabolite = model.metabolites.get_by_id("q8_c") 349s > MetaboliteSummary( 349s metabolite=metabolite, 349s model=model, 349s ) 349s 349s tests/test_summary/test_metabolite_summary.py:13: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ________________ test_metabolite_summary_to_frame[optlang-glpk] ________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_metabolite_summary_to_frame(model, opt_solver): 349s """Test that the summary's method ``to_frame`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:39: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs0] ____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:56: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs1] ____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:56: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs2] ____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:56: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs3] ____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:56: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs4] ____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'column_width': 20} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:56: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs0] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:66: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs1] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:66: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs2] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:66: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs3] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("atp_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:66: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________ test_q8_producing_summary[optlang-glpk] ____________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_q8_producing_summary(model, opt_solver): 349s """Test that the production summary of q8 is accurate.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("q8_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:73: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ___________________ test_q8_consuming_summary[optlang-glpk] ____________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_q8_consuming_summary(model, opt_solver): 349s """Test that the consumption summary of q8 is accurate.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("q8_c").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:82: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s __________________ test_fdp_production_with_fva[optlang-glpk] __________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_fdp_production_with_fva(model, opt_solver): 349s """Test that the production summary of fdp is within expected bounds.""" 349s model.solver = opt_solver 349s > summary = model.metabolites.get_by_id("fdp_c").summary(fva=0.99) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:100: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s __________ test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] __________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s metabolite_id = 'q8_c' 349s 349s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 349s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 349s """Test that the metabolite summary inside and outside of a context are equal.""" 349s model.solver = opt_solver 349s with model: 349s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:112: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _________ test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] __________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s metabolite_id = 'fdp_c' 349s 349s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 349s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 349s """Test that the metabolite summary inside and outside of a context are equal.""" 349s model.solver = opt_solver 349s with model: 349s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:112: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _________ test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] __________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s metabolite_id = 'atp_c' 349s 349s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 349s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 349s """Test that the metabolite summary inside and outside of a context are equal.""" 349s model.solver = opt_solver 349s with model: 349s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_metabolite_summary.py:112: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 349s return MetaboliteSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 349s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 349s ^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s __________________ test_model_summary_interface[optlang-glpk] __________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_interface(model, opt_solver): 349s """Test that a summary can be created successfully.""" 349s model.solver = opt_solver 349s > ModelSummary( 349s model=model, 349s ) 349s 349s tests/test_summary/test_model_summary.py:12: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s __________________ test_model_summary_to_frame[optlang-glpk] ___________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_to_frame(model, opt_solver): 349s """Test that the summary's method ``to_frame`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:34: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________ test_model_summary_to_string[optlang-glpk-kwargs0] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_model_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:51: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________ test_model_summary_to_string[optlang-glpk-kwargs1] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_model_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:51: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________ test_model_summary_to_string[optlang-glpk-kwargs2] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_model_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:51: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________ test_model_summary_to_string[optlang-glpk-kwargs3] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_model_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:51: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ______________ test_model_summary_to_string[optlang-glpk-kwargs4] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'column_width': 20} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_model_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:51: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_model_summary_to_html[optlang-glpk-kwargs0] _______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_model_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:61: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_model_summary_to_html[optlang-glpk-kwargs1] _______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_model_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:61: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_model_summary_to_html[optlang-glpk-kwargs2] _______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_model_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:61: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_model_summary_to_html[optlang-glpk-kwargs3] _______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_model_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:61: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _________ test_model_summary_to_frame_previous_solution[optlang-glpk] __________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_to_frame_previous_solution(model, opt_solver): 349s """Test that the summary correctly uses an existing solution.""" 349s model.solver = opt_solver 349s solution = pfba(model) 349s rxn = model.reactions.EX_glc__D_e 349s solution.fluxes[rxn.id] = -123 349s > summary = model.summary(solution=solution) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:71: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________________ test_model_summary_flux[optlang-glpk] _____________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_flux(model, opt_solver): 349s """Test that the summary has expected fluxes.""" 349s model.solver = opt_solver 349s > summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:78: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________________ test_model_summary_fva[optlang-glpk] _____________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_fva(model, opt_solver): 349s """Test that the exchange summary is within expected bounds.""" 349s model.solver = opt_solver 349s > summary = model.summary(fva=0.95) 349s ^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:88: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_model_summary_flux_in_context[optlang-glpk] _______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_model_summary_flux_in_context(model, opt_solver): 349s """Test that the model summary inside and outside of a context are equal.""" 349s model.solver = opt_solver 349s copy = model.copy() 349s with model: 349s model.reactions.EX_glc__D_e.bounds = (0, 1000) 349s model.reactions.EX_ac_e.bounds = (-10, 1000) 349s > context_summary = model.summary() 349s ^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_model_summary.py:109: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 349s return ModelSummary(model=self, solution=solution, fva=fva) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 349s self._generate(model, solution, fva) 349s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 349s rxn.copy(): coef for rxn, coef in coefficients.items() 349s ^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ________________ test_reaction_summary_interface[optlang-glpk] _________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_reaction_summary_interface(model, opt_solver): 349s """Test that a summary can be created successfully.""" 349s model.solver = opt_solver 349s reaction = model.reactions.get_by_id("FUM") 349s > ReactionSummary( 349s reaction=reaction, 349s model=model, 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:13: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _________________ test_reaction_summary_to_frame[optlang-glpk] _________________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s 349s def test_reaction_summary_to_frame(model, opt_solver): 349s """Test that the summary's method ``to_frame`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:37: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs0] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_reaction_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:54: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs1] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_reaction_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:54: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs2] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_reaction_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:54: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs3] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_reaction_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:54: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs4] _____________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'column_width': 20} 349s 349s @pytest.mark.parametrize( 349s "kwargs", 349s [ 349s {}, 349s {"names": True}, 349s {"float_format": ".1f"}, 349s {"threshold": 1e-2}, 349s {"column_width": 20}, 349s ], 349s ) 349s def test_reaction_summary_to_string(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_string`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:54: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs0] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_reaction_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:64: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs1] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'names': True} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_reaction_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:64: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs2] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'float_format': '.1f'} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_reaction_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:64: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs3] ______________ 349s 349s model = , opt_solver = 'optlang-glpk' 349s kwargs = {'threshold': 0.01} 349s 349s @pytest.mark.parametrize( 349s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 349s ) 349s def test_reaction_summary_to_html(model, opt_solver, kwargs): 349s """Test that the summary's method ``to_html`` can be called.""" 349s model.solver = opt_solver 349s > summary = model.reactions.get_by_id("FUM").summary() 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s 349s tests/test_summary/test_reaction_summary.py:64: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 349s return ReactionSummary( 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ____________________ test_reaction_summary_flux[ACALD-0.0] _____________________ 349s 349s model = , reaction_id = 'ACALD' 349s expected = 0.0 349s 349s @pytest.mark.parametrize( 349s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 349s ) 349s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 349s """Test that the reported flux in the summary is reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:73: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________________ test_reaction_summary_flux[FUM-5.06] _____________________ 349s 349s model = , reaction_id = 'FUM' 349s expected = 5.06 349s 349s @pytest.mark.parametrize( 349s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 349s ) 349s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 349s """Test that the reported flux in the summary is reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:73: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _____________________ test_reaction_summary_flux[PFK-7.48] _____________________ 349s 349s model = , reaction_id = 'PFK' 349s expected = 7.48 349s 349s @pytest.mark.parametrize( 349s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 349s ) 349s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 349s """Test that the reported flux in the summary is reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:73: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s _______________ test_reaction_summary_flux_fva[ACALD--1.27-0.0] ________________ 349s 349s model = , reaction_id = 'ACALD' 349s min_flux = -1.27, max_flux = 0.0 349s 349s @pytest.mark.parametrize( 349s "reaction_id, min_flux, max_flux", 349s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 349s ) 349s def test_reaction_summary_flux_fva( 349s model, reaction_id: str, min_flux: float, max_flux: float 349s ) -> None: 349s """Test that the reported flux ranges in the summary are reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:89: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ________________ test_reaction_summary_flux_fva[FUM-0.79-7.38] _________________ 349s 349s model = , reaction_id = 'FUM' 349s min_flux = 0.79, max_flux = 7.38 349s 349s @pytest.mark.parametrize( 349s "reaction_id, min_flux, max_flux", 349s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 349s ) 349s def test_reaction_summary_flux_fva( 349s model, reaction_id: str, min_flux: float, max_flux: float 349s ) -> None: 349s """Test that the reported flux ranges in the summary are reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:89: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 349s !!! Recursion detected (same locals & position) 349s ________________ test_reaction_summary_flux_fva[PFK-2.58-16.38] ________________ 349s 349s model = , reaction_id = 'PFK' 349s min_flux = 2.58, max_flux = 16.38 349s 349s @pytest.mark.parametrize( 349s "reaction_id, min_flux, max_flux", 349s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 349s ) 349s def test_reaction_summary_flux_fva( 349s model, reaction_id: str, min_flux: float, max_flux: float 349s ) -> None: 349s """Test that the reported flux ranges in the summary are reasonable.""" 349s > result = ReactionSummary( 349s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 349s ) 349s 349s tests/test_summary/test_reaction_summary.py:89: 349s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 349s self._reaction = reaction.copy() 349s ^^^^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 349s new_reaction = deepcopy(self) 349s ^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:157: in deepcopy 349s y = _reconstruct(x, memo, *rv) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:234: in _reconstruct 349s y = func(*args) 349s ^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:233: in 349s args = (deepcopy(arg, memo) for arg in args) 349s ^^^^^^^^^^^^^^^^^^^ 349s /usr/lib/python3.14/copy.py:138: in deepcopy 349s y = copier(memo) 349s ^^^^^^^^^^^^ 349s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 349s cop = deepcopy(super(Reaction, self), memo) 349s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 349s E RecursionError: maximum recursion depth exceeded 351s !!! Recursion detected (same locals & position) 351s _________________ test_reaction_summary_flux_in_context[ACALD] _________________ 351s 351s model = , reaction_id = 'ACALD' 351s 351s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 351s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 351s """Test that the reaction summary inside and outside of a context are equal.""" 351s with model: 351s > context_summary = model.reactions.get_by_id(reaction_id).summary() 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s 351s tests/test_summary/test_reaction_summary.py:104: 351s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 351s return ReactionSummary( 351s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 351s self._reaction = reaction.copy() 351s ^^^^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 351s new_reaction = deepcopy(self) 351s ^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:157: in deepcopy 351s y = _reconstruct(x, memo, *rv) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:234: in _reconstruct 351s y = func(*args) 351s ^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:233: in 351s args = (deepcopy(arg, memo) for arg in args) 351s ^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s E RecursionError: maximum recursion depth exceeded 351s !!! Recursion detected (same locals & position) 351s __________________ test_reaction_summary_flux_in_context[FUM] __________________ 351s 351s model = , reaction_id = 'FUM' 351s 351s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 351s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 351s """Test that the reaction summary inside and outside of a context are equal.""" 351s with model: 351s > context_summary = model.reactions.get_by_id(reaction_id).summary() 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s 351s tests/test_summary/test_reaction_summary.py:104: 351s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 351s return ReactionSummary( 351s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 351s self._reaction = reaction.copy() 351s ^^^^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 351s new_reaction = deepcopy(self) 351s ^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:157: in deepcopy 351s y = _reconstruct(x, memo, *rv) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:234: in _reconstruct 351s y = func(*args) 351s ^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:233: in 351s args = (deepcopy(arg, memo) for arg in args) 351s ^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s E RecursionError: maximum recursion depth exceeded 351s !!! Recursion detected (same locals & position) 351s __________________ test_reaction_summary_flux_in_context[PFK] __________________ 351s 351s model = , reaction_id = 'PFK' 351s 351s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 351s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 351s """Test that the reaction summary inside and outside of a context are equal.""" 351s with model: 351s > context_summary = model.reactions.get_by_id(reaction_id).summary() 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s 351s tests/test_summary/test_reaction_summary.py:104: 351s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 351s return ReactionSummary( 351s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 351s self._reaction = reaction.copy() 351s ^^^^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 351s new_reaction = deepcopy(self) 351s ^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:157: in deepcopy 351s y = _reconstruct(x, memo, *rv) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:234: in _reconstruct 351s y = func(*args) 351s ^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:233: in 351s args = (deepcopy(arg, memo) for arg in args) 351s ^^^^^^^^^^^^^^^^^^^ 351s /usr/lib/python3.14/copy.py:138: in deepcopy 351s y = copier(memo) 351s ^^^^^^^^^^^^ 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 351s cop = deepcopy(super(Reaction, self), memo) 351s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 351s E RecursionError: maximum recursion depth exceeded 351s !!! Recursion detected (same locals & position) 351s =============================== warnings summary =============================== 351s :491 351s :491: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute 351s 351s :491 351s :491: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute 351s 351s tests/test_core/test_gpr.py::test_and_gpr[a AND b-2-gpr_genes2-a and b] 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_or_gpr[a OR b-2-gpr_genes2-a or b] 351s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[a OR b-symbolic_gpr2] 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 351s tests/test_core/test_gpr.py::test_gpr_from_symbolic[a OR b-symbolic_gpr5] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_complicated_gpr[(a OR b) AND c] 351s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[(a OR b) AND c-symbolic_gpr6] 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_and_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 351s tests/test_core/test_gpr.py::test_gpr_from_symbolic[(a OR b) AND c-symbolic_gpr9] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(a OR b) AND c'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_gpr_that_needs_two_replacements 351s /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)'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b AND a'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b OR a'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b or c'. 351s warn( 351s 351s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_and_strs] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 351s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 351s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b and c'. 351s warn( 351s 351s tests/test_core/test_model.py::test_reaction_delete 351s tests/test_core/test_model.py::test_reaction_delete 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:879: DeprecationWarning: delete is deprecated. Use reaction.remove_from_model instead 351s warn( 351s 351s tests/test_core/test_model.py::test_group_loss_of_elements 351s /usr/lib/python3/dist-packages/cobra/core/group.py:147: UserWarning: need to pass in a list 351s warn("need to pass in a list") 351s 351s tests/test_core/test_model.py::test_change_objective 351s tests/test_core/test_model.py::test_change_objective 351s tests/test_core/test_model.py::test_change_objective 351s /usr/lib/python3/dist-packages/cobra/core/reaction.py:761: DeprecationWarning: Please use reaction.flux instead. 351s warn("Please use reaction.flux instead.", DeprecationWarning) 351s 351s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 351s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 351s /tmp/autopkgtest.jCplDT/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 351s assert math.isnan(sol.growth) 351s 351s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 351s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 351s /tmp/autopkgtest.jCplDT/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 351s assert math.isnan(sol_one.growth) 351s 351s tests/test_flux_analysis/test_gapfilling.py: 980 warnings 351s /tmp/autopkgtest.jCplDT/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 351s return _load(infile) 351s 351s tests/test_flux_analysis/test_gapfilling.py: 4020 warnings 351s /tmp/autopkgtest.jCplDT/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 351s return _load(infile) 351s 351s tests/test_io/test_json.py: 34 warnings 351s tests/test_io/test_mat.py: 34 warnings 351s tests/test_io/test_pickle.py: 34 warnings 351s tests/test_io/test_yaml.py: 34 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s return load(infile) 351s 351s tests/test_io/test_json.py: 11 warnings 351s tests/test_io/test_mat.py: 11 warnings 351s tests/test_io/test_pickle.py: 11 warnings 351s tests/test_io/test_yaml.py: 11 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s return load(infile) 351s 351s tests/test_io/test_json.py: 1 warning 351s tests/test_io/test_mat.py: 5 warnings 351s tests/test_io/test_pickle.py: 1 warning 351s tests/test_io/test_sbml.py: 9 warnings 351s tests/test_io/test_yaml.py: 1 warning 351s /usr/lib/python3/dist-packages/cobra/util/solver.py:554: UserWarning: Solver status is 'infeasible'. 351s warn(f"Solver status is '{status}'.", UserWarning) 351s 351s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 351s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 351s /tmp/autopkgtest.jCplDT/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. 351s return load(infile) 351s 351s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 351s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 351s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 351s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 351s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 351s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 351s /tmp/autopkgtest.jCplDT/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. 351s return load(infile) 351s 351s tests/test_io/test_pickle.py: 34 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s pickle_model = load_function(infile) 351s 351s tests/test_io/test_pickle.py: 11 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s pickle_model = load_function(infile) 351s 351s tests/test_io/test_sbml.py: 136 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s reference_model = load(infile) 351s 351s tests/test_io/test_sbml.py: 44 warnings 351s /tmp/autopkgtest.jCplDT/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. 351s reference_model = load(infile) 351s 351s tests/test_io/test_yaml.py::test_save_yaml_model 351s /tmp/autopkgtest.jCplDT/autopkgtest_tmp/tests/test_io/test_yaml.py:29: PendingDeprecationWarning: 351s you should no longer specify 'unsafe'. 351s For **dumping only** use yaml=YAML(typ='full') 351s 351s yaml = YAML(typ="unsafe") 351s 351s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 351s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 351s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 351s /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]` 351s compartment = most[matches[most]][0] 351s 351s tests/test_util/test_process_pool.py::test_with_context 351s /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 351s self._pool.__enter__() 351s 351s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 351s 351s -------------------------------------------------------------------------------------------------------------------- benchmark: 30 tests -------------------------------------------------------------------------------------------------------------------- 351s Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations 351s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 351s test_subtract_metabolite_benchmark[glpk] 2.2800 (1.0) 30.2400 (1.0) 2.4814 (1.01) 1.0808 (1.26) 2.3600 (1.0) 0.0400 (1.0) 58;638 403,005.1770 (0.99) 4213 1 351s test_subtract_metabolite_benchmark[cplex] 2.3200 (1.02) 34.0800 (1.13) 2.4695 (1.00) 0.8894 (1.04) 2.4000 (1.02) 0.0400 (1.0) 50;658 404,945.1767 (1.00) 4680 1 351s test_subtract_metabolite_benchmark[gurobi] 2.3200 (1.02) 32.7200 (1.08) 2.4575 (1.0) 0.8570 (1.0) 2.4000 (1.02) 0.0400 (1.0) 64;349 406,915.9367 (1.0) 4731 1 351s test_change_objective_benchmark[optlang-glpk] 153.5200 (67.33) 856.1600 (28.31) 177.1538 (72.09) 24.6811 (28.80) 170.4000 (72.20) 24.9400 (623.50) 201;46 5,644.8126 (0.01) 3161 1 351s test_achr_sample_benchmark 160.2800 (70.30) 463.7600 (15.34) 192.6049 (78.37) 32.3016 (37.69) 179.3800 (76.01) 36.0000 (900.00) 126;20 5,191.9760 (0.01) 784 1 351s test_optgp_sample_benchmark 266.8400 (117.04) 804.0000 (26.59) 327.5155 (133.27) 45.4537 (53.04) 315.7200 (133.78) 64.0800 (>1000.0) 299;10 3,053.2907 (0.01) 1171 1 351s test_loopless_benchmark_after 1,227.0800 (538.19) 1,747.8400 (57.80) 1,325.9757 (539.56) 64.2535 (74.97) 1,313.6200 (556.62) 68.8400 (>1000.0) 51;13 754.1617 (0.00) 314 1 351s test_single_gene_deletion_fba_benchmark[glpk] 4,665.0800 (>1000.0) 5,252.0000 (173.68) 4,800.2133 (>1000.0) 93.2284 (108.78) 4,782.0400 (>1000.0) 95.7500 (>1000.0) 42;11 208.3241 (0.00) 177 1 351s test_loopless_benchmark_before 5,289.4800 (>1000.0) 6,116.0800 (202.25) 5,532.6105 (>1000.0) 143.2732 (167.17) 5,511.5200 (>1000.0) 177.0200 (>1000.0) 25;3 180.7465 (0.00) 99 1 351s test_minimal_medium_mip_benchmark 8,141.2800 (>1000.0) 9,363.8000 (309.65) 8,544.9797 (>1000.0) 235.8649 (275.21) 8,543.1600 (>1000.0) 321.1300 (>1000.0) 23;1 117.0278 (0.00) 79 1 351s test_minimal_medium_linear_benchmark 8,217.5200 (>1000.0) 9,639.8800 (318.78) 8,872.9815 (>1000.0) 327.6626 (382.32) 8,838.5800 (>1000.0) 432.5600 (>1000.0) 27;0 112.7017 (0.00) 78 1 351s test_copy_benchmark[optlang-glpk] 12,850.1600 (>1000.0) 176,811.6800 (>1000.0) 15,777.5762 (>1000.0) 18,981.5461 (>1000.0) 13,498.9400 (>1000.0) 374.2800 (>1000.0) 1;6 63.3811 (0.00) 74 1 351s test_gpr_equality_benchmark 16,128.6000 (>1000.0) 18,436.9200 (609.69) 16,578.9089 (>1000.0) 387.0055 (451.56) 16,500.8800 (>1000.0) 352.3200 (>1000.0) 6;2 60.3176 (0.00) 54 1 351s test_single_reaction_deletion_benchmark[glpk] 24,558.9600 (>1000.0) 29,283.1200 (968.36) 25,214.0726 (>1000.0) 816.4973 (952.70) 25,024.2800 (>1000.0) 382.8400 (>1000.0) 4;4 39.6604 (0.00) 38 1 351s test_flux_variability_loopless_benchmark[glpk] 33,382.5200 (>1000.0) 35,009.9200 (>1000.0) 34,016.7911 (>1000.0) 484.2786 (565.06) 33,904.1800 (>1000.0) 524.0400 (>1000.0) 7;1 29.3972 (0.00) 18 1 351s test_fastcc_benchmark[glpk] 56,715.8400 (>1000.0) 60,725.4000 (>1000.0) 58,279.3035 (>1000.0) 1,049.4424 (>1000.0) 57,957.0000 (>1000.0) 1,478.9300 (>1000.0) 5;0 17.1588 (0.00) 17 1 351s test_add_metabolite_benchmark[gurobi] 64,170.4000 (>1000.0) 65,919.8800 (>1000.0) 64,780.4650 (>1000.0) 423.6857 (494.36) 64,726.7800 (>1000.0) 315.4800 (>1000.0) 4;2 15.4368 (0.00) 16 1 351s test_add_metabolite_benchmark[cplex] 64,490.9600 (>1000.0) 69,464.4000 (>1000.0) 66,230.9680 (>1000.0) 1,954.5380 (>1000.0) 65,167.0400 (>1000.0) 3,412.6400 (>1000.0) 4;0 15.0987 (0.00) 15 1 351s test_add_metabolite_benchmark[glpk] 67,889.2800 (>1000.0) 82,159.6000 (>1000.0) 70,068.9920 (>1000.0) 3,488.0097 (>1000.0) 69,140.1600 (>1000.0) 2,020.3700 (>1000.0) 1;1 14.2716 (0.00) 15 1 351s test_gpr_symbolism_benchmark 73,580.0400 (>1000.0) 76,790.2000 (>1000.0) 74,847.4431 (>1000.0) 860.4209 (>1000.0) 74,640.5600 (>1000.0) 637.9900 (>1000.0) 4;2 13.3605 (0.00) 13 1 351s test_double_reaction_deletion_benchmark 100,172.3600 (>1000.0) 102,905.0000 (>1000.0) 101,480.3520 (>1000.0) 1,119.3295 (>1000.0) 101,588.4000 (>1000.0) 1,861.5000 (>1000.0) 2;0 9.8541 (0.00) 5 1 351s test_achr_init_benchmark 116,563.8000 (>1000.0) 120,116.9200 (>1000.0) 118,913.6578 (>1000.0) 1,194.0842 (>1000.0) 118,999.7600 (>1000.0) 1,793.7800 (>1000.0) 2;0 8.4095 (0.00) 9 1 351s test_optgp_init_benchmark 116,841.3600 (>1000.0) 435,041.8000 (>1000.0) 154,259.2711 (>1000.0) 105,329.7330 (>1000.0) 118,338.9600 (>1000.0) 2,950.7400 (>1000.0) 1;2 6.4826 (0.00) 9 1 351s test_single_gene_deletion_linear_moma_benchmark[glpk] 164,855.4000 (>1000.0) 173,486.6000 (>1000.0) 167,470.9533 (>1000.0) 3,202.3663 (>1000.0) 166,805.0800 (>1000.0) 3,094.6800 (>1000.0) 1;1 5.9712 (0.00) 6 1 351s test_single_gene_deletion_linear_room_benchmark[glpk] 233,951.2800 (>1000.0) 247,027.3200 (>1000.0) 238,721.5280 (>1000.0) 4,952.2606 (>1000.0) 237,872.4800 (>1000.0) 4,779.6900 (>1000.0) 1;0 4.1890 (0.00) 5 1 351s test_double_gene_deletion_benchmark 252,765.5600 (>1000.0) 263,045.6800 (>1000.0) 256,930.2640 (>1000.0) 3,939.7723 (>1000.0) 256,075.2400 (>1000.0) 5,170.8800 (>1000.0) 2;0 3.8921 (0.00) 5 1 351s test_copy_benchmark_large_model[optlang-glpk] 281,769.2000 (>1000.0) 453,995.9200 (>1000.0) 317,159.5120 (>1000.0) 76,499.0670 (>1000.0) 283,780.7600 (>1000.0) 44,132.9000 (>1000.0) 1;1 3.1530 (0.00) 5 1 351s test_pfba_benchmark[glpk] 306,008.7200 (>1000.0) 379,157.6000 (>1000.0) 345,419.5680 (>1000.0) 35,143.7155 (>1000.0) 359,877.9600 (>1000.0) 65,735.7900 (>1000.0) 2;0 2.8950 (0.00) 5 1 351s test_geometric_fba_benchmark[glpk] 380,769.4800 (>1000.0) 394,016.9600 (>1000.0) 387,505.1840 (>1000.0) 5,273.2736 (>1000.0) 387,771.0800 (>1000.0) 8,441.0300 (>1000.0) 2;0 2.5806 (0.00) 5 1 351s test_flux_variability_benchmark[glpk] 479,957.9600 (>1000.0) 486,504.4000 (>1000.0) 482,934.0240 (>1000.0) 2,882.8137 (>1000.0) 483,223.1200 (>1000.0) 5,180.5700 (>1000.0) 2;0 2.0707 (0.00) 5 1 351s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 351s 351s Legend: 351s Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. 351s OPS: Operations Per Second, computed as 1 / Mean 351s =========================== short test summary info ============================ 351s FAILED tests/test_core/test_core_reaction.py::test_copy - RecursionError: max... 351s FAILED tests/test_core/test_core_reaction.py::test_add - RecursionError: maxi... 351s FAILED tests/test_core/test_core_reaction.py::test_radd - RecursionError: max... 351s FAILED tests/test_core/test_core_reaction.py::test_mul - RecursionError: maxi... 351s FAILED tests/test_core/test_core_reaction.py::test_sub - RecursionError: maxi... 351s FAILED tests/test_core/test_model.py::test_deepcopy_benchmark - RecursionErro... 351s FAILED tests/test_core/test_model.py::test_deepcopy - RecursionError: maximum... 351s FAILED tests/test_core/test_model.py::test_merge_models - RecursionError: max... 351s FAILED tests/test_flux_analysis/test_gapfilling.py::test_gapfilling - Recursi... 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_interface[optlang-glpk] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_frame[optlang-glpk] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs4] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_producing_summary[optlang-glpk] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_consuming_summary[optlang-glpk] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_fdp_production_with_fva[optlang-glpk] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] 351s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_interface[optlang-glpk] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame[optlang-glpk] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs4] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame_previous_solution[optlang-glpk] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux[optlang-glpk] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_fva[optlang-glpk] 351s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux_in_context[optlang-glpk] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_interface[optlang-glpk] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_frame[optlang-glpk] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs4] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs0] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs1] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs2] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs3] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[ACALD-0.0] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[FUM-5.06] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[PFK-7.48] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[ACALD--1.27-0.0] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[FUM-0.79-7.38] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[PFK-2.58-16.38] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[ACALD] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[FUM] 351s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[PFK] 351s = 61 failed, 455 passed, 27 skipped, 10 xfailed, 1 xpassed, 5490 warnings in 129.97s (0:02:09) = 353s autopkgtest [23:53:00]: test run-unit-test: -----------------------] 353s run-unit-test FAIL non-zero exit status 1 353s autopkgtest [23:53:00]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 354s autopkgtest [23:53:01]: @@@@@@@@@@@@@@@@@@@@ summary 354s run-unit-test FAIL non-zero exit status 1