0s autopkgtest [18:18:52]: starting date and time: 2026-02-09 18:18:52+0000 0s autopkgtest [18:18:52]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [18:18:52]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work._y1jf4ix/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:libsbml,src:apbs,src:binutils,src:bornagain,src:ccls,src:cp2k,src:createrepo-c,src:dolfinx-mpc,src:dracut,src:gcc-15,src:gcc-16,src:gcc-snapshot,src:gdm3,src:glycin,src:gnuradio,src:hkl,src:hmmer,src:lammps,src:libixion,src:liborcus,src:libpeas,src:libreoffice,src:link-grammar,src:mosquitto,src:nodejs,src:open-iscsi,src:opencamlib,src:orthanc-python,src:psychopy,src:pyside2,src:python-pyvista,src:python3-defaults,src:rumur,src:trojan,src:wmanager,src:zxing-cpp --apt-upgrade python-cobra --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=libsbml/5.20.5+dfsg-2 apbs/3.4.1-7build1 binutils/2.46-1ubuntu1 bornagain/23.0-5build1 ccls/0.20250815-0ubuntu1 cp2k/2025.2-3 createrepo-c/1.2.1-2build1 dolfinx-mpc/0.10.1-1build1 dracut/110-1ubuntu1 gcc-15/15.2.0-13ubuntu3 gcc-16/16-20260208-1ubuntu1 gcc-snapshot/1:20260203-0ubuntu3 gdm3/50~alpha.1-0ubuntu1 glycin/2.0.7+ds-4ubuntu1 gnuradio/3.10.12.0-5.1ubuntu1 hkl/5.1.4-1 hmmer/3.4+dfsg-3 lammps/20251210+dfsg-1build1 libixion/0.20.0-7 liborcus/0.21.0-4 libpeas/1.38.1-1ubuntu2 libreoffice/4:25.8.4~rc2-0ubuntu3 link-grammar/5.13.0+dfsg-1build1 mosquitto/2.0.22-5 nodejs/22.22.0+dfsg+~cs22.19.6-1ubuntu3 open-iscsi/2.1.11-3ubuntu2 opencamlib/2023.01.11-6 orthanc-python/7.0+ds-1build2 psychopy/2023.2.4+dfsg-4 pyside2/5.15.18-1build1 python-pyvista/0.46.5-7 python3-defaults/3.14.2-1 rumur/2025.08.31-1 trojan/1.16.0-1.1build4 wmanager/0.3.1-3build1 zxing-cpp/2.3.0-5' -- lxd -r lxd-armhf-10.145.243.176 lxd-armhf-10.145.243.176:autopkgtest/ubuntu/resolute/armhf 21s autopkgtest [18:19:13]: testbed dpkg architecture: armhf 23s autopkgtest [18:19:15]: testbed apt version: 3.1.15 27s autopkgtest [18:19:19]: @@@@@@@@@@@@@@@@@@@@ test bed setup 29s autopkgtest [18:19:21]: testbed release detected to be: None 37s autopkgtest [18:19:29]: updating testbed package index (apt update) 39s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 39s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 39s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [124 kB] 39s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [124 kB] 39s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [29.4 kB] 39s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1630 kB] 40s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [1764 B] 40s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [174 kB] 40s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [245 kB] 41s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1403 kB] 41s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [7452 B] 41s Get:12 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 43s Get:13 http://ftpmaster.internal/ubuntu resolute/restricted Sources [15.1 kB] 43s Get:14 http://ftpmaster.internal/ubuntu resolute/main Sources [1412 kB] 43s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1374 kB] 43s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.1 MB] 47s Fetched 43.2 MB in 8s (5108 kB/s) 48s Reading package lists... 54s autopkgtest [18:19:46]: upgrading testbed (apt dist-upgrade and autopurge) 56s Reading package lists... 56s Building dependency tree... 56s Reading state information... 57s Calculating upgrade... 58s The following packages were automatically installed and are no longer required: 58s libpython3.13-minimal libpython3.13-stdlib python3.13 python3.13-minimal 58s Use 'apt autoremove' to remove them. 58s The following NEW packages will be installed: 58s gcc-16-base libpython3.14-minimal libpython3.14-stdlib python3.14 58s python3.14-minimal 58s The following packages will be upgraded: 58s binutils binutils-arm-linux-gnueabihf binutils-common cryptsetup-bin 58s dracut-install gcc-15-base iproute2 iptables libatomic1 libbinutils 58s libcryptsetup12 libctf-nobfd0 libctf0 libgcc-s1 libip4tc2 libip6tc2 58s libpython3-stdlib libsframe3 libstdc++6 libxtables12 python3 python3-gdbm 58s python3-minimal wget 58s 24 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 58s Need to get 11.4 MB of archives. 58s After this operation, 22.9 MB of additional disk space will be used. 58s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-minimal armhf 3.14.2-1 [905 kB] 59s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-minimal armhf 3.14.2-1 [2155 kB] 59s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3-minimal armhf 3.14.2-1 [28.2 kB] 59s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3 armhf 3.14.2-1 [22.9 kB] 59s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-stdlib armhf 3.14.2-1 [2270 kB] 59s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14 armhf 3.14.2-1 [816 kB] 59s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libpython3-stdlib armhf 3.14.2-1 [10.9 kB] 59s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf gcc-16-base armhf 16-20260208-1ubuntu1 [59.7 kB] 59s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgcc-s1 armhf 16-20260208-1ubuntu1 [40.6 kB] 59s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libstdc++6 armhf 16-20260208-1ubuntu1 [736 kB] 59s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libatomic1 armhf 16-20260208-1ubuntu1 [7884 B] 59s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf gcc-15-base armhf 15.2.0-13ubuntu3 [60.1 kB] 59s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf iptables armhf 1.8.11-2ubuntu3 [345 kB] 59s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libip4tc2 armhf 1.8.11-2ubuntu3 [22.0 kB] 59s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libip6tc2 armhf 1.8.11-2ubuntu3 [22.3 kB] 59s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libxtables12 armhf 1.8.11-2ubuntu3 [33.5 kB] 59s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf iproute2 armhf 6.18.0-1ubuntu1 [1123 kB] 59s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf libcryptsetup12 armhf 2:2.8.0-1ubuntu3 [254 kB] 59s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3-gdbm armhf 3.14.2-1 [11.1 kB] 59s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf wget armhf 1.25.0-2ubuntu4 [327 kB] 59s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libctf0 armhf 2.46-1ubuntu1 [75.6 kB] 59s Get:22 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libctf-nobfd0 armhf 2.46-1ubuntu1 [78.3 kB] 59s Get:23 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils-arm-linux-gnueabihf armhf 2.46-1ubuntu1 [1030 kB] 59s Get:24 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libbinutils armhf 2.46-1ubuntu1 [413 kB] 59s Get:25 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils armhf 2.46-1ubuntu1 [3252 B] 59s Get:26 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf binutils-common armhf 2.46-1ubuntu1 [222 kB] 59s Get:27 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libsframe3 armhf 2.46-1ubuntu1 [16.4 kB] 59s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf cryptsetup-bin armhf 2:2.8.0-1ubuntu3 [232 kB] 59s Get:29 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf dracut-install armhf 110-1ubuntu1 [48.3 kB] 60s Preconfiguring packages ... 60s Fetched 11.4 MB in 1s (8958 kB/s) 60s Selecting previously unselected package libpython3.14-minimal:armhf. 60s (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 ... 68683 files and directories currently installed.) 60s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_armhf.deb ... 60s Unpacking libpython3.14-minimal:armhf (3.14.2-1) ... 60s Selecting previously unselected package python3.14-minimal. 60s Preparing to unpack .../python3.14-minimal_3.14.2-1_armhf.deb ... 60s Unpacking python3.14-minimal (3.14.2-1) ... 61s Setting up libpython3.14-minimal:armhf (3.14.2-1) ... 61s Setting up python3.14-minimal (3.14.2-1) ... 62s (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 ... 69025 files and directories currently installed.) 62s Preparing to unpack .../python3-minimal_3.14.2-1_armhf.deb ... 62s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 62s Setting up python3-minimal (3.14.2-1) ... 62s (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 ... 69025 files and directories currently installed.) 62s Preparing to unpack .../python3_3.14.2-1_armhf.deb ... 63s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 63s Selecting previously unselected package libpython3.14-stdlib:armhf. 63s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_armhf.deb ... 63s Unpacking libpython3.14-stdlib:armhf (3.14.2-1) ... 63s Selecting previously unselected package python3.14. 63s Preparing to unpack .../python3.14_3.14.2-1_armhf.deb ... 63s Unpacking python3.14 (3.14.2-1) ... 63s Preparing to unpack .../libpython3-stdlib_3.14.2-1_armhf.deb ... 63s Unpacking libpython3-stdlib:armhf (3.14.2-1) over (3.13.9-3) ... 63s Selecting previously unselected package gcc-16-base:armhf. 63s Preparing to unpack .../gcc-16-base_16-20260208-1ubuntu1_armhf.deb ... 63s Unpacking gcc-16-base:armhf (16-20260208-1ubuntu1) ... 63s Setting up gcc-16-base:armhf (16-20260208-1ubuntu1) ... 63s (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 ... 69462 files and directories currently installed.) 63s Preparing to unpack .../libgcc-s1_16-20260208-1ubuntu1_armhf.deb ... 63s Unpacking libgcc-s1:armhf (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 63s Setting up libgcc-s1:armhf (16-20260208-1ubuntu1) ... 63s (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 ... 69462 files and directories currently installed.) 63s Preparing to unpack .../libstdc++6_16-20260208-1ubuntu1_armhf.deb ... 63s Unpacking libstdc++6:armhf (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 63s Setting up libstdc++6:armhf (16-20260208-1ubuntu1) ... 63s (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 ... 69462 files and directories currently installed.) 63s Preparing to unpack .../00-libatomic1_16-20260208-1ubuntu1_armhf.deb ... 63s Unpacking libatomic1:armhf (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 63s Preparing to unpack .../01-gcc-15-base_15.2.0-13ubuntu3_armhf.deb ... 63s Unpacking gcc-15-base:armhf (15.2.0-13ubuntu3) over (15.2.0-12ubuntu1) ... 63s Preparing to unpack .../02-iptables_1.8.11-2ubuntu3_armhf.deb ... 63s Unpacking iptables (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 63s Preparing to unpack .../03-libip4tc2_1.8.11-2ubuntu3_armhf.deb ... 63s Unpacking libip4tc2:armhf (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 64s Preparing to unpack .../04-libip6tc2_1.8.11-2ubuntu3_armhf.deb ... 64s Unpacking libip6tc2:armhf (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 64s Preparing to unpack .../05-libxtables12_1.8.11-2ubuntu3_armhf.deb ... 64s Unpacking libxtables12:armhf (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 64s Preparing to unpack .../06-iproute2_6.18.0-1ubuntu1_armhf.deb ... 64s Unpacking iproute2 (6.18.0-1ubuntu1) over (6.16.0-1ubuntu3) ... 64s Preparing to unpack .../07-libcryptsetup12_2%3a2.8.0-1ubuntu3_armhf.deb ... 64s Unpacking libcryptsetup12:armhf (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 64s Preparing to unpack .../08-python3-gdbm_3.14.2-1_armhf.deb ... 64s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 64s Preparing to unpack .../09-wget_1.25.0-2ubuntu4_armhf.deb ... 64s Unpacking wget (1.25.0-2ubuntu4) over (1.25.0-2ubuntu3) ... 64s Preparing to unpack .../10-libctf0_2.46-1ubuntu1_armhf.deb ... 64s Unpacking libctf0:armhf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../11-libctf-nobfd0_2.46-1ubuntu1_armhf.deb ... 64s Unpacking libctf-nobfd0:armhf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../12-binutils-arm-linux-gnueabihf_2.46-1ubuntu1_armhf.deb ... 64s Unpacking binutils-arm-linux-gnueabihf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../13-libbinutils_2.46-1ubuntu1_armhf.deb ... 64s Unpacking libbinutils:armhf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../14-binutils_2.46-1ubuntu1_armhf.deb ... 64s Unpacking binutils (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../15-binutils-common_2.46-1ubuntu1_armhf.deb ... 64s Unpacking binutils-common:armhf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../16-libsframe3_2.46-1ubuntu1_armhf.deb ... 64s Unpacking libsframe3:armhf (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 64s Preparing to unpack .../17-cryptsetup-bin_2%3a2.8.0-1ubuntu3_armhf.deb ... 64s Unpacking cryptsetup-bin (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 64s Preparing to unpack .../18-dracut-install_110-1ubuntu1_armhf.deb ... 64s Unpacking dracut-install (110-1ubuntu1) over (109-9ubuntu1) ... 65s Setting up libip4tc2:armhf (1.8.11-2ubuntu3) ... 65s Setting up wget (1.25.0-2ubuntu4) ... 65s Setting up libpython3.14-stdlib:armhf (3.14.2-1) ... 65s Setting up libip6tc2:armhf (1.8.11-2ubuntu3) ... 65s Setting up binutils-common:armhf (2.46-1ubuntu1) ... 65s Setting up libsframe3:armhf (2.46-1ubuntu1) ... 65s Setting up libctf-nobfd0:armhf (2.46-1ubuntu1) ... 65s Setting up libatomic1:armhf (16-20260208-1ubuntu1) ... 65s Setting up libxtables12:armhf (1.8.11-2ubuntu3) ... 65s Setting up dracut-install (110-1ubuntu1) ... 65s Setting up libcryptsetup12:armhf (2:2.8.0-1ubuntu3) ... 65s Setting up python3.14 (3.14.2-1) ... 66s Setting up libbinutils:armhf (2.46-1ubuntu1) ... 66s Setting up gcc-15-base:armhf (15.2.0-13ubuntu3) ... 66s Setting up libpython3-stdlib:armhf (3.14.2-1) ... 66s Setting up libctf0:armhf (2.46-1ubuntu1) ... 66s Setting up cryptsetup-bin (2:2.8.0-1ubuntu3) ... 66s Setting up python3-gdbm (3.14.2-1) ... 66s Setting up iptables (1.8.11-2ubuntu3) ... 66s Setting up iproute2 (6.18.0-1ubuntu1) ... 66s Setting up python3 (3.14.2-1) ... 66s Setting up binutils-arm-linux-gnueabihf (2.46-1ubuntu1) ... 66s Setting up binutils (2.46-1ubuntu1) ... 66s Processing triggers for install-info (7.2-5) ... 67s Processing triggers for libc-bin (2.42-2ubuntu4) ... 67s Processing triggers for systemd (259-1ubuntu3) ... 67s Processing triggers for man-db (2.13.1-1build1) ... 70s Reading package lists... 70s Building dependency tree... 70s Reading state information... 70s Solving dependencies... 71s The following packages will be REMOVED: 71s libpython3.13-minimal* libpython3.13-stdlib* python3.13* python3.13-minimal* 72s 0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded. 72s After this operation, 21.3 MB disk space will be freed. 72s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 69463 files and directories currently installed.) 72s Removing python3.13 (3.13.11-1) ... 72s Removing libpython3.13-stdlib:armhf (3.13.11-1) ... 72s Removing python3.13-minimal (3.13.11-1) ... 74s Removing libpython3.13-minimal:armhf (3.13.11-1) ... 74s Processing triggers for man-db (2.13.1-1build1) ... 74s Processing triggers for systemd (259-1ubuntu3) ... 74s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 68724 files and directories currently installed.) 74s Purging configuration files for libpython3.13-minimal:armhf (3.13.11-1) ... 74s Purging configuration files for python3.13-minimal (3.13.11-1) ... 76s autopkgtest [18:20:08]: rebooting testbed after setup commands that affected boot 117s autopkgtest [18:20:49]: testbed running kernel: Linux 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:00:09 UTC 2 141s autopkgtest [18:21:13]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cobra 155s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (dsc) [3080 B] 155s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (tar) [3651 kB] 155s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (diff) [11.1 kB] 156s gpgv: Signature made Wed Jul 2 22:43:59 2025 UTC 156s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 156s gpgv: issuer "tchet@debian.org" 156s gpgv: Can't check signature: No public key 156s dpkg-source: warning: cannot verify inline signature for ./python-cobra_0.29.1-3.dsc: no acceptable signature found 156s autopkgtest [18:21:28]: testing package python-cobra version 0.29.1-3 158s autopkgtest [18:21:30]: build not needed 163s autopkgtest [18:21:35]: test run-unit-test: preparing testbed 165s Reading package lists... 165s Building dependency tree... 165s Reading state information... 166s Solving dependencies... 166s The following NEW packages will be installed: 166s diffstat gettext libamd3 libblas3 libcolamd3 libgfortran5 libglpk40 libgomp1 166s liblapack3 libltdl7 libpython3.14 libqhull-r8.0 libsuitesparseconfig7 166s python-cobra-data python3-annotated-types python3-anyio python3-click 166s python3-cobra python3-cpuinfo python3-decorator python3-depinfo 166s python3-diskcache python3-dnspython python3-email-validator python3-h11 166s python3-httpcore python3-httpx python3-iniconfig python3-mpmath 166s python3-numpy python3-numpy-dev python3-optlang python3-pandas 166s python3-pandas-lib python3-platformdirs python3-pluggy python3-pydantic 166s python3-pydantic-core python3-pytest python3-pytest-benchmark 166s python3-pytest-mock python3-pytz python3-ruamel.yaml 166s python3-ruamel.yaml.clib python3-sbml5 python3-scipy python3-sniffio 166s python3-swiglpk python3-sympy python3-tabulate python3-typing-inspection 166s quilt 167s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 167s Need to get 60.5 MB of archives. 167s After this operation, 288 MB of additional disk space will be used. 167s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf python3-numpy-dev armhf 1:2.3.5+ds-3 [141 kB] 167s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libblas3 armhf 3.12.1-7ubuntu1 [133 kB] 167s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgfortran5 armhf 16-20260208-1ubuntu1 [335 kB] 167s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf liblapack3 armhf 3.12.1-7ubuntu1 [2090 kB] 167s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf python3-numpy armhf 1:2.3.5+ds-3 [4729 kB] 167s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf diffstat armhf 1.68-1 [28.5 kB] 167s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libgomp1 armhf 16-20260208-1ubuntu1 [134 kB] 167s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.2-1 [1059 kB] 167s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libsuitesparseconfig7 armhf 1:7.12.1+dfsg-1 [21.4 kB] 167s Get:10 http://ftpmaster.internal/ubuntu resolute/universe armhf libamd3 armhf 1:7.12.1+dfsg-1 [37.5 kB] 167s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libcolamd3 armhf 1:7.12.1+dfsg-1 [28.2 kB] 167s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libltdl7 armhf 2.5.4-9 [40.4 kB] 167s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libglpk40 armhf 5.0-2 [325 kB] 167s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14 armhf 3.14.2-1 [2213 kB] 168s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libqhull-r8.0 armhf 2020.2-8 [175 kB] 168s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf python-cobra-data all 0.29.1-3 [1611 kB] 168s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-annotated-types all 0.7.0-1 [19.4 kB] 168s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-sniffio all 1.3.1-1 [7262 B] 168s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-anyio all 4.11.0-3 [72.6 kB] 168s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 168s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-depinfo armhf 2.2.0-4 [11.2 kB] 168s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-diskcache all 5.6.3-1 [35.1 kB] 168s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-h11 all 0.14.0-1.1 [51.6 kB] 168s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-httpcore all 1.0.9-1 [38.9 kB] 168s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-httpx all 0.28.1-1build1 [59.4 kB] 168s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-swiglpk armhf 5.0.10-2build3 [96.4 kB] 168s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-mpmath all 1.3.0-2 [423 kB] 168s Get:28 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-sympy all 1.14.0-2 [4306 kB] 168s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-optlang all 1.8.3-1 [5368 kB] 168s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytz all 2025.2-5 [32.4 kB] 168s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pandas-lib armhf 2.3.3+dfsg-3 [7022 kB] 169s Get:32 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pandas all 2.3.3+dfsg-3 [2948 kB] 169s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf python3-platformdirs all 4.5.1-1 [17.1 kB] 169s Get:34 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pydantic-core armhf 2.41.5-2 [2274 kB] 169s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-typing-inspection all 0.4.2-1 [13.1 kB] 169s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 169s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-email-validator all 2.2.0-1 [28.5 kB] 169s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pydantic armhf 2.12.5-2 [312 kB] 169s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml.clib armhf 0.2.15+ds-1 [183 kB] 169s Get:40 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 169s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf python3-tabulate all 0.9.0-1build1 [45.4 kB] 169s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-sbml5 armhf 5.20.5+dfsg-2 [3390 kB] 169s Get:43 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-cobra armhf 0.29.1-3 [1118 kB] 169s Get:44 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-cpuinfo all 9.0.0+git20221119-3 [21.7 kB] 169s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf python3-decorator all 5.2.1-2 [28.1 kB] 169s Get:46 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniconfig all 2.1.0-2 [6962 B] 169s Get:47 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pluggy all 1.6.0-2 [21.1 kB] 169s Get:48 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest all 9.0.2-2 [277 kB] 169s Get:49 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest-benchmark all 5.2.3-1 [40.0 kB] 169s Get:50 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest-mock all 3.15.1-1 [11.9 kB] 169s Get:51 http://ftpmaster.internal/ubuntu resolute/universe armhf quilt all 0.68-1 [439 kB] 169s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-scipy armhf 1.16.3-4 [18.3 MB] 171s Fetched 60.5 MB in 4s (16.6 MB/s) 171s Selecting previously unselected package python3-numpy-dev:armhf. 171s (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 ... 68724 files and directories currently installed.) 171s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_armhf.deb ... 171s Unpacking python3-numpy-dev:armhf (1:2.3.5+ds-3) ... 171s Selecting previously unselected package libblas3:armhf. 171s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_armhf.deb ... 171s Unpacking libblas3:armhf (3.12.1-7ubuntu1) ... 171s Selecting previously unselected package libgfortran5:armhf. 171s Preparing to unpack .../02-libgfortran5_16-20260208-1ubuntu1_armhf.deb ... 171s Unpacking libgfortran5:armhf (16-20260208-1ubuntu1) ... 171s Selecting previously unselected package liblapack3:armhf. 171s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_armhf.deb ... 171s Unpacking liblapack3:armhf (3.12.1-7ubuntu1) ... 171s Selecting previously unselected package python3-numpy. 171s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_armhf.deb ... 171s Unpacking python3-numpy (1:2.3.5+ds-3) ... 171s Selecting previously unselected package diffstat. 171s Preparing to unpack .../05-diffstat_1.68-1_armhf.deb ... 171s Unpacking diffstat (1.68-1) ... 171s Selecting previously unselected package libgomp1:armhf. 171s Preparing to unpack .../06-libgomp1_16-20260208-1ubuntu1_armhf.deb ... 171s Unpacking libgomp1:armhf (16-20260208-1ubuntu1) ... 171s Selecting previously unselected package gettext. 171s Preparing to unpack .../07-gettext_0.23.2-1_armhf.deb ... 171s Unpacking gettext (0.23.2-1) ... 171s Selecting previously unselected package libsuitesparseconfig7:armhf. 171s Preparing to unpack .../08-libsuitesparseconfig7_1%3a7.12.1+dfsg-1_armhf.deb ... 171s Unpacking libsuitesparseconfig7:armhf (1:7.12.1+dfsg-1) ... 172s Selecting previously unselected package libamd3:armhf. 172s Preparing to unpack .../09-libamd3_1%3a7.12.1+dfsg-1_armhf.deb ... 172s Unpacking libamd3:armhf (1:7.12.1+dfsg-1) ... 172s Selecting previously unselected package libcolamd3:armhf. 172s Preparing to unpack .../10-libcolamd3_1%3a7.12.1+dfsg-1_armhf.deb ... 172s Unpacking libcolamd3:armhf (1:7.12.1+dfsg-1) ... 172s Selecting previously unselected package libltdl7:armhf. 172s Preparing to unpack .../11-libltdl7_2.5.4-9_armhf.deb ... 172s Unpacking libltdl7:armhf (2.5.4-9) ... 172s Selecting previously unselected package libglpk40:armhf. 172s Preparing to unpack .../12-libglpk40_5.0-2_armhf.deb ... 172s Unpacking libglpk40:armhf (5.0-2) ... 172s Selecting previously unselected package libpython3.14:armhf. 172s Preparing to unpack .../13-libpython3.14_3.14.2-1_armhf.deb ... 172s Unpacking libpython3.14:armhf (3.14.2-1) ... 172s Selecting previously unselected package libqhull-r8.0:armhf. 172s Preparing to unpack .../14-libqhull-r8.0_2020.2-8_armhf.deb ... 172s Unpacking libqhull-r8.0:armhf (2020.2-8) ... 172s Selecting previously unselected package python-cobra-data. 172s Preparing to unpack .../15-python-cobra-data_0.29.1-3_all.deb ... 172s Unpacking python-cobra-data (0.29.1-3) ... 172s Selecting previously unselected package python3-annotated-types. 172s Preparing to unpack .../16-python3-annotated-types_0.7.0-1_all.deb ... 172s Unpacking python3-annotated-types (0.7.0-1) ... 172s Selecting previously unselected package python3-sniffio. 172s Preparing to unpack .../17-python3-sniffio_1.3.1-1_all.deb ... 172s Unpacking python3-sniffio (1.3.1-1) ... 172s Selecting previously unselected package python3-anyio. 172s Preparing to unpack .../18-python3-anyio_4.11.0-3_all.deb ... 172s Unpacking python3-anyio (4.11.0-3) ... 172s Selecting previously unselected package python3-click. 172s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 172s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 172s Selecting previously unselected package python3-depinfo. 172s Preparing to unpack .../20-python3-depinfo_2.2.0-4_armhf.deb ... 172s Unpacking python3-depinfo (2.2.0-4) ... 172s Selecting previously unselected package python3-diskcache. 172s Preparing to unpack .../21-python3-diskcache_5.6.3-1_all.deb ... 172s Unpacking python3-diskcache (5.6.3-1) ... 172s Selecting previously unselected package python3-h11. 172s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 172s Unpacking python3-h11 (0.14.0-1.1) ... 172s Selecting previously unselected package python3-httpcore. 172s Preparing to unpack .../23-python3-httpcore_1.0.9-1_all.deb ... 172s Unpacking python3-httpcore (1.0.9-1) ... 172s Selecting previously unselected package python3-httpx. 172s Preparing to unpack .../24-python3-httpx_0.28.1-1build1_all.deb ... 172s Unpacking python3-httpx (0.28.1-1build1) ... 172s Selecting previously unselected package python3-swiglpk. 172s Preparing to unpack .../25-python3-swiglpk_5.0.10-2build3_armhf.deb ... 172s Unpacking python3-swiglpk (5.0.10-2build3) ... 172s Selecting previously unselected package python3-mpmath. 172s Preparing to unpack .../26-python3-mpmath_1.3.0-2_all.deb ... 172s Unpacking python3-mpmath (1.3.0-2) ... 172s Selecting previously unselected package python3-sympy. 173s Preparing to unpack .../27-python3-sympy_1.14.0-2_all.deb ... 173s Unpacking python3-sympy (1.14.0-2) ... 173s Selecting previously unselected package python3-optlang. 173s Preparing to unpack .../28-python3-optlang_1.8.3-1_all.deb ... 173s Unpacking python3-optlang (1.8.3-1) ... 173s Selecting previously unselected package python3-pytz. 173s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 173s Unpacking python3-pytz (2025.2-5) ... 173s Selecting previously unselected package python3-pandas-lib:armhf. 173s Preparing to unpack .../30-python3-pandas-lib_2.3.3+dfsg-3_armhf.deb ... 173s Unpacking python3-pandas-lib:armhf (2.3.3+dfsg-3) ... 173s Selecting previously unselected package python3-pandas. 173s Preparing to unpack .../31-python3-pandas_2.3.3+dfsg-3_all.deb ... 173s Unpacking python3-pandas (2.3.3+dfsg-3) ... 174s Selecting previously unselected package python3-platformdirs. 174s Preparing to unpack .../32-python3-platformdirs_4.5.1-1_all.deb ... 174s Unpacking python3-platformdirs (4.5.1-1) ... 174s Selecting previously unselected package python3-pydantic-core. 174s Preparing to unpack .../33-python3-pydantic-core_2.41.5-2_armhf.deb ... 174s Unpacking python3-pydantic-core (2.41.5-2) ... 174s Selecting previously unselected package python3-typing-inspection. 174s Preparing to unpack .../34-python3-typing-inspection_0.4.2-1_all.deb ... 174s Unpacking python3-typing-inspection (0.4.2-1) ... 174s Selecting previously unselected package python3-dnspython. 174s Preparing to unpack .../35-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 174s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 174s Selecting previously unselected package python3-email-validator. 174s Preparing to unpack .../36-python3-email-validator_2.2.0-1_all.deb ... 174s Unpacking python3-email-validator (2.2.0-1) ... 174s Selecting previously unselected package python3-pydantic. 174s Preparing to unpack .../37-python3-pydantic_2.12.5-2_armhf.deb ... 174s Unpacking python3-pydantic (2.12.5-2) ... 174s Selecting previously unselected package python3-ruamel.yaml.clib. 174s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_armhf.deb ... 174s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 174s Selecting previously unselected package python3-ruamel.yaml. 174s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 174s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 174s Selecting previously unselected package python3-tabulate. 174s Preparing to unpack .../40-python3-tabulate_0.9.0-1build1_all.deb ... 174s Unpacking python3-tabulate (0.9.0-1build1) ... 174s Selecting previously unselected package python3-sbml5. 174s Preparing to unpack .../41-python3-sbml5_5.20.5+dfsg-2_armhf.deb ... 174s Unpacking python3-sbml5 (5.20.5+dfsg-2) ... 174s Selecting previously unselected package python3-cobra. 174s Preparing to unpack .../42-python3-cobra_0.29.1-3_armhf.deb ... 174s Unpacking python3-cobra (0.29.1-3) ... 174s Selecting previously unselected package python3-cpuinfo. 174s Preparing to unpack .../43-python3-cpuinfo_9.0.0+git20221119-3_all.deb ... 174s Unpacking python3-cpuinfo (9.0.0+git20221119-3) ... 174s Selecting previously unselected package python3-decorator. 174s Preparing to unpack .../44-python3-decorator_5.2.1-2_all.deb ... 174s Unpacking python3-decorator (5.2.1-2) ... 174s Selecting previously unselected package python3-iniconfig. 174s Preparing to unpack .../45-python3-iniconfig_2.1.0-2_all.deb ... 174s Unpacking python3-iniconfig (2.1.0-2) ... 174s Selecting previously unselected package python3-pluggy. 174s Preparing to unpack .../46-python3-pluggy_1.6.0-2_all.deb ... 174s Unpacking python3-pluggy (1.6.0-2) ... 174s Selecting previously unselected package python3-pytest. 175s Preparing to unpack .../47-python3-pytest_9.0.2-2_all.deb ... 175s Unpacking python3-pytest (9.0.2-2) ... 175s Selecting previously unselected package python3-pytest-benchmark. 175s Preparing to unpack .../48-python3-pytest-benchmark_5.2.3-1_all.deb ... 175s Unpacking python3-pytest-benchmark (5.2.3-1) ... 175s Selecting previously unselected package python3-pytest-mock. 175s Preparing to unpack .../49-python3-pytest-mock_3.15.1-1_all.deb ... 175s Unpacking python3-pytest-mock (3.15.1-1) ... 175s Selecting previously unselected package quilt. 175s Preparing to unpack .../50-quilt_0.68-1_all.deb ... 175s Unpacking quilt (0.68-1) ... 175s Selecting previously unselected package python3-scipy. 175s Preparing to unpack .../51-python3-scipy_1.16.3-4_armhf.deb ... 175s Unpacking python3-scipy (1.16.3-4) ... 175s Setting up python3-iniconfig (2.1.0-2) ... 176s Setting up python3-sniffio (1.3.1-1) ... 176s Setting up python3-pydantic-core (2.41.5-2) ... 176s Setting up python3-typing-inspection (0.4.2-1) ... 176s Setting up python3-anyio (4.11.0-3) ... 177s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 177s Setting up python3-tabulate (0.9.0-1build1) ... 177s Setting up libqhull-r8.0:armhf (2020.2-8) ... 177s Setting up python3-pytz (2025.2-5) ... 177s Setting up libgomp1:armhf (16-20260208-1ubuntu1) ... 177s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 177s Setting up python3-annotated-types (0.7.0-1) ... 178s Setting up python3-platformdirs (4.5.1-1) ... 178s Setting up python3-decorator (5.2.1-2) ... 178s Setting up libblas3:armhf (3.12.1-7ubuntu1) ... 178s update-alternatives: using /usr/lib/arm-linux-gnueabihf/blas/libblas.so.3 to provide /usr/lib/arm-linux-gnueabihf/libblas.so.3 (libblas.so.3-arm-linux-gnueabihf) in auto mode 178s Setting up diffstat (1.68-1) ... 178s Setting up python3-numpy-dev:armhf (1:2.3.5+ds-3) ... 178s Setting up python3-h11 (0.14.0-1.1) ... 178s Setting up python3-depinfo (2.2.0-4) ... 178s Setting up python3-cpuinfo (9.0.0+git20221119-3) ... 179s Setting up libltdl7:armhf (2.5.4-9) ... 179s Setting up libgfortran5:armhf (16-20260208-1ubuntu1) ... 179s Setting up python3-pluggy (1.6.0-2) ... 179s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 179s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 180s Setting up libpython3.14:armhf (3.14.2-1) ... 180s Setting up libsuitesparseconfig7:armhf (1:7.12.1+dfsg-1) ... 180s Setting up python3-email-validator (2.2.0-1) ... 180s Setting up python3-mpmath (1.3.0-2) ... 181s Setting up python3-diskcache (5.6.3-1) ... 181s Setting up python-cobra-data (0.29.1-3) ... 181s Setting up python3-httpcore (1.0.9-1) ... 181s Setting up python3-sympy (1.14.0-2) ... 189s /usr/lib/python3/dist-packages/sympy/testing/runtests.py:283: SyntaxWarning: 'return' in a 'finally' block 189s return p.returncode 190s Setting up liblapack3:armhf (3.12.1-7ubuntu1) ... 190s update-alternatives: using /usr/lib/arm-linux-gnueabihf/lapack/liblapack.so.3 to provide /usr/lib/arm-linux-gnueabihf/liblapack.so.3 (liblapack.so.3-arm-linux-gnueabihf) in auto mode 190s Setting up gettext (0.23.2-1) ... 190s Setting up libamd3:armhf (1:7.12.1+dfsg-1) ... 190s Setting up libcolamd3:armhf (1:7.12.1+dfsg-1) ... 190s Setting up python3-pytest (9.0.2-2) ... 190s Setting up quilt (0.68-1) ... 190s Setting up python3-sbml5 (5.20.5+dfsg-2) ... 191s Setting up python3-httpx (0.28.1-1build1) ... 191s Setting up libglpk40:armhf (5.0-2) ... 191s Setting up python3-pydantic (2.12.5-2) ... 192s Setting up python3-numpy (1:2.3.5+ds-3) ... 194s Setting up python3-pytest-mock (3.15.1-1) ... 195s Setting up python3-swiglpk (5.0.10-2build3) ... 195s Setting up python3-optlang (1.8.3-1) ... 195s Setting up python3-pytest-benchmark (5.2.3-1) ... 195s Setting up python3-scipy (1.16.3-4) ... 201s Setting up python3-pandas-lib:armhf (2.3.3+dfsg-3) ... 201s Setting up python3-pandas (2.3.3+dfsg-3) ... 207s Setting up python3-cobra (0.29.1-3) ... 208s Processing triggers for libc-bin (2.42-2ubuntu4) ... 208s Processing triggers for man-db (2.13.1-1build1) ... 209s Processing triggers for install-info (7.2-5) ... 220s autopkgtest [18:22:32]: test run-unit-test: [----------------------- 222s File series fully applied, ends at patch debian/patches/pr1452.patch 222s Running Tests 222s Since python3-sbml5 can only deal with one Python3 version we restrict the test to default Python3 227s ============================= test session starts ============================== 227s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 227s 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) 227s rootdir: /tmp/autopkgtest.KAOdtF/autopkgtest_tmp 227s plugins: typeguard-4.4.4, anyio-4.11.0, benchmark-5.2.3, mock-3.15.1 227s collected 554 items 227s 227s tests/test_core/test_configuration.py ...... [ 1%] 233s tests/test_core/test_core_reaction.py ..........ss.............F..FFFF.. [ 7%] 233s ...................x....... [ 12%] 233s tests/test_core/test_dictlist.py ...................... [ 16%] 234s tests/test_core/test_formula.py ..... [ 16%] 234s tests/test_core/test_gene.py . [ 17%] 234s tests/test_core/test_gpr.py ......................x..x.................. [ 25%] 243s ........................... [ 29%] 243s tests/test_core/test_group.py .. [ 30%] 243s tests/test_core/test_metabolite.py ...ss.ss. [ 31%] 249s tests/test_core/test_model.py .........................FF.F............. [ 39%] 250s ...........s..s.ss. [ 42%] 250s tests/test_core/test_solution.py .ss [ 43%] 270s tests/test_flux_analysis/test_deletion.py ....s..... [ 45%] 275s tests/test_flux_analysis/test_fastcc.py .... [ 46%] 279s tests/test_flux_analysis/test_geometric.py .. [ 46%] 279s tests/test_flux_analysis/test_moma.py . [ 46%] 284s tests/test_flux_analysis/test_parsimonious.py .. [ 46%] 284s tests/test_flux_analysis/test_reaction.py . [ 47%] 287s tests/test_flux_analysis/test_room.py .... [ 47%] 354s tests/test_flux_analysis/test_variability.py ....... [ 49%] 354s tests/test_flux_analysis/test_deletion.py sss [ 49%] 354s tests/test_flux_analysis/test_moma.py s [ 49%] 485s tests/test_flux_analysis/test_deletion.py ...... [ 50%] 486s tests/test_flux_analysis/test_gapfilling.py F [ 51%] 486s tests/test_flux_analysis/test_helpers.py ... [ 51%] 487s tests/test_flux_analysis/test_loopless.py ..... [ 52%] 503s tests/test_flux_analysis/test_phenotype_phase_plane.py ...... [ 53%] 520s tests/test_flux_analysis/test_variability.py ....... [ 54%] 520s tests/test_io/test_annotation.py .. [ 55%] 520s tests/test_io/test_annotation_format.py .. [ 55%] 523s tests/test_io/test_io_order.py ........................... [ 60%] 523s tests/test_io/test_json.py .... [ 61%] 525s tests/test_io/test_mat.py .......ssss.... [ 63%] 525s tests/test_io/test_notes.py . [ 64%] 525s tests/test_io/test_pickle.py .. [ 64%] 532s tests/test_io/test_sbml.py .ssss............xxxx.x.x..s............. [ 71%] 532s tests/test_io/test_web/test_load.py ..ssss. [ 73%] 533s tests/test_io/test_yaml.py .x [ 73%] 533s tests/test_manipulation/test_annotate.py . [ 73%] 533s tests/test_manipulation/test_delete.py ....... [ 74%] 534s tests/test_manipulation/test_modify.py ... [ 75%] 534s tests/test_manipulation/test_validate.py .. [ 75%] 534s tests/test_medium/test_boundary_types.py ........... [ 77%] 536s tests/test_medium/test_minimal_medium.py .......... [ 79%] 538s tests/test_sampling/test_achr.py ...... [ 80%] 541s tests/test_sampling/test_optgp.py ...... [ 81%] 553s tests/test_sampling/test_sampling.py .......... [ 83%] 555s tests/test_summary/test_metabolite_summary.py FFFFFFFFFFFFFFFFF [ 86%] 562s tests/test_summary/test_model_summary.py FFFFFFFFFFFFFFF [ 89%] 564s tests/test_summary/test_reaction_summary.py FFFFFFFFFFFFFFFFFFFF [ 92%] 564s tests/test_util/test_array.py .. [ 93%] 564s tests/test_util/test_context.py ... [ 93%] 582s tests/test_util/test_process_pool.py ............... [ 96%] 583s tests/test_util/test_solver.py ..............s [ 99%] 583s tests/test_util/test_util.py ...X [100%] 583s 583s =================================== FAILURES =================================== 583s __________________________________ test_copy ___________________________________ 583s 583s model = 583s 583s def test_copy(model: Model) -> None: 583s """Test reaction copying.""" 583s PGI = model.reactions.PGI 583s > copied = PGI.copy() 583s ^^^^^^^^^^ 583s 583s tests/test_core/test_core_reaction.py:393: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________________________ test_add ___________________________________ 583s 583s model = 583s 583s def test_add(model: Model) -> None: 583s """Test reaction addition to model.""" 583s # Not in place addition should work on a copy 583s > new = model.reactions.PGI + model.reactions.EX_h2o_e 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_core/test_core_reaction.py:469: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 583s new_reaction = self.copy() 583s ^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s __________________________________ test_radd ___________________________________ 583s 583s model = 583s 583s def test_radd(model: Model) -> None: 583s """Test __radd__ for a reaction.""" 583s > new = sum([model.reactions.PGI, model.reactions.EX_h2o_e]) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_core/test_core_reaction.py:485: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 583s new_reaction = self.copy() 583s ^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________________________ test_mul ___________________________________ 583s 583s model = 583s 583s def test_mul(model: Model) -> None: 583s """Test scalar multiplication of factors with a reaction.""" 583s > new = model.reactions.PGI * 2 583s ^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_core/test_core_reaction.py:492: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1131: in __mul__ 583s new = self.copy() 583s ^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________________________ test_sub ___________________________________ 583s 583s model = 583s 583s def test_sub(model: Model) -> None: 583s """Test reaction subtraction.""" 583s > new = model.reactions.PGI - model.reactions.EX_h2o_e 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_core/test_core_reaction.py:498: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1050: in __sub__ 583s new = self.copy() 583s ^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________________ test_deepcopy_benchmark ____________________________ 583s 583s model = 583s benchmark = 583s 583s def test_deepcopy_benchmark(model: Model, benchmark: BenchmarkFixture) -> None: 583s """Benchmark deepcopying a model. 583s 583s Parameters 583s ---------- 583s model: cobra.Model 583s benchmark: BenchmarkFixture 583s """ 583s > benchmark(deepcopy, model) 583s 583s tests/test_core/test_model.py:613: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:184: in __call__ 583s return self._raw(function_to_benchmark, *args, **kwargs) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:216: in _raw 583s duration, iterations, loops_range = self._calibrate_timer(runner) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:370: in _calibrate_timer 583s duration = runner(loops_range) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:138: in runner 583s function_to_benchmark(*args, **kwargs) 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:240: in _reconstruct 583s state = deepcopy(state, memo) 583s ^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:131: in deepcopy 583s y = copier(x, memo) 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 583s y[deepcopy(key, memo)] = deepcopy(value, memo) 583s ^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:257: in _reconstruct 583s item = deepcopy(item, memo) 583s ^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ________________________________ test_deepcopy _________________________________ 583s 583s model = 583s 583s def test_deepcopy(model: Model) -> None: 583s """Test deepcopying works, and maintains reference structures. 583s 583s Parameters 583s ---------- 583s model: cobra.Model 583s """ 583s # Reference structures are maintained when deepcopying 583s > model_copy = deepcopy(model) 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_core/test_model.py:624: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:240: in _reconstruct 583s state = deepcopy(state, memo) 583s ^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:131: in deepcopy 583s y = copier(x, memo) 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 583s y[deepcopy(key, memo)] = deepcopy(value, memo) 583s ^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:257: in _reconstruct 583s item = deepcopy(item, memo) 583s ^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________________________ test_merge_models _______________________________ 583s 583s model = 583s tiny_toy_model = 583s 583s def test_merge_models(model: Model, tiny_toy_model: Model) -> None: 583s """Test merging models. 583s 583s Parameters 583s ---------- 583s model: cobra.Model 583s tiny_toy_model: cobra.Model 583s """ 583s with model, tiny_toy_model: 583s # Add some cons/vars to tiny_toy_model for testing merging 583s tiny_toy_model.add_reactions([Reaction("EX_glc__D_e")]) 583s variable = tiny_toy_model.problem.Variable("foo") 583s constraint = tiny_toy_model.problem.Constraint( 583s variable, ub=0, lb=0, name="constraint" 583s ) 583s tiny_toy_model.add_cons_vars([variable, constraint]) 583s 583s > merged = model.merge( 583s tiny_toy_model, inplace=False, objective="sum", prefix_existing="tiny_" 583s ) 583s 583s tests/test_core/test_model.py:679: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1454: in merge 583s new_reactions = deepcopy(right.reactions) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:257: in _reconstruct 583s item = deepcopy(item, memo) 583s ^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________________________ test_gapfilling ________________________________ 583s 583s salmonella = 583s 583s def test_gapfilling(salmonella: Model) -> None: 583s """Test Gapfilling.""" 583s m = Model() 583s m.add_metabolites([Metabolite(m_id) for m_id in ["a", "b", "c"]]) 583s exa = Reaction("EX_a") 583s exa.add_metabolites({m.metabolites.a: 1}) 583s b2c = Reaction("b2c") 583s b2c.add_metabolites({m.metabolites.b: -1, m.metabolites.c: 1}) 583s dmc = Reaction("DM_c") 583s dmc.add_metabolites({m.metabolites.c: -1}) 583s m.add_reactions([exa, b2c, dmc]) 583s m.objective = "DM_c" 583s 583s universal = Model() 583s a2b = Reaction("a2b") 583s a2d = Reaction("a2d") 583s universal.add_reactions([a2b, a2d]) 583s a2b.build_reaction_from_string("a --> b", verbose=False) 583s a2d.build_reaction_from_string("a --> d", verbose=False) 583s 583s # # GrowMatch 583s # result = gapfilling.growMatch(m, universal)[0] 583s result = gapfill(m, universal)[0] 583s assert len(result) == 1 583s assert result[0].id == "a2b" 583s 583s # # SMILEY 583s # result = gapfilling.SMILEY(m, "b", universal)[0] 583s with m: 583s m.objective = m.add_boundary(m.metabolites.b, type="demand") 583s result = gapfill(m, universal)[0] 583s assert len(result) == 1 583s assert result[0].id == "a2b" 583s 583s # # 2 rounds of GrowMatch with exchange reactions 583s # result = gapfilling.growMatch(m, None, ex_rxns=True, iterations=2) 583s result = gapfill(m, None, exchange_reactions=True, iterations=2) 583s assert len(result) == 2 583s assert len(result[0]) == 1 583s assert len(result[1]) == 1 583s assert {i[0].id for i in result} == {"EX_b", "EX_c"} 583s 583s # # Gapfilling solution adds metabolites not present in original model 583s # test for when demand = T 583s # a demand reaction must be added to clear new metabolite 583s universal_noDM = Model() 583s a2b = Reaction("a2b") 583s universal_noDM.add_reactions([a2b]) 583s a2b.build_reaction_from_string("a --> b + d", verbose=False) 583s result = gapfill( 583s m, universal_noDM, exchange_reactions=False, demand_reactions=True 583s )[0] 583s # add reaction a2b and demand reaction to clear met d 583s assert len(result) == 2 583s assert "a2b" in [x.id for x in result] 583s 583s # test for when demand = False 583s # test for when metabolites are added to the model and 583s # must be cleared by other reactions in universal model 583s # (i.e. not necessarily a demand reaction) 583s universal_withDM = universal_noDM.copy() 583s d_dm = Reaction("d_dm") 583s universal_withDM.add_reactions([d_dm]) 583s d_dm.build_reaction_from_string("d -->", verbose=False) 583s result = gapfill( 583s m, universal_withDM, exchange_reactions=False, demand_reactions=False 583s )[0] 583s assert len(result) == 2 583s assert "a2b" in [x.id for x in result] 583s 583s # somewhat bigger model 583s universal = Model("universal_reactions") 583s with salmonella as model: 583s for i in [i.id for i in model.metabolites.f6p_c.reactions]: 583s reaction = model.reactions.get_by_id(i) 583s > universal.add_reactions([reaction.copy()]) 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_flux_analysis/test_gapfilling.py:82: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_metabolite_summary_interface[optlang-glpk] ________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_metabolite_summary_interface(model, opt_solver): 583s """Test that a summary can be created successfully.""" 583s model.solver = opt_solver 583s metabolite = model.metabolites.get_by_id("q8_c") 583s > MetaboliteSummary( 583s metabolite=metabolite, 583s model=model, 583s ) 583s 583s tests/test_summary/test_metabolite_summary.py:13: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ________________ test_metabolite_summary_to_frame[optlang-glpk] ________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_metabolite_summary_to_frame(model, opt_solver): 583s """Test that the summary's method ``to_frame`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:39: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs0] ____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:56: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs1] ____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:56: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs2] ____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:56: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs3] ____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:56: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs4] ____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'column_width': 20} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:56: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs0] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:66: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs1] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:66: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs2] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:66: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs3] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("atp_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:66: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________ test_q8_producing_summary[optlang-glpk] ____________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_q8_producing_summary(model, opt_solver): 583s """Test that the production summary of q8 is accurate.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("q8_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:73: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ___________________ test_q8_consuming_summary[optlang-glpk] ____________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_q8_consuming_summary(model, opt_solver): 583s """Test that the consumption summary of q8 is accurate.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("q8_c").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:82: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s __________________ test_fdp_production_with_fva[optlang-glpk] __________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_fdp_production_with_fva(model, opt_solver): 583s """Test that the production summary of fdp is within expected bounds.""" 583s model.solver = opt_solver 583s > summary = model.metabolites.get_by_id("fdp_c").summary(fva=0.99) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:100: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s __________ test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] __________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s metabolite_id = 'q8_c' 583s 583s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 583s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 583s """Test that the metabolite summary inside and outside of a context are equal.""" 583s model.solver = opt_solver 583s with model: 583s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:112: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _________ test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] __________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s metabolite_id = 'fdp_c' 583s 583s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 583s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 583s """Test that the metabolite summary inside and outside of a context are equal.""" 583s model.solver = opt_solver 583s with model: 583s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:112: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _________ test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] __________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s metabolite_id = 'atp_c' 583s 583s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 583s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 583s """Test that the metabolite summary inside and outside of a context are equal.""" 583s model.solver = opt_solver 583s with model: 583s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_metabolite_summary.py:112: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 583s return MetaboliteSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 583s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 583s ^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s __________________ test_model_summary_interface[optlang-glpk] __________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_interface(model, opt_solver): 583s """Test that a summary can be created successfully.""" 583s model.solver = opt_solver 583s > ModelSummary( 583s model=model, 583s ) 583s 583s tests/test_summary/test_model_summary.py:12: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s __________________ test_model_summary_to_frame[optlang-glpk] ___________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_to_frame(model, opt_solver): 583s """Test that the summary's method ``to_frame`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:34: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________ test_model_summary_to_string[optlang-glpk-kwargs0] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_model_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:51: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________ test_model_summary_to_string[optlang-glpk-kwargs1] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_model_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:51: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________ test_model_summary_to_string[optlang-glpk-kwargs2] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_model_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:51: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________ test_model_summary_to_string[optlang-glpk-kwargs3] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_model_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:51: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ______________ test_model_summary_to_string[optlang-glpk-kwargs4] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'column_width': 20} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_model_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:51: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_model_summary_to_html[optlang-glpk-kwargs0] _______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_model_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:61: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_model_summary_to_html[optlang-glpk-kwargs1] _______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_model_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:61: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_model_summary_to_html[optlang-glpk-kwargs2] _______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_model_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:61: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_model_summary_to_html[optlang-glpk-kwargs3] _______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_model_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:61: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _________ test_model_summary_to_frame_previous_solution[optlang-glpk] __________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_to_frame_previous_solution(model, opt_solver): 583s """Test that the summary correctly uses an existing solution.""" 583s model.solver = opt_solver 583s solution = pfba(model) 583s rxn = model.reactions.EX_glc__D_e 583s solution.fluxes[rxn.id] = -123 583s > summary = model.summary(solution=solution) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:71: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________________ test_model_summary_flux[optlang-glpk] _____________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_flux(model, opt_solver): 583s """Test that the summary has expected fluxes.""" 583s model.solver = opt_solver 583s > summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:78: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________________ test_model_summary_fva[optlang-glpk] _____________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_fva(model, opt_solver): 583s """Test that the exchange summary is within expected bounds.""" 583s model.solver = opt_solver 583s > summary = model.summary(fva=0.95) 583s ^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:88: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_model_summary_flux_in_context[optlang-glpk] _______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_model_summary_flux_in_context(model, opt_solver): 583s """Test that the model summary inside and outside of a context are equal.""" 583s model.solver = opt_solver 583s copy = model.copy() 583s with model: 583s model.reactions.EX_glc__D_e.bounds = (0, 1000) 583s model.reactions.EX_ac_e.bounds = (-10, 1000) 583s > context_summary = model.summary() 583s ^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_model_summary.py:109: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 583s return ModelSummary(model=self, solution=solution, fva=fva) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 583s self._generate(model, solution, fva) 583s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 583s rxn.copy(): coef for rxn, coef in coefficients.items() 583s ^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ________________ test_reaction_summary_interface[optlang-glpk] _________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_reaction_summary_interface(model, opt_solver): 583s """Test that a summary can be created successfully.""" 583s model.solver = opt_solver 583s reaction = model.reactions.get_by_id("FUM") 583s > ReactionSummary( 583s reaction=reaction, 583s model=model, 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:13: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _________________ test_reaction_summary_to_frame[optlang-glpk] _________________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s 583s def test_reaction_summary_to_frame(model, opt_solver): 583s """Test that the summary's method ``to_frame`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:37: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs0] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_reaction_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:54: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs1] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_reaction_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:54: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs2] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_reaction_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:54: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs3] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_reaction_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:54: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs4] _____________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'column_width': 20} 583s 583s @pytest.mark.parametrize( 583s "kwargs", 583s [ 583s {}, 583s {"names": True}, 583s {"float_format": ".1f"}, 583s {"threshold": 1e-2}, 583s {"column_width": 20}, 583s ], 583s ) 583s def test_reaction_summary_to_string(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_string`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:54: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs0] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_reaction_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:64: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs1] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'names': True} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_reaction_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:64: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs2] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'float_format': '.1f'} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_reaction_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:64: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs3] ______________ 583s 583s model = , opt_solver = 'optlang-glpk' 583s kwargs = {'threshold': 0.01} 583s 583s @pytest.mark.parametrize( 583s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 583s ) 583s def test_reaction_summary_to_html(model, opt_solver, kwargs): 583s """Test that the summary's method ``to_html`` can be called.""" 583s model.solver = opt_solver 583s > summary = model.reactions.get_by_id("FUM").summary() 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s 583s tests/test_summary/test_reaction_summary.py:64: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 583s return ReactionSummary( 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ____________________ test_reaction_summary_flux[ACALD-0.0] _____________________ 583s 583s model = , reaction_id = 'ACALD', expected = 0.0 583s 583s @pytest.mark.parametrize( 583s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 583s ) 583s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 583s """Test that the reported flux in the summary is reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:73: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________________ test_reaction_summary_flux[FUM-5.06] _____________________ 583s 583s model = , reaction_id = 'FUM', expected = 5.06 583s 583s @pytest.mark.parametrize( 583s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 583s ) 583s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 583s """Test that the reported flux in the summary is reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:73: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _____________________ test_reaction_summary_flux[PFK-7.48] _____________________ 583s 583s model = , reaction_id = 'PFK', expected = 7.48 583s 583s @pytest.mark.parametrize( 583s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 583s ) 583s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 583s """Test that the reported flux in the summary is reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:73: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _______________ test_reaction_summary_flux_fva[ACALD--1.27-0.0] ________________ 583s 583s model = , reaction_id = 'ACALD' 583s min_flux = -1.27, max_flux = 0.0 583s 583s @pytest.mark.parametrize( 583s "reaction_id, min_flux, max_flux", 583s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 583s ) 583s def test_reaction_summary_flux_fva( 583s model, reaction_id: str, min_flux: float, max_flux: float 583s ) -> None: 583s """Test that the reported flux ranges in the summary are reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:89: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ________________ test_reaction_summary_flux_fva[FUM-0.79-7.38] _________________ 583s 583s model = , reaction_id = 'FUM', min_flux = 0.79 583s max_flux = 7.38 583s 583s @pytest.mark.parametrize( 583s "reaction_id, min_flux, max_flux", 583s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 583s ) 583s def test_reaction_summary_flux_fva( 583s model, reaction_id: str, min_flux: float, max_flux: float 583s ) -> None: 583s """Test that the reported flux ranges in the summary are reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:89: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s ________________ test_reaction_summary_flux_fva[PFK-2.58-16.38] ________________ 583s 583s model = , reaction_id = 'PFK', min_flux = 2.58 583s max_flux = 16.38 583s 583s @pytest.mark.parametrize( 583s "reaction_id, min_flux, max_flux", 583s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 583s ) 583s def test_reaction_summary_flux_fva( 583s model, reaction_id: str, min_flux: float, max_flux: float 583s ) -> None: 583s """Test that the reported flux ranges in the summary are reasonable.""" 583s > result = ReactionSummary( 583s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 583s ) 583s 583s tests/test_summary/test_reaction_summary.py:89: 583s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 583s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 583s self._reaction = reaction.copy() 583s ^^^^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 583s new_reaction = deepcopy(self) 583s ^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:157: in deepcopy 583s y = _reconstruct(x, memo, *rv) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:234: in _reconstruct 583s y = func(*args) 583s ^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:233: in 583s args = (deepcopy(arg, memo) for arg in args) 583s ^^^^^^^^^^^^^^^^^^^ 583s /usr/lib/python3.14/copy.py:138: in deepcopy 583s y = copier(memo) 583s ^^^^^^^^^^^^ 583s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 583s cop = deepcopy(super(Reaction, self), memo) 583s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583s E RecursionError: maximum recursion depth exceeded 583s !!! Recursion detected (same locals & position) 583s _________________ test_reaction_summary_flux_in_context[ACALD] _________________ 583s 583s model = , reaction_id = 'ACALD' 583s 583s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 585s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 585s """Test that the reaction summary inside and outside of a context are equal.""" 585s with model: 585s > context_summary = model.reactions.get_by_id(reaction_id).summary() 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s 585s tests/test_summary/test_reaction_summary.py:104: 585s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 585s return ReactionSummary( 585s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 585s self._reaction = reaction.copy() 585s ^^^^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 585s new_reaction = deepcopy(self) 585s ^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:157: in deepcopy 585s y = _reconstruct(x, memo, *rv) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:234: in _reconstruct 585s y = func(*args) 585s ^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:233: in 585s args = (deepcopy(arg, memo) for arg in args) 585s ^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s E RecursionError: maximum recursion depth exceeded 585s !!! Recursion detected (same locals & position) 585s __________________ test_reaction_summary_flux_in_context[FUM] __________________ 585s 585s model = , reaction_id = 'FUM' 585s 585s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 585s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 585s """Test that the reaction summary inside and outside of a context are equal.""" 585s with model: 585s > context_summary = model.reactions.get_by_id(reaction_id).summary() 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s 585s tests/test_summary/test_reaction_summary.py:104: 585s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 585s return ReactionSummary( 585s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 585s self._reaction = reaction.copy() 585s ^^^^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 585s new_reaction = deepcopy(self) 585s ^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:157: in deepcopy 585s y = _reconstruct(x, memo, *rv) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:234: in _reconstruct 585s y = func(*args) 585s ^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:233: in 585s args = (deepcopy(arg, memo) for arg in args) 585s ^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s E RecursionError: maximum recursion depth exceeded 585s !!! Recursion detected (same locals & position) 585s __________________ test_reaction_summary_flux_in_context[PFK] __________________ 585s 585s model = , reaction_id = 'PFK' 585s 585s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 585s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 585s """Test that the reaction summary inside and outside of a context are equal.""" 585s with model: 585s > context_summary = model.reactions.get_by_id(reaction_id).summary() 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s 585s tests/test_summary/test_reaction_summary.py:104: 585s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 585s return ReactionSummary( 585s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 585s self._reaction = reaction.copy() 585s ^^^^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 585s new_reaction = deepcopy(self) 585s ^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:157: in deepcopy 585s y = _reconstruct(x, memo, *rv) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:234: in _reconstruct 585s y = func(*args) 585s ^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:233: in 585s args = (deepcopy(arg, memo) for arg in args) 585s ^^^^^^^^^^^^^^^^^^^ 585s /usr/lib/python3.14/copy.py:138: in deepcopy 585s y = copier(memo) 585s ^^^^^^^^^^^^ 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 585s cop = deepcopy(super(Reaction, self), memo) 585s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 585s E RecursionError: maximum recursion depth exceeded 585s !!! Recursion detected (same locals & position) 585s =============================== warnings summary =============================== 585s :491 585s :491: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute 585s 585s :491 585s :491: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute 585s 585s tests/test_core/test_gpr.py::test_and_gpr[a AND b-2-gpr_genes2-a and b] 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_or_gpr[a OR b-2-gpr_genes2-a or b] 585s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[a OR b-symbolic_gpr2] 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 585s tests/test_core/test_gpr.py::test_gpr_from_symbolic[a OR b-symbolic_gpr5] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_complicated_gpr[(a OR b) AND c] 585s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[(a OR b) AND c-symbolic_gpr6] 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_and_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 585s tests/test_core/test_gpr.py::test_gpr_from_symbolic[(a OR b) AND c-symbolic_gpr9] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(a OR b) AND c'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_gpr_that_needs_two_replacements 585s /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)'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b AND a'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b OR a'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b or c'. 585s warn( 585s 585s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_and_strs] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 585s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 585s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b and c'. 585s warn( 585s 585s tests/test_core/test_model.py::test_reaction_delete 585s tests/test_core/test_model.py::test_reaction_delete 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:879: DeprecationWarning: delete is deprecated. Use reaction.remove_from_model instead 585s warn( 585s 585s tests/test_core/test_model.py::test_group_loss_of_elements 585s /usr/lib/python3/dist-packages/cobra/core/group.py:147: UserWarning: need to pass in a list 585s warn("need to pass in a list") 585s 585s tests/test_core/test_model.py::test_change_objective 585s tests/test_core/test_model.py::test_change_objective 585s tests/test_core/test_model.py::test_change_objective 585s /usr/lib/python3/dist-packages/cobra/core/reaction.py:761: DeprecationWarning: Please use reaction.flux instead. 585s warn("Please use reaction.flux instead.", DeprecationWarning) 585s 585s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 585s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 585s /tmp/autopkgtest.KAOdtF/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 585s assert math.isnan(sol.growth) 585s 585s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 585s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 585s /tmp/autopkgtest.KAOdtF/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 585s assert math.isnan(sol_one.growth) 585s 585s tests/test_flux_analysis/test_gapfilling.py: 980 warnings 585s /tmp/autopkgtest.KAOdtF/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 585s return _load(infile) 585s 585s tests/test_flux_analysis/test_gapfilling.py: 4020 warnings 585s /tmp/autopkgtest.KAOdtF/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 585s return _load(infile) 585s 585s tests/test_io/test_json.py: 34 warnings 585s tests/test_io/test_mat.py: 34 warnings 585s tests/test_io/test_pickle.py: 34 warnings 585s tests/test_io/test_yaml.py: 34 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s return load(infile) 585s 585s tests/test_io/test_json.py: 11 warnings 585s tests/test_io/test_mat.py: 11 warnings 585s tests/test_io/test_pickle.py: 11 warnings 585s tests/test_io/test_yaml.py: 11 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s return load(infile) 585s 585s tests/test_io/test_json.py: 1 warning 585s tests/test_io/test_mat.py: 3 warnings 585s tests/test_io/test_pickle.py: 1 warning 585s tests/test_io/test_sbml.py: 9 warnings 585s tests/test_io/test_yaml.py: 1 warning 585s /usr/lib/python3/dist-packages/cobra/util/solver.py:554: UserWarning: Solver status is 'infeasible'. 585s warn(f"Solver status is '{status}'.", UserWarning) 585s 585s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 585s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 585s /tmp/autopkgtest.KAOdtF/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. 585s return load(infile) 585s 585s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 585s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 585s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 585s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 585s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 585s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 585s /tmp/autopkgtest.KAOdtF/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. 585s return load(infile) 585s 585s tests/test_io/test_pickle.py: 34 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s pickle_model = load_function(infile) 585s 585s tests/test_io/test_pickle.py: 11 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s pickle_model = load_function(infile) 585s 585s tests/test_io/test_sbml.py: 136 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s reference_model = load(infile) 585s 585s tests/test_io/test_sbml.py: 44 warnings 585s /tmp/autopkgtest.KAOdtF/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. 585s reference_model = load(infile) 585s 585s tests/test_io/test_yaml.py::test_save_yaml_model 585s /tmp/autopkgtest.KAOdtF/autopkgtest_tmp/tests/test_io/test_yaml.py:29: PendingDeprecationWarning: 585s you should no longer specify 'unsafe'. 585s For **dumping only** use yaml=YAML(typ='full') 585s 585s yaml = YAML(typ="unsafe") 585s 585s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 585s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 585s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 585s /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]` 585s compartment = most[matches[most]][0] 585s 585s tests/test_util/test_process_pool.py::test_with_context 585s /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 585s self._pool.__enter__() 585s 585s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 585s 585s --------------------------------------------------------------------------------------------------------------------------- benchmark: 30 tests ---------------------------------------------------------------------------------------------------------------------------- 585s Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations 585s ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 585s test_subtract_metabolite_benchmark[cplex] 3.0398 (1.0) 39.0410 (2.87) 3.2991 (1.04) 0.9017 (1.58) 3.2401 (1.04) 0.1602 (4.00) 38;170 303,110.4130 (0.96) 2843 1 585s test_subtract_metabolite_benchmark[glpk] 3.0398 (1.0) 27.6398 (2.03) 3.2464 (1.02) 0.6973 (1.22) 3.1600 (1.01) 0.0400 (1.0) 64;495 308,034.8928 (0.98) 3048 1 585s test_subtract_metabolite_benchmark[gurobi] 3.0398 (1.0) 13.6001 (1.0) 3.1740 (1.0) 0.5722 (1.0) 3.1199 (1.0) 0.0410 (1.02) 41;259 315,057.3481 (1.0) 2687 1 585s test_change_objective_benchmark[optlang-glpk] 212.4440 (69.89) 1,098.6216 (80.78) 265.0571 (83.51) 41.5691 (72.65) 259.4441 (83.16) 52.1312 (>1000.0) 298;20 3,772.7723 (0.01) 2177 1 585s test_achr_sample_benchmark 252.3232 (83.01) 576.3294 (42.38) 314.5691 (99.11) 42.1015 (73.58) 308.8843 (99.00) 40.1412 (>1000.0) 118;26 3,178.9517 (0.01) 621 1 585s test_optgp_sample_benchmark 394.2074 (129.68) 867.5335 (63.79) 497.2046 (156.65) 87.1871 (152.37) 471.5286 (151.13) 60.2517 (>1000.0) 152;115 2,011.2443 (0.01) 1009 1 585s test_loopless_benchmark_after 2,051.2361 (674.78) 2,774.6074 (204.01) 2,151.1607 (677.74) 82.8610 (144.81) 2,137.4566 (685.10) 65.6606 (>1000.0) 29;9 464.8653 (0.00) 236 1 585s test_loopless_benchmark_before 6,928.7606 (>1000.0) 7,688.6136 (565.33) 7,168.6229 (>1000.0) 134.3356 (234.77) 7,144.1652 (>1000.0) 137.3219 (>1000.0) 20;4 139.4968 (0.00) 87 1 585s test_minimal_medium_mip_benchmark 12,285.7690 (>1000.0) 13,751.7145 (>1000.0) 12,892.0232 (>1000.0) 404.2073 (706.41) 12,814.2983 (>1000.0) 529.9987 (>1000.0) 15;0 77.5673 (0.00) 47 1 585s test_minimal_medium_linear_benchmark 12,606.6953 (>1000.0) 21,792.6092 (>1000.0) 13,335.9410 (>1000.0) 1,256.2232 (>1000.0) 13,156.9235 (>1000.0) 269.9643 (>1000.0) 1;4 74.9853 (0.00) 50 1 585s test_copy_benchmark[optlang-glpk] 15,115.2676 (>1000.0) 142,681.5856 (>1000.0) 17,644.1160 (>1000.0) 15,881.0127 (>1000.0) 15,596.4768 (>1000.0) 426.5080 (>1000.0) 1;3 56.6761 (0.00) 64 1 585s test_gpr_equality_benchmark 24,186.2545 (>1000.0) 25,505.6797 (>1000.0) 24,812.0674 (>1000.0) 334.3044 (584.24) 24,851.1471 (>1000.0) 457.0400 (>1000.0) 15;0 40.3030 (0.00) 37 1 585s test_single_reaction_deletion_benchmark[glpk] 30,405.5680 (>1000.0) 31,870.5970 (>1000.0) 30,801.1606 (>1000.0) 269.4620 (470.92) 30,800.3156 (>1000.0) 223.6441 (>1000.0) 7;1 32.4663 (0.00) 32 1 585s test_fastcc_benchmark[glpk] 67,531.6686 (>1000.0) 69,021.8983 (>1000.0) 68,212.0852 (>1000.0) 480.1795 (839.18) 68,177.5822 (>1000.0) 950.2182 (>1000.0) 7;0 14.6602 (0.00) 14 1 585s test_add_metabolite_benchmark[cplex] 77,581.4755 (>1000.0) 79,603.9570 (>1000.0) 78,491.4176 (>1000.0) 586.3570 (>1000.0) 78,573.4365 (>1000.0) 804.4960 (>1000.0) 5;0 12.7402 (0.00) 14 1 585s test_add_metabolite_benchmark[gurobi] 77,642.1158 (>1000.0) 79,720.3975 (>1000.0) 78,560.0977 (>1000.0) 676.1262 (>1000.0) 78,309.6505 (>1000.0) 1,057.3608 (>1000.0) 4;0 12.7291 (0.00) 13 1 585s test_add_metabolite_benchmark[glpk] 77,777.0802 (>1000.0) 79,133.2303 (>1000.0) 78,333.2374 (>1000.0) 433.1270 (756.95) 78,271.3704 (>1000.0) 548.6626 (>1000.0) 4;0 12.7660 (0.00) 13 1 585s test_gpr_symbolism_benchmark 82,707.4097 (>1000.0) 84,363.2016 (>1000.0) 83,582.0839 (>1000.0) 636.5179 (>1000.0) 83,510.2061 (>1000.0) 1,162.6431 (>1000.0) 6;0 11.9643 (0.00) 12 1 585s test_optgp_init_benchmark 132,844.0122 (>1000.0) 138,224.2236 (>1000.0) 134,669.2733 (>1000.0) 1,745.0796 (>1000.0) 134,185.5354 (>1000.0) 2,076.1956 (>1000.0) 2;0 7.4256 (0.00) 8 1 585s test_achr_init_benchmark 137,169.7681 (>1000.0) 294,911.8465 (>1000.0) 162,855.0331 (>1000.0) 58,349.2747 (>1000.0) 140,117.3007 (>1000.0) 8,390.1731 (>1000.0) 1;1 6.1404 (0.00) 7 1 585s test_single_gene_deletion_linear_moma_benchmark[glpk] 201,190.9522 (>1000.0) 207,325.5554 (>1000.0) 203,421.2288 (>1000.0) 2,437.1201 (>1000.0) 203,028.6267 (>1000.0) 3,232.4055 (>1000.0) 1;0 4.9159 (0.00) 5 1 585s test_single_gene_deletion_linear_room_benchmark[glpk] 296,616.5766 (>1000.0) 302,441.6128 (>1000.0) 300,789.4987 (>1000.0) 2,390.4909 (>1000.0) 301,810.9612 (>1000.0) 2,241.1642 (>1000.0) 1;0 3.3246 (0.00) 5 1 585s test_copy_benchmark_large_model[optlang-glpk] 312,507.5120 (>1000.0) 481,883.7084 (>1000.0) 348,135.2337 (>1000.0) 74,793.6754 (>1000.0) 315,812.3381 (>1000.0) 45,515.0264 (>1000.0) 1;1 2.8724 (0.00) 5 1 585s test_pfba_benchmark[glpk] 347,026.3463 (>1000.0) 415,297.6219 (>1000.0) 380,525.0207 (>1000.0) 32,435.2074 (>1000.0) 377,978.4795 (>1000.0) 62,929.3357 (>1000.0) 2;0 2.6279 (0.00) 5 1 585s test_double_gene_deletion_benchmark 353,457.8113 (>1000.0) 361,395.0498 (>1000.0) 356,036.9765 (>1000.0) 3,466.7511 (>1000.0) 353,989.4260 (>1000.0) 5,031.2865 (>1000.0) 1;0 2.8087 (0.00) 5 1 585s test_geometric_fba_benchmark[glpk] 468,789.2310 (>1000.0) 472,184.9905 (>1000.0) 470,994.6902 (>1000.0) 1,297.2273 (>1000.0) 471,282.3266 (>1000.0) 1,189.2626 (>1000.0) 1;0 2.1232 (0.00) 5 1 585s test_flux_variability_benchmark[glpk] 662,338.5707 (>1000.0) 669,046.1636 (>1000.0) 665,439.3068 (>1000.0) 2,502.9739 (>1000.0) 665,884.3504 (>1000.0) 3,094.0259 (>1000.0) 2;0 1.5028 (0.00) 5 1 585s test_single_gene_deletion_fba_benchmark[glpk] 1,978,911.0478 (>1000.0) 2,082,755.1633 (>1000.0) 2,030,660.8200 (>1000.0) 37,414.5194 (>1000.0) 2,030,466.1701 (>1000.0) 41,238.8209 (>1000.0) 2;0 0.4925 (0.00) 5 1 585s test_flux_variability_loopless_benchmark[glpk] 4,011,577.9843 (>1000.0) 5,410,406.8251 (>1000.0) 4,698,234.5002 (>1000.0) 669,469.2622 (>1000.0) 4,708,473.1711 (>1000.0) 1,306,259.0798 (>1000.0) 2;0 0.2128 (0.00) 5 1 585s test_double_reaction_deletion_benchmark 16,280,392.9206 (>1000.0) 17,231,033.4789 (>1000.0) 16,690,286.0727 (>1000.0) 395,490.1954 (>1000.0) 16,544,972.3564 (>1000.0) 640,165.2480 (>1000.0) 2;0 0.0599 (0.00) 5 1 585s ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 585s 585s Legend: 585s Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. 585s OPS: Operations Per Second, computed as 1 / Mean 585s =========================== short test summary info ============================ 585s FAILED tests/test_core/test_core_reaction.py::test_copy - RecursionError: max... 585s FAILED tests/test_core/test_core_reaction.py::test_add - RecursionError: maxi... 585s FAILED tests/test_core/test_core_reaction.py::test_radd - RecursionError: max... 585s FAILED tests/test_core/test_core_reaction.py::test_mul - RecursionError: maxi... 585s FAILED tests/test_core/test_core_reaction.py::test_sub - RecursionError: maxi... 585s FAILED tests/test_core/test_model.py::test_deepcopy_benchmark - RecursionErro... 585s FAILED tests/test_core/test_model.py::test_deepcopy - RecursionError: maximum... 585s FAILED tests/test_core/test_model.py::test_merge_models - RecursionError: max... 585s FAILED tests/test_flux_analysis/test_gapfilling.py::test_gapfilling - Recursi... 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_interface[optlang-glpk] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_frame[optlang-glpk] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs4] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_producing_summary[optlang-glpk] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_consuming_summary[optlang-glpk] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_fdp_production_with_fva[optlang-glpk] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] 585s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_interface[optlang-glpk] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame[optlang-glpk] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs4] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame_previous_solution[optlang-glpk] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux[optlang-glpk] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_fva[optlang-glpk] 585s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux_in_context[optlang-glpk] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_interface[optlang-glpk] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_frame[optlang-glpk] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs4] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs0] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs1] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs2] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs3] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[ACALD-0.0] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[FUM-5.06] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[PFK-7.48] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[ACALD--1.27-0.0] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[FUM-0.79-7.38] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[PFK-2.58-16.38] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[ACALD] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[FUM] 585s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[PFK] 585s = 61 failed, 451 passed, 31 skipped, 10 xfailed, 1 xpassed, 5488 warnings in 357.92s (0:05:57) = 587s autopkgtest [18:28:39]: test run-unit-test: -----------------------] 591s run-unit-test FAIL non-zero exit status 1 591s autopkgtest [18:28:43]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 595s autopkgtest [18:28:47]: @@@@@@@@@@@@@@@@@@@@ summary 595s run-unit-test FAIL non-zero exit status 1