0s autopkgtest [03:45:41]: starting date and time: 2026-01-24 03:45:41+0000 0s autopkgtest [03:45:41]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [03:45:41]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.ur2h_97w/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:libsbml,src:apbs,src:binutils,src:bornagain,src:ccls,src:cp2k,src:createrepo-c,src:gcc-11,src:gcc-12,src:gcc-13,src:gcc-14,src:gcc-15,src:gcc-snapshot,src:gdm3,src:hkl,src:hmmer,src:ktimetracker,src:libixion,src:liborcus,src:libpeas2,src:libreoffice,src:libsndfile,src:libzstd,src:link-grammar,src:mosquitto,src:orthanc-python,src:psychopy,src:pyside2,src:python3-defaults,src:rumur,src:scipy,src:systemd,src:vim --apt-upgrade python-cobra --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=libsbml/5.20.5+dfsg-1build1 apbs/3.4.1-7build1 binutils/2.45.50.20260119-1ubuntu1 bornagain/23.0-5build1 ccls/0.20250815-0ubuntu1 cp2k/2025.2-3 createrepo-c/1.2.1-2build1 gcc-11/11.5.0-8ubuntu1 gcc-12/12.5.0-7ubuntu1 gcc-13/13.4.0-5ubuntu1 gcc-14/14.3.0-11ubuntu1 gcc-15/15.2.0-12ubuntu1 gcc-snapshot/1:20260121-1ubuntu1 gdm3/50~alpha.1-0ubuntu1 hkl/5.1.4-1 hmmer/3.4+dfsg-3 ktimetracker/4:6.0.0-1build1 libixion/0.20.0-6build1 liborcus/0.21.0-2build1 libpeas2/2.2.0-2build1 libreoffice/4:25.8.4~rc2-0ubuntu2 libsndfile/1.2.2-4 libzstd/1.5.7+dfsg-3 link-grammar/5.13.0+dfsg-1build1 mosquitto/2.0.22-5 orthanc-python/7.0+ds-1build1 psychopy/2023.2.4+dfsg-4 pyside2/5.15.18-1 python3-defaults/3.14.2-1 rumur/2025.08.31-1 scipy/1.16.3-4 systemd/259-1ubuntu3 vim/2:9.1.1882-1ubuntu2' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-ppc64el-12.secgroup --name adt-resolute-ppc64el-python-cobra-20260124-034541-juju-7f2275-prod-proposed-migration-environment-2-77cca8f4-d292-4fda-80a6-37883dfbcd2e --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-ppc64el-python-cobra-20260124-034541-juju-7f2275-prod-proposed-migration-environment-2-77cca8f4-d292-4fda-80a6-37883dfbcd2e from image adt/ubuntu-resolute-ppc64el-server-20260123.img (UUID 3dff1a46-d1c8-44ff-849b-7d35415debc1)... 53s autopkgtest [03:46:34]: testbed dpkg architecture: ppc64el 53s autopkgtest [03:46:34]: testbed apt version: 3.1.13 53s autopkgtest [03:46:34]: @@@@@@@@@@@@@@@@@@@@ test bed setup 53s autopkgtest [03:46:34]: testbed release detected to be: None 54s autopkgtest [03:46:35]: updating testbed package index (apt update) 54s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 54s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 54s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 54s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 54s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1058 kB] 54s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 54s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [94.5 kB] 54s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 55s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [107 kB] 55s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [881 kB] 55s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [9920 B] 55s Fetched 2301 kB in 1s (3788 kB/s) 55s Reading package lists... 56s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 56s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 56s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 56s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 57s Reading package lists... 57s Reading package lists... 57s Building dependency tree... 57s Reading state information... 57s Calculating upgrade... 58s The following packages were automatically installed and are no longer required: 58s python3.13 python3.13-minimal 58s Use 'sudo apt autoremove' to remove them. 58s The following NEW packages will be installed: 58s libpython3.14-minimal libpython3.14-stdlib libsframe3 python3.14 58s python3.14-minimal 58s The following packages will be upgraded: 58s binutils binutils-common binutils-powerpc64le-linux-gnu 58s cloud-initramfs-copymods cloud-initramfs-dyn-netconf gcc-15-base libatomic1 58s libbinutils libctf-nobfd0 libctf0 libgcc-s1 libgpg-error-l10n libgpg-error0 58s liblzo2-2 libnss-systemd libpam-systemd libplymouth5 libpython3-stdlib 58s libstdc++6 libsystemd-shared libsystemd0 libtasn1-6 libudev1 libzstd1 58s plymouth plymouth-theme-ubuntu-text python3 python3-gdbm 58s python3-jaraco.context python3-minimal systemd systemd-cryptsetup 58s systemd-resolved systemd-sysv systemd-userdbd udev vim-common vim-tiny xxd 58s zstd 58s 40 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 58s Need to get 23.7 MB of archives. 58s After this operation, 27.9 MB of additional disk space will be used. 58s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-minimal ppc64el 3.14.2-1 [921 kB] 58s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14-minimal ppc64el 3.14.2-1 [2712 kB] 58s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-minimal ppc64el 3.14.2-1 [28.2 kB] 58s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3 ppc64el 3.14.2-1 [22.9 kB] 58s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libstdc++6 ppc64el 15.2.0-12ubuntu1 [922 kB] 58s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libatomic1 ppc64el 15.2.0-12ubuntu1 [11.0 kB] 58s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el gcc-15-base ppc64el 15.2.0-12ubuntu1 [59.6 kB] 58s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libgcc-s1 ppc64el 15.2.0-12ubuntu1 [40.2 kB] 58s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libzstd1 ppc64el 1.5.7+dfsg-3 [430 kB] 58s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-stdlib ppc64el 3.14.2-1 [2444 kB] 58s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14 ppc64el 3.14.2-1 [816 kB] 58s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libpython3-stdlib ppc64el 3.14.2-1 [10.9 kB] 58s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el systemd-userdbd ppc64el 259-1ubuntu3 [54.6 kB] 58s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libnss-systemd ppc64el 259-1ubuntu3 [347 kB] 58s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libsystemd0 ppc64el 259-1ubuntu3 [703 kB] 58s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el systemd-sysv ppc64el 259-1ubuntu3 [9250 B] 58s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el systemd-resolved ppc64el 259-1ubuntu3 [344 kB] 58s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libpam-systemd ppc64el 259-1ubuntu3 [372 kB] 58s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libsystemd-shared ppc64el 259-1ubuntu3 [2884 kB] 59s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el systemd ppc64el 259-1ubuntu3 [3301 kB] 59s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el systemd-cryptsetup ppc64el 259-1ubuntu3 [133 kB] 59s Get:22 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el udev ppc64el 259-1ubuntu3 [1505 kB] 59s Get:23 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libudev1 ppc64el 259-1ubuntu3 [252 kB] 59s Get:24 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgpg-error-l10n all 1.58-1build1 [9192 B] 59s Get:25 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgpg-error0 ppc64el 1.58-1build1 [106 kB] 59s Get:26 http://ftpmaster.internal/ubuntu resolute/main ppc64el libtasn1-6 ppc64el 4.21.0-2 [58.0 kB] 59s Get:27 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el vim-tiny ppc64el 2:9.1.1882-1ubuntu2 [1180 kB] 59s Get:28 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el vim-common all 2:9.1.1882-1ubuntu2 [402 kB] 59s Get:29 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el xxd ppc64el 2:9.1.1882-1ubuntu2 [71.6 kB] 59s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el libplymouth5 ppc64el 24.004.60+git20250831.4a3c171d-0ubuntu5 [174 kB] 59s Get:31 http://ftpmaster.internal/ubuntu resolute/main ppc64el plymouth-theme-ubuntu-text ppc64el 24.004.60+git20250831.4a3c171d-0ubuntu5 [11.2 kB] 59s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el plymouth ppc64el 24.004.60+git20250831.4a3c171d-0ubuntu5 [156 kB] 59s Get:33 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-gdbm ppc64el 3.14.2-1 [11.1 kB] 59s Get:34 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libctf0 ppc64el 2.45.50.20260119-1ubuntu1 [118 kB] 59s Get:35 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libctf-nobfd0 ppc64el 2.45.50.20260119-1ubuntu1 [121 kB] 59s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el binutils-powerpc64le-linux-gnu ppc64el 2.45.50.20260119-1ubuntu1 [1030 kB] 59s Get:37 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libbinutils ppc64el 2.45.50.20260119-1ubuntu1 [722 kB] 59s Get:38 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el binutils ppc64el 2.45.50.20260119-1ubuntu1 [3266 B] 59s Get:39 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el binutils-common ppc64el 2.45.50.20260119-1ubuntu1 [222 kB] 59s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libsframe3 ppc64el 2.45.50.20260119-1ubuntu1 [23.7 kB] 59s Get:41 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblzo2-2 ppc64el 2.10-3build2 [97.2 kB] 59s Get:42 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-jaraco.context all 6.0.1-2 [8198 B] 59s Get:43 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el zstd ppc64el 1.5.7+dfsg-3 [845 kB] 59s Get:44 http://ftpmaster.internal/ubuntu resolute/main ppc64el cloud-initramfs-copymods all 0.50 [4528 B] 59s Get:45 http://ftpmaster.internal/ubuntu resolute/main ppc64el cloud-initramfs-dyn-netconf all 0.50 [6514 B] 60s dpkg-preconfigure: unable to re-open stdin: No such file or directory 60s Fetched 23.7 MB in 2s (15.5 MB/s) 60s Selecting previously unselected package libpython3.14-minimal:ppc64el. 61s (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 ... 120821 files and directories currently installed.) 61s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_ppc64el.deb ... 61s Unpacking libpython3.14-minimal:ppc64el (3.14.2-1) ... 61s Selecting previously unselected package python3.14-minimal. 61s Preparing to unpack .../python3.14-minimal_3.14.2-1_ppc64el.deb ... 62s Unpacking python3.14-minimal (3.14.2-1) ... 62s Setting up libpython3.14-minimal:ppc64el (3.14.2-1) ... 62s Setting up python3.14-minimal (3.14.2-1) ... 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 ... 121163 files and directories currently installed.) 63s Preparing to unpack .../python3-minimal_3.14.2-1_ppc64el.deb ... 63s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 63s Setting up python3-minimal (3.14.2-1) ... 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 ... 121163 files and directories currently installed.) 63s Preparing to unpack .../python3_3.14.2-1_ppc64el.deb ... 64s running python pre-rtupdate hooks for python3.14... 64s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 64s Preparing to unpack .../libstdc++6_15.2.0-12ubuntu1_ppc64el.deb ... 64s Unpacking libstdc++6:ppc64el (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 64s Preparing to unpack .../libatomic1_15.2.0-12ubuntu1_ppc64el.deb ... 64s Unpacking libatomic1:ppc64el (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 64s Preparing to unpack .../gcc-15-base_15.2.0-12ubuntu1_ppc64el.deb ... 64s Unpacking gcc-15-base:ppc64el (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 65s Setting up gcc-15-base:ppc64el (15.2.0-12ubuntu1) ... 65s (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 ... 121164 files and directories currently installed.) 65s Preparing to unpack .../libgcc-s1_15.2.0-12ubuntu1_ppc64el.deb ... 65s Unpacking libgcc-s1:ppc64el (15.2.0-12ubuntu1) over (15.2.0-11ubuntu1) ... 65s Setting up libgcc-s1:ppc64el (15.2.0-12ubuntu1) ... 65s (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 ... 121164 files and directories currently installed.) 65s Preparing to unpack .../libzstd1_1.5.7+dfsg-3_ppc64el.deb ... 65s Unpacking libzstd1:ppc64el (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 65s Setting up libzstd1:ppc64el (1.5.7+dfsg-3) ... 66s Selecting previously unselected package libpython3.14-stdlib:ppc64el. 66s (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 ... 121164 files and directories currently installed.) 66s Preparing to unpack .../0-libpython3.14-stdlib_3.14.2-1_ppc64el.deb ... 66s Unpacking libpython3.14-stdlib:ppc64el (3.14.2-1) ... 66s Selecting previously unselected package python3.14. 66s Preparing to unpack .../1-python3.14_3.14.2-1_ppc64el.deb ... 66s Unpacking python3.14 (3.14.2-1) ... 66s Preparing to unpack .../2-libpython3-stdlib_3.14.2-1_ppc64el.deb ... 66s Unpacking libpython3-stdlib:ppc64el (3.14.2-1) over (3.13.9-3) ... 66s Preparing to unpack .../3-systemd-userdbd_259-1ubuntu3_ppc64el.deb ... 66s Unpacking systemd-userdbd (259-1ubuntu3) over (259-1ubuntu2) ... 66s Preparing to unpack .../4-libnss-systemd_259-1ubuntu3_ppc64el.deb ... 66s Unpacking libnss-systemd:ppc64el (259-1ubuntu3) over (259-1ubuntu2) ... 67s Preparing to unpack .../5-libsystemd0_259-1ubuntu3_ppc64el.deb ... 67s Unpacking libsystemd0:ppc64el (259-1ubuntu3) over (259-1ubuntu2) ... 67s Setting up libsystemd0:ppc64el (259-1ubuntu3) ... 67s (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 ... 121595 files and directories currently installed.) 67s Preparing to unpack .../systemd-sysv_259-1ubuntu3_ppc64el.deb ... 67s Unpacking systemd-sysv (259-1ubuntu3) over (259-1ubuntu2) ... 67s Preparing to unpack .../systemd-resolved_259-1ubuntu3_ppc64el.deb ... 67s Unpacking systemd-resolved (259-1ubuntu3) over (259-1ubuntu2) ... 67s Preparing to unpack .../libpam-systemd_259-1ubuntu3_ppc64el.deb ... 67s Unpacking libpam-systemd:ppc64el (259-1ubuntu3) over (259-1ubuntu2) ... 68s Preparing to unpack .../libsystemd-shared_259-1ubuntu3_ppc64el.deb ... 68s Unpacking libsystemd-shared:ppc64el (259-1ubuntu3) over (259-1ubuntu2) ... 68s Setting up libsystemd-shared:ppc64el (259-1ubuntu3) ... 68s (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 ... 121595 files and directories currently installed.) 68s Preparing to unpack .../systemd_259-1ubuntu3_ppc64el.deb ... 68s Unpacking systemd (259-1ubuntu3) over (259-1ubuntu2) ... 69s Preparing to unpack .../systemd-cryptsetup_259-1ubuntu3_ppc64el.deb ... 69s Unpacking systemd-cryptsetup (259-1ubuntu3) over (259-1ubuntu2) ... 69s Preparing to unpack .../udev_259-1ubuntu3_ppc64el.deb ... 69s Unpacking udev (259-1ubuntu3) over (259-1ubuntu2) ... 69s Preparing to unpack .../libudev1_259-1ubuntu3_ppc64el.deb ... 69s Unpacking libudev1:ppc64el (259-1ubuntu3) over (259-1ubuntu2) ... 70s Setting up libudev1:ppc64el (259-1ubuntu3) ... 70s (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 ... 121595 files and directories currently installed.) 70s Preparing to unpack .../00-libgpg-error-l10n_1.58-1build1_all.deb ... 70s Unpacking libgpg-error-l10n (1.58-1build1) over (1.58-1) ... 70s Preparing to unpack .../01-libgpg-error0_1.58-1build1_ppc64el.deb ... 70s Unpacking libgpg-error0:ppc64el (1.58-1build1) over (1.58-1) ... 70s Preparing to unpack .../02-libtasn1-6_4.21.0-2_ppc64el.deb ... 70s Unpacking libtasn1-6:ppc64el (4.21.0-2) over (4.20.0-2ubuntu1) ... 70s Preparing to unpack .../03-vim-tiny_2%3a9.1.1882-1ubuntu2_ppc64el.deb ... 70s Unpacking vim-tiny (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 70s Preparing to unpack .../04-vim-common_2%3a9.1.1882-1ubuntu2_all.deb ... 70s Unpacking vim-common (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 70s Preparing to unpack .../05-xxd_2%3a9.1.1882-1ubuntu2_ppc64el.deb ... 70s Unpacking xxd (2:9.1.1882-1ubuntu2) over (2:9.1.1882-1ubuntu1) ... 71s Preparing to unpack .../06-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu5_ppc64el.deb ... 71s Unpacking libplymouth5:ppc64el (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 71s Preparing to unpack .../07-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu5_ppc64el.deb ... 71s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 71s Preparing to unpack .../08-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu5_ppc64el.deb ... 71s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 71s Preparing to unpack .../09-python3-gdbm_3.14.2-1_ppc64el.deb ... 71s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 72s Preparing to unpack .../10-libctf0_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 72s Unpacking libctf0:ppc64el (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 72s Preparing to unpack .../11-libctf-nobfd0_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 72s Unpacking libctf-nobfd0:ppc64el (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 72s Preparing to unpack .../12-binutils-powerpc64le-linux-gnu_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 72s Unpacking binutils-powerpc64le-linux-gnu (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 72s Preparing to unpack .../13-libbinutils_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 72s Unpacking libbinutils:ppc64el (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 73s Preparing to unpack .../14-binutils_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 73s Unpacking binutils (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 73s Preparing to unpack .../15-binutils-common_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 73s Unpacking binutils-common:ppc64el (2.45.50.20260119-1ubuntu1) over (2.45.50.20251209-1ubuntu1) ... 73s Selecting previously unselected package libsframe3:ppc64el. 73s Preparing to unpack .../16-libsframe3_2.45.50.20260119-1ubuntu1_ppc64el.deb ... 73s Unpacking libsframe3:ppc64el (2.45.50.20260119-1ubuntu1) ... 73s Preparing to unpack .../17-liblzo2-2_2.10-3build2_ppc64el.deb ... 73s Unpacking liblzo2-2:ppc64el (2.10-3build2) over (2.10-3build1) ... 73s Preparing to unpack .../18-python3-jaraco.context_6.0.1-2_all.deb ... 73s Unpacking python3-jaraco.context (6.0.1-2) over (6.0.1-1build1) ... 74s Preparing to unpack .../19-zstd_1.5.7+dfsg-3_ppc64el.deb ... 74s Unpacking zstd (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 74s Preparing to unpack .../20-cloud-initramfs-copymods_0.50_all.deb ... 74s Unpacking cloud-initramfs-copymods (0.50) over (0.49build1) ... 74s Preparing to unpack .../21-cloud-initramfs-dyn-netconf_0.50_all.deb ... 74s Unpacking cloud-initramfs-dyn-netconf (0.50) over (0.49build1) ... 74s Setting up libgpg-error0:ppc64el (1.58-1build1) ... 74s Setting up libpython3.14-stdlib:ppc64el (3.14.2-1) ... 74s Setting up binutils-common:ppc64el (2.45.50.20260119-1ubuntu1) ... 74s Setting up libsframe3:ppc64el (2.45.50.20260119-1ubuntu1) ... 74s Setting up libctf-nobfd0:ppc64el (2.45.50.20260119-1ubuntu1) ... 74s Setting up libnss-systemd:ppc64el (259-1ubuntu3) ... 74s Setting up liblzo2-2:ppc64el (2.10-3build2) ... 75s Setting up systemd (259-1ubuntu3) ... 75s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 75s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 76s Setting up xxd (2:9.1.1882-1ubuntu2) ... 76s Setting up vim-common (2:9.1.1882-1ubuntu2) ... 76s Setting up systemd-cryptsetup (259-1ubuntu3) ... 76s Setting up cloud-initramfs-copymods (0.50) ... 76s Setting up libatomic1:ppc64el (15.2.0-12ubuntu1) ... 76s Setting up udev (259-1ubuntu3) ... 77s Setting up libplymouth5:ppc64el (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 77s Setting up cloud-initramfs-dyn-netconf (0.50) ... 77s Setting up libtasn1-6:ppc64el (4.21.0-2) ... 77s Setting up python3.14 (3.14.2-1) ... 78s Setting up libbinutils:ppc64el (2.45.50.20260119-1ubuntu1) ... 78s Setting up libgpg-error-l10n (1.58-1build1) ... 78s Setting up libstdc++6:ppc64el (15.2.0-12ubuntu1) ... 78s Setting up libpython3-stdlib:ppc64el (3.14.2-1) ... 78s Setting up systemd-resolved (259-1ubuntu3) ... 79s Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 148. 79s Setting up libctf0:ppc64el (2.45.50.20260119-1ubuntu1) ... 79s Setting up systemd-userdbd (259-1ubuntu3) ... 80s Setting up systemd-sysv (259-1ubuntu3) ... 80s Setting up python3-gdbm (3.14.2-1) ... 80s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 80s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 80s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 80s Setting up python3 (3.14.2-1) ... 80s running python rtupdate hooks for python3.14... 80s running python post-rtupdate hooks for python3.14... 80s Setting up vim-tiny (2:9.1.1882-1ubuntu2) ... 80s Setting up libpam-systemd:ppc64el (259-1ubuntu3) ... 81s Setting up binutils-powerpc64le-linux-gnu (2.45.50.20260119-1ubuntu1) ... 81s Setting up zstd (1.5.7+dfsg-3) ... 81s Setting up python3-jaraco.context (6.0.1-2) ... 81s Setting up binutils (2.45.50.20260119-1ubuntu1) ... 81s Processing triggers for dbus (1.16.2-2ubuntu2) ... 81s Processing triggers for shared-mime-info (2.4-5build2) ... 87s Processing triggers for procps (2:4.0.4-9ubuntu1) ... 87s Processing triggers for initramfs-tools (0.150ubuntu7) ... 87s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 95s Processing triggers for libc-bin (2.42-2ubuntu4) ... 95s Processing triggers for man-db (2.13.1-1) ... 97s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 97s Processing triggers for initramfs-tools (0.150ubuntu7) ... 97s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 106s autopkgtest [03:47:27]: upgrading testbed (apt dist-upgrade and autopurge) 106s Reading package lists... 106s Building dependency tree... 106s Reading state information... 106s Calculating upgrade... 106s The following packages were automatically installed and are no longer required: 106s python3.13 python3.13-minimal 106s Use 'sudo apt autoremove' to remove them. 107s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 107s Reading package lists... 107s Building dependency tree... 107s Reading state information... 107s Solving dependencies... 107s The following packages will be REMOVED: 107s python3.13* python3.13-minimal* 107s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 107s After this operation, 9077 kB disk space will be freed. 107s (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 ... 121599 files and directories currently installed.) 107s Removing python3.13 (3.13.11-1) ... 107s Removing python3.13-minimal (3.13.11-1) ... 109s Processing triggers for man-db (2.13.1-1) ... 109s Processing triggers for systemd (259-1ubuntu3) ... 109s (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 ... 121572 files and directories currently installed.) 109s Purging configuration files for python3.13-minimal (3.13.11-1) ... 109s autopkgtest [03:47:30]: rebooting testbed after setup commands that affected boot 149s autopkgtest [03:48:10]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:45:54 UTC 2026 152s autopkgtest [03:48:13]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cobra 154s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (dsc) [3080 B] 154s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (tar) [3651 kB] 154s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (diff) [11.1 kB] 155s gpgv: Signature made Wed Jul 2 22:43:59 2025 UTC 155s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 155s gpgv: issuer "tchet@debian.org" 155s gpgv: Can't check signature: No public key 155s dpkg-source: warning: cannot verify inline signature for ./python-cobra_0.29.1-3.dsc: no acceptable signature found 155s autopkgtest [03:48:16]: testing package python-cobra version 0.29.1-3 155s autopkgtest [03:48:16]: build not needed 156s autopkgtest [03:48:17]: test run-unit-test: preparing testbed 156s Reading package lists... 156s Building dependency tree... 156s Reading state information... 156s Solving dependencies... 157s The following NEW packages will be installed: 157s diffstat gettext libamd3 libblas3 libcolamd3 libgfortran5 libglpk40 libgomp1 157s liblapack3 libltdl7 libpython3.14 libqhull-r8.0 libsuitesparseconfig7 157s python-cobra-data python3-annotated-types python3-anyio python3-click 157s python3-cobra python3-cpuinfo python3-decorator python3-depinfo 157s python3-diskcache python3-dnspython python3-email-validator python3-h11 157s python3-httpcore python3-httpx python3-iniconfig python3-mpmath 157s python3-numpy python3-numpy-dev python3-optlang python3-pandas 157s python3-pandas-lib python3-platformdirs python3-pluggy python3-pydantic 157s python3-pydantic-core python3-pytest python3-pytest-benchmark 157s python3-pytest-mock python3-pytz python3-ruamel.yaml 157s python3-ruamel.yaml.clib python3-sbml5 python3-scipy python3-sniffio 157s python3-swiglpk python3-sympy python3-tabulate python3-typing-inspection 157s quilt 157s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 157s Need to get 66.9 MB of archives. 157s After this operation, 389 MB of additional disk space will be used. 157s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-numpy-dev ppc64el 1:2.3.5+ds-3 [153 kB] 157s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el libblas3 ppc64el 3.12.1-7ubuntu1 [291 kB] 157s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libgfortran5 ppc64el 15.2.0-12ubuntu1 [620 kB] 157s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblapack3 ppc64el 3.12.1-7ubuntu1 [2960 kB] 157s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-numpy ppc64el 1:2.3.5+ds-3 [5722 kB] 158s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el diffstat ppc64el 1.68-1 [34.9 kB] 158s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libgomp1 ppc64el 15.2.0-12ubuntu1 [169 kB] 158s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.2-1 [1177 kB] 159s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libsuitesparseconfig7 ppc64el 1:7.12.1+dfsg-1 [22.1 kB] 159s Get:10 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libamd3 ppc64el 1:7.12.1+dfsg-1 [44.6 kB] 159s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el libcolamd3 ppc64el 1:7.12.1+dfsg-1 [31.0 kB] 159s Get:12 http://ftpmaster.internal/ubuntu resolute/main ppc64el libltdl7 ppc64el 2.5.4-9 [51.5 kB] 159s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libglpk40 ppc64el 5.0-2 [488 kB] 159s Get:14 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14 ppc64el 3.14.2-1 [2731 kB] 159s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libqhull-r8.0 ppc64el 2020.2-8 [227 kB] 159s Get:16 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python-cobra-data all 0.29.1-3 [1611 kB] 159s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-annotated-types all 0.7.0-1 [19.4 kB] 159s Get:18 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-sniffio all 1.3.1-1 [7262 B] 159s Get:19 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-anyio all 4.11.0-3 [72.6 kB] 159s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 159s Get:21 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-depinfo ppc64el 2.2.0-4 [11.2 kB] 159s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-diskcache all 5.6.3-1 [35.1 kB] 159s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-h11 all 0.14.0-1.1 [51.6 kB] 159s Get:24 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-httpcore all 1.0.9-1 [38.9 kB] 159s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-httpx all 0.28.1-1 [59.4 kB] 159s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-swiglpk ppc64el 5.0.10-2build3 [117 kB] 159s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-mpmath all 1.3.0-2 [423 kB] 159s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-sympy all 1.14.0-2 [4306 kB] 160s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-optlang all 1.8.3-1 [5368 kB] 161s Get:30 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytz all 2025.2-5 [32.4 kB] 161s Get:31 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pandas-lib ppc64el 2.3.3+dfsg-3 [7213 kB] 162s Get:32 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pandas all 2.3.3+dfsg-3 [2948 kB] 162s Get:33 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-platformdirs all 4.5.1-1 [17.1 kB] 162s Get:34 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pydantic-core ppc64el 2.41.5-2 [2313 kB] 162s Get:35 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-typing-inspection all 0.4.2-1 [13.1 kB] 162s Get:36 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 162s Get:37 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-email-validator all 2.2.0-1 [28.5 kB] 162s Get:38 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pydantic ppc64el 2.12.5-2 [312 kB] 162s Get:39 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml.clib ppc64el 0.2.15+ds-1 [230 kB] 162s Get:40 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 162s Get:41 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-tabulate all 0.9.0-1build1 [45.4 kB] 162s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el python3-sbml5 ppc64el 5.20.5+dfsg-1build1 [3863 kB] 163s Get:43 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-cobra ppc64el 0.29.1-3 [1118 kB] 163s Get:44 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-cpuinfo all 9.0.0+git20221119-3 [21.7 kB] 163s Get:45 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-decorator all 5.2.1-2 [28.1 kB] 163s Get:46 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 2.1.0-2 [6962 B] 163s Get:47 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-2 [21.1 kB] 163s Get:48 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest all 9.0.2-2 [277 kB] 163s Get:49 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest-benchmark all 5.2.3-1 [40.0 kB] 163s Get:50 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest-mock all 3.15.1-1 [11.9 kB] 163s Get:51 http://ftpmaster.internal/ubuntu resolute/universe ppc64el quilt all 0.68-1 [439 kB] 163s Get:52 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el python3-scipy ppc64el 1.16.3-4 [20.7 MB] 165s Fetched 66.9 MB in 8s (8144 kB/s) 165s Selecting previously unselected package python3-numpy-dev:ppc64el. 165s (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 ... 121574 files and directories currently installed.) 165s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_ppc64el.deb ... 165s Unpacking python3-numpy-dev:ppc64el (1:2.3.5+ds-3) ... 165s Selecting previously unselected package libblas3:ppc64el. 165s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_ppc64el.deb ... 165s Unpacking libblas3:ppc64el (3.12.1-7ubuntu1) ... 165s Selecting previously unselected package libgfortran5:ppc64el. 165s Preparing to unpack .../02-libgfortran5_15.2.0-12ubuntu1_ppc64el.deb ... 165s Unpacking libgfortran5:ppc64el (15.2.0-12ubuntu1) ... 165s Selecting previously unselected package liblapack3:ppc64el. 165s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_ppc64el.deb ... 165s Unpacking liblapack3:ppc64el (3.12.1-7ubuntu1) ... 166s Selecting previously unselected package python3-numpy. 166s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_ppc64el.deb ... 166s Unpacking python3-numpy (1:2.3.5+ds-3) ... 166s Selecting previously unselected package diffstat. 166s Preparing to unpack .../05-diffstat_1.68-1_ppc64el.deb ... 166s Unpacking diffstat (1.68-1) ... 166s Selecting previously unselected package libgomp1:ppc64el. 166s Preparing to unpack .../06-libgomp1_15.2.0-12ubuntu1_ppc64el.deb ... 166s Unpacking libgomp1:ppc64el (15.2.0-12ubuntu1) ... 166s Selecting previously unselected package gettext. 166s Preparing to unpack .../07-gettext_0.23.2-1_ppc64el.deb ... 166s Unpacking gettext (0.23.2-1) ... 166s Selecting previously unselected package libsuitesparseconfig7:ppc64el. 166s Preparing to unpack .../08-libsuitesparseconfig7_1%3a7.12.1+dfsg-1_ppc64el.deb ... 166s Unpacking libsuitesparseconfig7:ppc64el (1:7.12.1+dfsg-1) ... 166s Selecting previously unselected package libamd3:ppc64el. 166s Preparing to unpack .../09-libamd3_1%3a7.12.1+dfsg-1_ppc64el.deb ... 166s Unpacking libamd3:ppc64el (1:7.12.1+dfsg-1) ... 166s Selecting previously unselected package libcolamd3:ppc64el. 166s Preparing to unpack .../10-libcolamd3_1%3a7.12.1+dfsg-1_ppc64el.deb ... 166s Unpacking libcolamd3:ppc64el (1:7.12.1+dfsg-1) ... 166s Selecting previously unselected package libltdl7:ppc64el. 166s Preparing to unpack .../11-libltdl7_2.5.4-9_ppc64el.deb ... 166s Unpacking libltdl7:ppc64el (2.5.4-9) ... 166s Selecting previously unselected package libglpk40:ppc64el. 166s Preparing to unpack .../12-libglpk40_5.0-2_ppc64el.deb ... 166s Unpacking libglpk40:ppc64el (5.0-2) ... 166s Selecting previously unselected package libpython3.14:ppc64el. 166s Preparing to unpack .../13-libpython3.14_3.14.2-1_ppc64el.deb ... 166s Unpacking libpython3.14:ppc64el (3.14.2-1) ... 166s Selecting previously unselected package libqhull-r8.0:ppc64el. 166s Preparing to unpack .../14-libqhull-r8.0_2020.2-8_ppc64el.deb ... 166s Unpacking libqhull-r8.0:ppc64el (2020.2-8) ... 166s Selecting previously unselected package python-cobra-data. 166s Preparing to unpack .../15-python-cobra-data_0.29.1-3_all.deb ... 166s Unpacking python-cobra-data (0.29.1-3) ... 166s Selecting previously unselected package python3-annotated-types. 166s Preparing to unpack .../16-python3-annotated-types_0.7.0-1_all.deb ... 166s Unpacking python3-annotated-types (0.7.0-1) ... 166s Selecting previously unselected package python3-sniffio. 166s Preparing to unpack .../17-python3-sniffio_1.3.1-1_all.deb ... 166s Unpacking python3-sniffio (1.3.1-1) ... 166s Selecting previously unselected package python3-anyio. 166s Preparing to unpack .../18-python3-anyio_4.11.0-3_all.deb ... 166s Unpacking python3-anyio (4.11.0-3) ... 166s Selecting previously unselected package python3-click. 166s Preparing to unpack .../19-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 166s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 166s Selecting previously unselected package python3-depinfo. 166s Preparing to unpack .../20-python3-depinfo_2.2.0-4_ppc64el.deb ... 166s Unpacking python3-depinfo (2.2.0-4) ... 166s Selecting previously unselected package python3-diskcache. 166s Preparing to unpack .../21-python3-diskcache_5.6.3-1_all.deb ... 166s Unpacking python3-diskcache (5.6.3-1) ... 166s Selecting previously unselected package python3-h11. 166s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 166s Unpacking python3-h11 (0.14.0-1.1) ... 166s Selecting previously unselected package python3-httpcore. 166s Preparing to unpack .../23-python3-httpcore_1.0.9-1_all.deb ... 166s Unpacking python3-httpcore (1.0.9-1) ... 166s Selecting previously unselected package python3-httpx. 166s Preparing to unpack .../24-python3-httpx_0.28.1-1_all.deb ... 166s Unpacking python3-httpx (0.28.1-1) ... 166s Selecting previously unselected package python3-swiglpk. 166s Preparing to unpack .../25-python3-swiglpk_5.0.10-2build3_ppc64el.deb ... 166s Unpacking python3-swiglpk (5.0.10-2build3) ... 166s Selecting previously unselected package python3-mpmath. 166s Preparing to unpack .../26-python3-mpmath_1.3.0-2_all.deb ... 166s Unpacking python3-mpmath (1.3.0-2) ... 166s Selecting previously unselected package python3-sympy. 166s Preparing to unpack .../27-python3-sympy_1.14.0-2_all.deb ... 166s Unpacking python3-sympy (1.14.0-2) ... 167s Selecting previously unselected package python3-optlang. 167s Preparing to unpack .../28-python3-optlang_1.8.3-1_all.deb ... 167s Unpacking python3-optlang (1.8.3-1) ... 167s Selecting previously unselected package python3-pytz. 167s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 167s Unpacking python3-pytz (2025.2-5) ... 167s Selecting previously unselected package python3-pandas-lib:ppc64el. 167s Preparing to unpack .../30-python3-pandas-lib_2.3.3+dfsg-3_ppc64el.deb ... 167s Unpacking python3-pandas-lib:ppc64el (2.3.3+dfsg-3) ... 167s Selecting previously unselected package python3-pandas. 167s Preparing to unpack .../31-python3-pandas_2.3.3+dfsg-3_all.deb ... 167s Unpacking python3-pandas (2.3.3+dfsg-3) ... 167s Selecting previously unselected package python3-platformdirs. 167s Preparing to unpack .../32-python3-platformdirs_4.5.1-1_all.deb ... 167s Unpacking python3-platformdirs (4.5.1-1) ... 167s Selecting previously unselected package python3-pydantic-core. 167s Preparing to unpack .../33-python3-pydantic-core_2.41.5-2_ppc64el.deb ... 167s Unpacking python3-pydantic-core (2.41.5-2) ... 167s Selecting previously unselected package python3-typing-inspection. 167s Preparing to unpack .../34-python3-typing-inspection_0.4.2-1_all.deb ... 167s Unpacking python3-typing-inspection (0.4.2-1) ... 167s Selecting previously unselected package python3-dnspython. 167s Preparing to unpack .../35-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 167s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 167s Selecting previously unselected package python3-email-validator. 167s Preparing to unpack .../36-python3-email-validator_2.2.0-1_all.deb ... 167s Unpacking python3-email-validator (2.2.0-1) ... 167s Selecting previously unselected package python3-pydantic. 167s Preparing to unpack .../37-python3-pydantic_2.12.5-2_ppc64el.deb ... 167s Unpacking python3-pydantic (2.12.5-2) ... 167s Selecting previously unselected package python3-ruamel.yaml.clib. 167s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_ppc64el.deb ... 167s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 167s Selecting previously unselected package python3-ruamel.yaml. 167s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 167s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 167s Selecting previously unselected package python3-tabulate. 167s Preparing to unpack .../40-python3-tabulate_0.9.0-1build1_all.deb ... 167s Unpacking python3-tabulate (0.9.0-1build1) ... 167s Selecting previously unselected package python3-sbml5. 167s Preparing to unpack .../41-python3-sbml5_5.20.5+dfsg-1build1_ppc64el.deb ... 167s Unpacking python3-sbml5 (5.20.5+dfsg-1build1) ... 168s Selecting previously unselected package python3-cobra. 168s Preparing to unpack .../42-python3-cobra_0.29.1-3_ppc64el.deb ... 168s Unpacking python3-cobra (0.29.1-3) ... 168s Selecting previously unselected package python3-cpuinfo. 168s Preparing to unpack .../43-python3-cpuinfo_9.0.0+git20221119-3_all.deb ... 168s Unpacking python3-cpuinfo (9.0.0+git20221119-3) ... 168s Selecting previously unselected package python3-decorator. 168s Preparing to unpack .../44-python3-decorator_5.2.1-2_all.deb ... 168s Unpacking python3-decorator (5.2.1-2) ... 168s Selecting previously unselected package python3-iniconfig. 168s Preparing to unpack .../45-python3-iniconfig_2.1.0-2_all.deb ... 168s Unpacking python3-iniconfig (2.1.0-2) ... 168s Selecting previously unselected package python3-pluggy. 168s Preparing to unpack .../46-python3-pluggy_1.6.0-2_all.deb ... 168s Unpacking python3-pluggy (1.6.0-2) ... 168s Selecting previously unselected package python3-pytest. 168s Preparing to unpack .../47-python3-pytest_9.0.2-2_all.deb ... 168s Unpacking python3-pytest (9.0.2-2) ... 168s Selecting previously unselected package python3-pytest-benchmark. 168s Preparing to unpack .../48-python3-pytest-benchmark_5.2.3-1_all.deb ... 168s Unpacking python3-pytest-benchmark (5.2.3-1) ... 168s Selecting previously unselected package python3-pytest-mock. 168s Preparing to unpack .../49-python3-pytest-mock_3.15.1-1_all.deb ... 168s Unpacking python3-pytest-mock (3.15.1-1) ... 168s Selecting previously unselected package quilt. 168s Preparing to unpack .../50-quilt_0.68-1_all.deb ... 168s Unpacking quilt (0.68-1) ... 168s Selecting previously unselected package python3-scipy. 168s Preparing to unpack .../51-python3-scipy_1.16.3-4_ppc64el.deb ... 168s Unpacking python3-scipy (1.16.3-4) ... 168s Setting up python3-iniconfig (2.1.0-2) ... 169s Setting up python3-sniffio (1.3.1-1) ... 169s Setting up python3-pydantic-core (2.41.5-2) ... 169s Setting up python3-typing-inspection (0.4.2-1) ... 169s Setting up python3-anyio (4.11.0-3) ... 169s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 169s Setting up python3-tabulate (0.9.0-1build1) ... 169s Setting up libqhull-r8.0:ppc64el (2020.2-8) ... 169s Setting up python3-pytz (2025.2-5) ... 169s Setting up libgomp1:ppc64el (15.2.0-12ubuntu1) ... 169s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 170s Setting up python3-annotated-types (0.7.0-1) ... 170s Setting up python3-platformdirs (4.5.1-1) ... 170s Setting up python3-decorator (5.2.1-2) ... 170s Setting up libblas3:ppc64el (3.12.1-7ubuntu1) ... 170s update-alternatives: using /usr/lib/powerpc64le-linux-gnu/blas/libblas.so.3 to provide /usr/lib/powerpc64le-linux-gnu/libblas.so.3 (libblas.so.3-powerpc64le-linux-gnu) in auto mode 170s Setting up diffstat (1.68-1) ... 170s Setting up python3-numpy-dev:ppc64el (1:2.3.5+ds-3) ... 170s Setting up python3-h11 (0.14.0-1.1) ... 170s Setting up python3-depinfo (2.2.0-4) ... 170s Setting up python3-cpuinfo (9.0.0+git20221119-3) ... 170s Setting up libltdl7:ppc64el (2.5.4-9) ... 170s Setting up libgfortran5:ppc64el (15.2.0-12ubuntu1) ... 170s Setting up python3-pluggy (1.6.0-2) ... 170s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 171s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 171s Setting up libpython3.14:ppc64el (3.14.2-1) ... 171s Setting up libsuitesparseconfig7:ppc64el (1:7.12.1+dfsg-1) ... 171s Setting up python3-email-validator (2.2.0-1) ... 171s Setting up python3-mpmath (1.3.0-2) ... 172s Setting up python3-diskcache (5.6.3-1) ... 172s Setting up python-cobra-data (0.29.1-3) ... 172s Setting up python3-httpcore (1.0.9-1) ... 172s Setting up python3-sympy (1.14.0-2) ... 178s /usr/lib/python3/dist-packages/sympy/testing/runtests.py:283: SyntaxWarning: 'return' in a 'finally' block 178s return p.returncode 178s Setting up liblapack3:ppc64el (3.12.1-7ubuntu1) ... 178s update-alternatives: using /usr/lib/powerpc64le-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/powerpc64le-linux-gnu/liblapack.so.3 (liblapack.so.3-powerpc64le-linux-gnu) in auto mode 178s Setting up gettext (0.23.2-1) ... 178s Setting up libamd3:ppc64el (1:7.12.1+dfsg-1) ... 178s Setting up libcolamd3:ppc64el (1:7.12.1+dfsg-1) ... 178s Setting up python3-pytest (9.0.2-2) ... 179s Setting up quilt (0.68-1) ... 179s Setting up python3-sbml5 (5.20.5+dfsg-1build1) ... 179s Setting up python3-httpx (0.28.1-1) ... 179s Setting up libglpk40:ppc64el (5.0-2) ... 179s Setting up python3-pydantic (2.12.5-2) ... 180s Setting up python3-numpy (1:2.3.5+ds-3) ... 182s Setting up python3-pytest-mock (3.15.1-1) ... 182s Setting up python3-swiglpk (5.0.10-2build3) ... 182s Setting up python3-optlang (1.8.3-1) ... 182s Setting up python3-pytest-benchmark (5.2.3-1) ... 182s Setting up python3-scipy (1.16.3-4) ... 186s Setting up python3-pandas-lib:ppc64el (2.3.3+dfsg-3) ... 186s Setting up python3-pandas (2.3.3+dfsg-3) ... 191s Setting up python3-cobra (0.29.1-3) ... 191s Processing triggers for libc-bin (2.42-2ubuntu4) ... 191s Processing triggers for man-db (2.13.1-1) ... 192s Processing triggers for install-info (7.2-5) ... 194s autopkgtest [03:48:55]: test run-unit-test: [----------------------- 194s File series fully applied, ends at patch debian/patches/pr1452.patch 194s Running Tests 194s Since python3-sbml5 can only deal with one Python3 version we restrict the test to default Python3 198s ============================= test session starts ============================== 198s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 198s 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) 198s rootdir: /tmp/autopkgtest.OuYOir/autopkgtest_tmp 198s plugins: benchmark-5.2.3, anyio-4.11.0, typeguard-4.4.4, mock-3.15.1 198s collected 554 items 198s 198s tests/test_core/test_configuration.py ...... [ 1%] 204s tests/test_core/test_core_reaction.py ..........ss.............F..FFFF.. [ 7%] 205s ...................x....... [ 12%] 205s tests/test_core/test_dictlist.py ...................... [ 16%] 205s tests/test_core/test_formula.py ..... [ 16%] 205s tests/test_core/test_gene.py . [ 17%] 205s tests/test_core/test_gpr.py ......................x..x.................. [ 25%] 214s ........................... [ 29%] 214s tests/test_core/test_group.py .. [ 30%] 215s tests/test_core/test_metabolite.py ...ss.ss. [ 31%] 222s tests/test_core/test_model.py .........................FF.F............. [ 39%] 223s ...........s..s.ss. [ 42%] 223s tests/test_core/test_solution.py .ss [ 43%] 230s tests/test_flux_analysis/test_deletion.py ....s..... [ 45%] 231s tests/test_flux_analysis/test_fastcc.py .... [ 46%] 234s tests/test_flux_analysis/test_geometric.py .. [ 46%] 235s tests/test_flux_analysis/test_moma.py . [ 46%] 239s tests/test_flux_analysis/test_parsimonious.py .. [ 46%] 239s tests/test_flux_analysis/test_reaction.py . [ 47%] 242s tests/test_flux_analysis/test_room.py .... [ 47%] 249s tests/test_flux_analysis/test_variability.py ....... [ 49%] 249s tests/test_flux_analysis/test_deletion.py sss [ 49%] 249s tests/test_flux_analysis/test_moma.py s [ 49%] 257s tests/test_flux_analysis/test_deletion.py ...... [ 50%] 259s tests/test_flux_analysis/test_gapfilling.py F [ 51%] 259s tests/test_flux_analysis/test_helpers.py ... [ 51%] 260s tests/test_flux_analysis/test_loopless.py ..... [ 52%] 263s tests/test_flux_analysis/test_phenotype_phase_plane.py ...... [ 53%] 264s tests/test_flux_analysis/test_variability.py ....... [ 54%] 264s tests/test_io/test_annotation.py .. [ 55%] 264s tests/test_io/test_annotation_format.py .. [ 55%] 268s tests/test_io/test_io_order.py ........................... [ 60%] 268s tests/test_io/test_json.py .... [ 61%] 286s tests/test_io/test_mat.py ............... [ 63%] 286s tests/test_io/test_notes.py . [ 64%] 286s tests/test_io/test_pickle.py .. [ 64%] 294s tests/test_io/test_sbml.py .ssss............xxxx.x.x..s............. [ 71%] 294s tests/test_io/test_web/test_load.py ..ssss. [ 73%] 295s tests/test_io/test_yaml.py .x [ 73%] 295s tests/test_manipulation/test_annotate.py . [ 73%] 295s tests/test_manipulation/test_delete.py ....... [ 74%] 295s tests/test_manipulation/test_modify.py ... [ 75%] 295s tests/test_manipulation/test_validate.py .. [ 75%] 296s tests/test_medium/test_boundary_types.py ........... [ 77%] 297s tests/test_medium/test_minimal_medium.py .......... [ 79%] 300s tests/test_sampling/test_achr.py ...... [ 80%] 303s tests/test_sampling/test_optgp.py ...... [ 81%] 312s tests/test_sampling/test_sampling.py .......... [ 83%] 313s tests/test_summary/test_metabolite_summary.py FFFFFFFFFFFFFFFFF [ 86%] 316s tests/test_summary/test_model_summary.py FFFFFFFFFFFFFFF [ 89%] 318s tests/test_summary/test_reaction_summary.py FFFFFFFFFFFFFFFFFFFF [ 92%] 318s tests/test_util/test_array.py .. [ 93%] 318s tests/test_util/test_context.py ... [ 93%] 333s tests/test_util/test_process_pool.py ............... [ 96%] 334s tests/test_util/test_solver.py ..............s [ 99%] 334s tests/test_util/test_util.py ...X [100%] 334s 334s =================================== FAILURES =================================== 334s __________________________________ test_copy ___________________________________ 334s 334s model = 334s 334s def test_copy(model: Model) -> None: 334s """Test reaction copying.""" 334s PGI = model.reactions.PGI 334s > copied = PGI.copy() 334s ^^^^^^^^^^ 334s 334s tests/test_core/test_core_reaction.py:393: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________________________ test_add ___________________________________ 334s 334s model = 334s 334s def test_add(model: Model) -> None: 334s """Test reaction addition to model.""" 334s # Not in place addition should work on a copy 334s > new = model.reactions.PGI + model.reactions.EX_h2o_e 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_core/test_core_reaction.py:469: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 334s new_reaction = self.copy() 334s ^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s __________________________________ test_radd ___________________________________ 334s 334s model = 334s 334s def test_radd(model: Model) -> None: 334s """Test __radd__ for a reaction.""" 334s > new = sum([model.reactions.PGI, model.reactions.EX_h2o_e]) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_core/test_core_reaction.py:485: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 334s new_reaction = self.copy() 334s ^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________________________ test_mul ___________________________________ 334s 334s model = 334s 334s def test_mul(model: Model) -> None: 334s """Test scalar multiplication of factors with a reaction.""" 334s > new = model.reactions.PGI * 2 334s ^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_core/test_core_reaction.py:492: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1131: in __mul__ 334s new = self.copy() 334s ^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________________________ test_sub ___________________________________ 334s 334s model = 334s 334s def test_sub(model: Model) -> None: 334s """Test reaction subtraction.""" 334s > new = model.reactions.PGI - model.reactions.EX_h2o_e 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_core/test_core_reaction.py:498: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1050: in __sub__ 334s new = self.copy() 334s ^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________________ test_deepcopy_benchmark ____________________________ 334s 334s model = 334s benchmark = 334s 334s def test_deepcopy_benchmark(model: Model, benchmark: BenchmarkFixture) -> None: 334s """Benchmark deepcopying a model. 334s 334s Parameters 334s ---------- 334s model: cobra.Model 334s benchmark: BenchmarkFixture 334s """ 334s > benchmark(deepcopy, model) 334s 334s tests/test_core/test_model.py:613: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:184: in __call__ 334s return self._raw(function_to_benchmark, *args, **kwargs) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:216: in _raw 334s duration, iterations, loops_range = self._calibrate_timer(runner) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:370: in _calibrate_timer 334s duration = runner(loops_range) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:138: in runner 334s function_to_benchmark(*args, **kwargs) 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:240: in _reconstruct 334s state = deepcopy(state, memo) 334s ^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:131: in deepcopy 334s y = copier(x, memo) 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 334s y[deepcopy(key, memo)] = deepcopy(value, memo) 334s ^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:257: in _reconstruct 334s item = deepcopy(item, memo) 334s ^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ________________________________ test_deepcopy _________________________________ 334s 334s model = 334s 334s def test_deepcopy(model: Model) -> None: 334s """Test deepcopying works, and maintains reference structures. 334s 334s Parameters 334s ---------- 334s model: cobra.Model 334s """ 334s # Reference structures are maintained when deepcopying 334s > model_copy = deepcopy(model) 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_core/test_model.py:624: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:240: in _reconstruct 334s state = deepcopy(state, memo) 334s ^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:131: in deepcopy 334s y = copier(x, memo) 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 334s y[deepcopy(key, memo)] = deepcopy(value, memo) 334s ^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:257: in _reconstruct 334s item = deepcopy(item, memo) 334s ^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________________________ test_merge_models _______________________________ 334s 334s model = 334s tiny_toy_model = 334s 334s def test_merge_models(model: Model, tiny_toy_model: Model) -> None: 334s """Test merging models. 334s 334s Parameters 334s ---------- 334s model: cobra.Model 334s tiny_toy_model: cobra.Model 334s """ 334s with model, tiny_toy_model: 334s # Add some cons/vars to tiny_toy_model for testing merging 334s tiny_toy_model.add_reactions([Reaction("EX_glc__D_e")]) 334s variable = tiny_toy_model.problem.Variable("foo") 334s constraint = tiny_toy_model.problem.Constraint( 334s variable, ub=0, lb=0, name="constraint" 334s ) 334s tiny_toy_model.add_cons_vars([variable, constraint]) 334s 334s > merged = model.merge( 334s tiny_toy_model, inplace=False, objective="sum", prefix_existing="tiny_" 334s ) 334s 334s tests/test_core/test_model.py:679: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1454: in merge 334s new_reactions = deepcopy(right.reactions) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:257: in _reconstruct 334s item = deepcopy(item, memo) 334s ^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________________________ test_gapfilling ________________________________ 334s 334s salmonella = 334s 334s def test_gapfilling(salmonella: Model) -> None: 334s """Test Gapfilling.""" 334s m = Model() 334s m.add_metabolites([Metabolite(m_id) for m_id in ["a", "b", "c"]]) 334s exa = Reaction("EX_a") 334s exa.add_metabolites({m.metabolites.a: 1}) 334s b2c = Reaction("b2c") 334s b2c.add_metabolites({m.metabolites.b: -1, m.metabolites.c: 1}) 334s dmc = Reaction("DM_c") 334s dmc.add_metabolites({m.metabolites.c: -1}) 334s m.add_reactions([exa, b2c, dmc]) 334s m.objective = "DM_c" 334s 334s universal = Model() 334s a2b = Reaction("a2b") 334s a2d = Reaction("a2d") 334s universal.add_reactions([a2b, a2d]) 334s a2b.build_reaction_from_string("a --> b", verbose=False) 334s a2d.build_reaction_from_string("a --> d", verbose=False) 334s 334s # # GrowMatch 334s # result = gapfilling.growMatch(m, universal)[0] 334s result = gapfill(m, universal)[0] 334s assert len(result) == 1 334s assert result[0].id == "a2b" 334s 334s # # SMILEY 334s # result = gapfilling.SMILEY(m, "b", universal)[0] 334s with m: 334s m.objective = m.add_boundary(m.metabolites.b, type="demand") 334s result = gapfill(m, universal)[0] 334s assert len(result) == 1 334s assert result[0].id == "a2b" 334s 334s # # 2 rounds of GrowMatch with exchange reactions 334s # result = gapfilling.growMatch(m, None, ex_rxns=True, iterations=2) 334s result = gapfill(m, None, exchange_reactions=True, iterations=2) 334s assert len(result) == 2 334s assert len(result[0]) == 1 334s assert len(result[1]) == 1 334s assert {i[0].id for i in result} == {"EX_b", "EX_c"} 334s 334s # # Gapfilling solution adds metabolites not present in original model 334s # test for when demand = T 334s # a demand reaction must be added to clear new metabolite 334s universal_noDM = Model() 334s a2b = Reaction("a2b") 334s universal_noDM.add_reactions([a2b]) 334s a2b.build_reaction_from_string("a --> b + d", verbose=False) 334s result = gapfill( 334s m, universal_noDM, exchange_reactions=False, demand_reactions=True 334s )[0] 334s # add reaction a2b and demand reaction to clear met d 334s assert len(result) == 2 334s assert "a2b" in [x.id for x in result] 334s 334s # test for when demand = False 334s # test for when metabolites are added to the model and 334s # must be cleared by other reactions in universal model 334s # (i.e. not necessarily a demand reaction) 334s universal_withDM = universal_noDM.copy() 334s d_dm = Reaction("d_dm") 334s universal_withDM.add_reactions([d_dm]) 334s d_dm.build_reaction_from_string("d -->", verbose=False) 334s result = gapfill( 334s m, universal_withDM, exchange_reactions=False, demand_reactions=False 334s )[0] 334s assert len(result) == 2 334s assert "a2b" in [x.id for x in result] 334s 334s # somewhat bigger model 334s universal = Model("universal_reactions") 334s with salmonella as model: 334s for i in [i.id for i in model.metabolites.f6p_c.reactions]: 334s reaction = model.reactions.get_by_id(i) 334s > universal.add_reactions([reaction.copy()]) 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_flux_analysis/test_gapfilling.py:82: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_metabolite_summary_interface[optlang-glpk] ________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_metabolite_summary_interface(model, opt_solver): 334s """Test that a summary can be created successfully.""" 334s model.solver = opt_solver 334s metabolite = model.metabolites.get_by_id("q8_c") 334s > MetaboliteSummary( 334s metabolite=metabolite, 334s model=model, 334s ) 334s 334s tests/test_summary/test_metabolite_summary.py:13: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ________________ test_metabolite_summary_to_frame[optlang-glpk] ________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_metabolite_summary_to_frame(model, opt_solver): 334s """Test that the summary's method ``to_frame`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:39: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs0] ____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:56: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs1] ____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:56: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs2] ____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:56: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs3] ____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:56: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs4] ____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'column_width': 20} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:56: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs0] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:66: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs1] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:66: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs2] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:66: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs3] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("atp_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:66: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________ test_q8_producing_summary[optlang-glpk] ____________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_q8_producing_summary(model, opt_solver): 334s """Test that the production summary of q8 is accurate.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("q8_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:73: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ___________________ test_q8_consuming_summary[optlang-glpk] ____________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_q8_consuming_summary(model, opt_solver): 334s """Test that the consumption summary of q8 is accurate.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("q8_c").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:82: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s __________________ test_fdp_production_with_fva[optlang-glpk] __________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_fdp_production_with_fva(model, opt_solver): 334s """Test that the production summary of fdp is within expected bounds.""" 334s model.solver = opt_solver 334s > summary = model.metabolites.get_by_id("fdp_c").summary(fva=0.99) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:100: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s __________ test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] __________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s metabolite_id = 'q8_c' 334s 334s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 334s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 334s """Test that the metabolite summary inside and outside of a context are equal.""" 334s model.solver = opt_solver 334s with model: 334s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:112: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _________ test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] __________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s metabolite_id = 'fdp_c' 334s 334s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 334s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 334s """Test that the metabolite summary inside and outside of a context are equal.""" 334s model.solver = opt_solver 334s with model: 334s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:112: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _________ test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] __________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s metabolite_id = 'atp_c' 334s 334s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 334s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 334s """Test that the metabolite summary inside and outside of a context are equal.""" 334s model.solver = opt_solver 334s with model: 334s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_metabolite_summary.py:112: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 334s return MetaboliteSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 334s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 334s ^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s __________________ test_model_summary_interface[optlang-glpk] __________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_interface(model, opt_solver): 334s """Test that a summary can be created successfully.""" 334s model.solver = opt_solver 334s > ModelSummary( 334s model=model, 334s ) 334s 334s tests/test_summary/test_model_summary.py:12: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s __________________ test_model_summary_to_frame[optlang-glpk] ___________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_to_frame(model, opt_solver): 334s """Test that the summary's method ``to_frame`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:34: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________ test_model_summary_to_string[optlang-glpk-kwargs0] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_model_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:51: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________ test_model_summary_to_string[optlang-glpk-kwargs1] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_model_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:51: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________ test_model_summary_to_string[optlang-glpk-kwargs2] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_model_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:51: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________ test_model_summary_to_string[optlang-glpk-kwargs3] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_model_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:51: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ______________ test_model_summary_to_string[optlang-glpk-kwargs4] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'column_width': 20} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_model_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:51: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_model_summary_to_html[optlang-glpk-kwargs0] _______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_model_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:61: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_model_summary_to_html[optlang-glpk-kwargs1] _______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_model_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:61: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_model_summary_to_html[optlang-glpk-kwargs2] _______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_model_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:61: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_model_summary_to_html[optlang-glpk-kwargs3] _______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_model_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:61: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _________ test_model_summary_to_frame_previous_solution[optlang-glpk] __________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_to_frame_previous_solution(model, opt_solver): 334s """Test that the summary correctly uses an existing solution.""" 334s model.solver = opt_solver 334s solution = pfba(model) 334s rxn = model.reactions.EX_glc__D_e 334s solution.fluxes[rxn.id] = -123 334s > summary = model.summary(solution=solution) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:71: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________________ test_model_summary_flux[optlang-glpk] _____________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_flux(model, opt_solver): 334s """Test that the summary has expected fluxes.""" 334s model.solver = opt_solver 334s > summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:78: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________________ test_model_summary_fva[optlang-glpk] _____________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_fva(model, opt_solver): 334s """Test that the exchange summary is within expected bounds.""" 334s model.solver = opt_solver 334s > summary = model.summary(fva=0.95) 334s ^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:88: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_model_summary_flux_in_context[optlang-glpk] _______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_model_summary_flux_in_context(model, opt_solver): 334s """Test that the model summary inside and outside of a context are equal.""" 334s model.solver = opt_solver 334s copy = model.copy() 334s with model: 334s model.reactions.EX_glc__D_e.bounds = (0, 1000) 334s model.reactions.EX_ac_e.bounds = (-10, 1000) 334s > context_summary = model.summary() 334s ^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_model_summary.py:109: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 334s return ModelSummary(model=self, solution=solution, fva=fva) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 334s self._generate(model, solution, fva) 334s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 334s rxn.copy(): coef for rxn, coef in coefficients.items() 334s ^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ________________ test_reaction_summary_interface[optlang-glpk] _________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_reaction_summary_interface(model, opt_solver): 334s """Test that a summary can be created successfully.""" 334s model.solver = opt_solver 334s reaction = model.reactions.get_by_id("FUM") 334s > ReactionSummary( 334s reaction=reaction, 334s model=model, 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:13: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _________________ test_reaction_summary_to_frame[optlang-glpk] _________________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s 334s def test_reaction_summary_to_frame(model, opt_solver): 334s """Test that the summary's method ``to_frame`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:37: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs0] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_reaction_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:54: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs1] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_reaction_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:54: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs2] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_reaction_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:54: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs3] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_reaction_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:54: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs4] _____________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'column_width': 20} 334s 334s @pytest.mark.parametrize( 334s "kwargs", 334s [ 334s {}, 334s {"names": True}, 334s {"float_format": ".1f"}, 334s {"threshold": 1e-2}, 334s {"column_width": 20}, 334s ], 334s ) 334s def test_reaction_summary_to_string(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_string`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:54: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs0] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_reaction_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:64: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs1] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'names': True} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_reaction_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:64: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs2] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'float_format': '.1f'} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_reaction_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:64: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs3] ______________ 334s 334s model = , opt_solver = 'optlang-glpk' 334s kwargs = {'threshold': 0.01} 334s 334s @pytest.mark.parametrize( 334s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 334s ) 334s def test_reaction_summary_to_html(model, opt_solver, kwargs): 334s """Test that the summary's method ``to_html`` can be called.""" 334s model.solver = opt_solver 334s > summary = model.reactions.get_by_id("FUM").summary() 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s 334s tests/test_summary/test_reaction_summary.py:64: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 334s return ReactionSummary( 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ____________________ test_reaction_summary_flux[ACALD-0.0] _____________________ 334s 334s model = , reaction_id = 'ACALD' 334s expected = 0.0 334s 334s @pytest.mark.parametrize( 334s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 334s ) 334s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 334s """Test that the reported flux in the summary is reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:73: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________________ test_reaction_summary_flux[FUM-5.06] _____________________ 334s 334s model = , reaction_id = 'FUM' 334s expected = 5.06 334s 334s @pytest.mark.parametrize( 334s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 334s ) 334s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 334s """Test that the reported flux in the summary is reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:73: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _____________________ test_reaction_summary_flux[PFK-7.48] _____________________ 334s 334s model = , reaction_id = 'PFK' 334s expected = 7.48 334s 334s @pytest.mark.parametrize( 334s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 334s ) 334s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 334s """Test that the reported flux in the summary is reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:73: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s _______________ test_reaction_summary_flux_fva[ACALD--1.27-0.0] ________________ 334s 334s model = , reaction_id = 'ACALD' 334s min_flux = -1.27, max_flux = 0.0 334s 334s @pytest.mark.parametrize( 334s "reaction_id, min_flux, max_flux", 334s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 334s ) 334s def test_reaction_summary_flux_fva( 334s model, reaction_id: str, min_flux: float, max_flux: float 334s ) -> None: 334s """Test that the reported flux ranges in the summary are reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:89: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ________________ test_reaction_summary_flux_fva[FUM-0.79-7.38] _________________ 334s 334s model = , reaction_id = 'FUM' 334s min_flux = 0.79, max_flux = 7.38 334s 334s @pytest.mark.parametrize( 334s "reaction_id, min_flux, max_flux", 334s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 334s ) 334s def test_reaction_summary_flux_fva( 334s model, reaction_id: str, min_flux: float, max_flux: float 334s ) -> None: 334s """Test that the reported flux ranges in the summary are reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:89: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 334s !!! Recursion detected (same locals & position) 334s ________________ test_reaction_summary_flux_fva[PFK-2.58-16.38] ________________ 334s 334s model = , reaction_id = 'PFK' 334s min_flux = 2.58, max_flux = 16.38 334s 334s @pytest.mark.parametrize( 334s "reaction_id, min_flux, max_flux", 334s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 334s ) 334s def test_reaction_summary_flux_fva( 334s model, reaction_id: str, min_flux: float, max_flux: float 334s ) -> None: 334s """Test that the reported flux ranges in the summary are reasonable.""" 334s > result = ReactionSummary( 334s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 334s ) 334s 334s tests/test_summary/test_reaction_summary.py:89: 334s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 334s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 334s self._reaction = reaction.copy() 334s ^^^^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 334s new_reaction = deepcopy(self) 334s ^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:157: in deepcopy 334s y = _reconstruct(x, memo, *rv) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:234: in _reconstruct 334s y = func(*args) 334s ^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:233: in 334s args = (deepcopy(arg, memo) for arg in args) 334s ^^^^^^^^^^^^^^^^^^^ 334s /usr/lib/python3.14/copy.py:138: in deepcopy 334s y = copier(memo) 334s ^^^^^^^^^^^^ 334s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 334s cop = deepcopy(super(Reaction, self), memo) 334s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 334s E RecursionError: maximum recursion depth exceeded 335s !!! Recursion detected (same locals & position) 335s _________________ test_reaction_summary_flux_in_context[ACALD] _________________ 335s 335s model = , reaction_id = 'ACALD' 335s 335s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 335s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 335s """Test that the reaction summary inside and outside of a context are equal.""" 335s with model: 335s > context_summary = model.reactions.get_by_id(reaction_id).summary() 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s 335s tests/test_summary/test_reaction_summary.py:104: 335s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 335s return ReactionSummary( 335s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 335s self._reaction = reaction.copy() 335s ^^^^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 335s new_reaction = deepcopy(self) 335s ^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:157: in deepcopy 335s y = _reconstruct(x, memo, *rv) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:234: in _reconstruct 335s y = func(*args) 335s ^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:233: in 335s args = (deepcopy(arg, memo) for arg in args) 335s ^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s E RecursionError: maximum recursion depth exceeded 335s !!! Recursion detected (same locals & position) 335s __________________ test_reaction_summary_flux_in_context[FUM] __________________ 335s 335s model = , reaction_id = 'FUM' 335s 335s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 335s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 335s """Test that the reaction summary inside and outside of a context are equal.""" 335s with model: 335s > context_summary = model.reactions.get_by_id(reaction_id).summary() 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s 335s tests/test_summary/test_reaction_summary.py:104: 335s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 335s return ReactionSummary( 335s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 335s self._reaction = reaction.copy() 335s ^^^^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 335s new_reaction = deepcopy(self) 335s ^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:157: in deepcopy 335s y = _reconstruct(x, memo, *rv) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:234: in _reconstruct 335s y = func(*args) 335s ^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:233: in 335s args = (deepcopy(arg, memo) for arg in args) 335s ^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s E RecursionError: maximum recursion depth exceeded 335s !!! Recursion detected (same locals & position) 335s __________________ test_reaction_summary_flux_in_context[PFK] __________________ 335s 335s model = , reaction_id = 'PFK' 335s 335s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 335s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 335s """Test that the reaction summary inside and outside of a context are equal.""" 335s with model: 335s > context_summary = model.reactions.get_by_id(reaction_id).summary() 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s 335s tests/test_summary/test_reaction_summary.py:104: 335s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 335s return ReactionSummary( 335s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 335s self._reaction = reaction.copy() 335s ^^^^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 335s new_reaction = deepcopy(self) 335s ^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:157: in deepcopy 335s y = _reconstruct(x, memo, *rv) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:234: in _reconstruct 335s y = func(*args) 335s ^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:233: in 335s args = (deepcopy(arg, memo) for arg in args) 335s ^^^^^^^^^^^^^^^^^^^ 335s /usr/lib/python3.14/copy.py:138: in deepcopy 335s y = copier(memo) 335s ^^^^^^^^^^^^ 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 335s cop = deepcopy(super(Reaction, self), memo) 335s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 335s E RecursionError: maximum recursion depth exceeded 335s !!! Recursion detected (same locals & position) 335s =============================== warnings summary =============================== 335s :491 335s :491: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute 335s 335s :491 335s :491: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute 335s 335s tests/test_core/test_gpr.py::test_and_gpr[a AND b-2-gpr_genes2-a and b] 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_or_gpr[a OR b-2-gpr_genes2-a or b] 335s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[a OR b-symbolic_gpr2] 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 335s tests/test_core/test_gpr.py::test_gpr_from_symbolic[a OR b-symbolic_gpr5] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_complicated_gpr[(a OR b) AND c] 335s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[(a OR b) AND c-symbolic_gpr6] 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_and_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 335s tests/test_core/test_gpr.py::test_gpr_from_symbolic[(a OR b) AND c-symbolic_gpr9] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(a OR b) AND c'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_gpr_that_needs_two_replacements 335s /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)'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b AND a'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b OR a'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b or c'. 335s warn( 335s 335s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_and_strs] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 335s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 335s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b and c'. 335s warn( 335s 335s tests/test_core/test_model.py::test_reaction_delete 335s tests/test_core/test_model.py::test_reaction_delete 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:879: DeprecationWarning: delete is deprecated. Use reaction.remove_from_model instead 335s warn( 335s 335s tests/test_core/test_model.py::test_group_loss_of_elements 335s /usr/lib/python3/dist-packages/cobra/core/group.py:147: UserWarning: need to pass in a list 335s warn("need to pass in a list") 335s 335s tests/test_core/test_model.py::test_change_objective 335s tests/test_core/test_model.py::test_change_objective 335s tests/test_core/test_model.py::test_change_objective 335s /usr/lib/python3/dist-packages/cobra/core/reaction.py:761: DeprecationWarning: Please use reaction.flux instead. 335s warn("Please use reaction.flux instead.", DeprecationWarning) 335s 335s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 335s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 335s /tmp/autopkgtest.OuYOir/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 335s assert math.isnan(sol.growth) 335s 335s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 335s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 335s /tmp/autopkgtest.OuYOir/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 335s assert math.isnan(sol_one.growth) 335s 335s tests/test_flux_analysis/test_gapfilling.py: 980 warnings 335s /tmp/autopkgtest.OuYOir/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 335s return _load(infile) 335s 335s tests/test_flux_analysis/test_gapfilling.py: 4020 warnings 335s /tmp/autopkgtest.OuYOir/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 335s return _load(infile) 335s 335s tests/test_io/test_json.py: 34 warnings 335s tests/test_io/test_mat.py: 34 warnings 335s tests/test_io/test_pickle.py: 34 warnings 335s tests/test_io/test_yaml.py: 34 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s return load(infile) 335s 335s tests/test_io/test_json.py: 11 warnings 335s tests/test_io/test_mat.py: 11 warnings 335s tests/test_io/test_pickle.py: 11 warnings 335s tests/test_io/test_yaml.py: 11 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s return load(infile) 335s 335s tests/test_io/test_json.py: 1 warning 335s tests/test_io/test_mat.py: 5 warnings 335s tests/test_io/test_pickle.py: 1 warning 335s tests/test_io/test_sbml.py: 9 warnings 335s tests/test_io/test_yaml.py: 1 warning 335s /usr/lib/python3/dist-packages/cobra/util/solver.py:554: UserWarning: Solver status is 'infeasible'. 335s warn(f"Solver status is '{status}'.", UserWarning) 335s 335s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 335s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 335s /tmp/autopkgtest.OuYOir/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. 335s return load(infile) 335s 335s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 335s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 335s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 335s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 335s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 335s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 335s /tmp/autopkgtest.OuYOir/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. 335s return load(infile) 335s 335s tests/test_io/test_pickle.py: 34 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s pickle_model = load_function(infile) 335s 335s tests/test_io/test_pickle.py: 11 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s pickle_model = load_function(infile) 335s 335s tests/test_io/test_sbml.py: 136 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s reference_model = load(infile) 335s 335s tests/test_io/test_sbml.py: 44 warnings 335s /tmp/autopkgtest.OuYOir/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. 335s reference_model = load(infile) 335s 335s tests/test_io/test_yaml.py::test_save_yaml_model 335s /tmp/autopkgtest.OuYOir/autopkgtest_tmp/tests/test_io/test_yaml.py:29: PendingDeprecationWarning: 335s you should no longer specify 'unsafe'. 335s For **dumping only** use yaml=YAML(typ='full') 335s 335s yaml = YAML(typ="unsafe") 335s 335s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 335s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 335s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 335s /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]` 335s compartment = most[matches[most]][0] 335s 335s tests/test_util/test_process_pool.py::test_with_context 335s /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 335s self._pool.__enter__() 335s 335s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 335s 335s ------------------------------------------------------------------------------------------------------------------- benchmark: 30 tests -------------------------------------------------------------------------------------------------------------------- 335s Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations 335s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 335s test_subtract_metabolite_benchmark[gurobi] 4.8150 (1.0) 12.7050 (1.0) 5.0475 (1.00) 0.2945 (1.0) 5.0300 (1.00) 0.0813 (1.04) 23;72 198,118.2927 (1.00) 5185 1 335s test_subtract_metabolite_benchmark[cplex] 4.8340 (1.00) 21.9570 (1.73) 5.0277 (1.0) 0.3720 (1.26) 5.0070 (1.0) 0.0780 (1.00) 17;103 198,900.0753 (1.0) 5197 1 335s test_subtract_metabolite_benchmark[glpk] 4.8680 (1.01) 15.2590 (1.20) 5.0704 (1.01) 0.3408 (1.16) 5.0530 (1.01) 0.0780 (1.0) 21;83 197,223.1993 (0.99) 5186 1 335s test_achr_sample_benchmark 237.0340 (49.23) 340.7420 (26.82) 245.8553 (48.90) 7.7985 (26.48) 242.3930 (48.41) 10.3190 (132.29) 253;15 4,067.4334 (0.02) 1726 1 335s test_change_objective_benchmark[optlang-glpk] 255.6300 (53.09) 2,923.8710 (230.14) 262.4164 (52.19) 48.0829 (163.26) 259.5690 (51.84) 2.3705 (30.39) 24;573 3,810.7371 (0.02) 5176 1 335s test_optgp_sample_benchmark 368.7020 (76.57) 528.7140 (41.61) 377.7051 (75.13) 10.0388 (34.09) 373.1600 (74.53) 11.6200 (148.97) 145;29 2,647.5678 (0.01) 1959 1 335s test_loopless_benchmark_after 1,372.8010 (285.11) 1,544.8010 (121.59) 1,388.1392 (276.10) 18.0722 (61.36) 1,385.3730 (276.69) 7.9775 (102.28) 11;13 720.3888 (0.00) 357 1 335s test_single_gene_deletion_fba_benchmark[glpk] 5,264.8220 (>1000.0) 9,798.3850 (771.22) 5,473.3691 (>1000.0) 425.5246 (>1000.0) 5,469.1190 (>1000.0) 203.1860 (>1000.0) 6;11 182.7028 (0.00) 164 1 335s test_loopless_benchmark_before 6,246.7560 (>1000.0) 6,467.3090 (509.04) 6,300.8421 (>1000.0) 37.8792 (128.61) 6,291.0290 (>1000.0) 30.1147 (386.09) 17;8 158.7089 (0.00) 117 1 335s test_minimal_medium_mip_benchmark 7,047.5470 (>1000.0) 7,300.6550 (574.63) 7,085.3755 (>1000.0) 45.4857 (154.44) 7,070.9160 (>1000.0) 28.4250 (364.42) 9;9 141.1358 (0.00) 89 1 335s test_minimal_medium_linear_benchmark 7,181.2380 (>1000.0) 7,677.5080 (604.29) 7,295.5215 (>1000.0) 109.1079 (370.46) 7,259.7030 (>1000.0) 135.5510 (>1000.0) 13;3 137.0704 (0.00) 89 1 335s test_copy_benchmark[optlang-glpk] 17,007.4260 (>1000.0) 21,173.5600 (>1000.0) 18,302.0944 (>1000.0) 839.4843 (>1000.0) 18,183.3095 (>1000.0) 1,143.9080 (>1000.0) 14;1 54.6386 (0.00) 50 1 335s test_gpr_equality_benchmark 24,356.6640 (>1000.0) 24,785.9900 (>1000.0) 24,563.4189 (>1000.0) 90.7213 (308.03) 24,570.7085 (>1000.0) 61.9180 (793.82) 12;9 40.7109 (0.00) 40 1 335s test_single_reaction_deletion_benchmark[glpk] 29,302.3890 (>1000.0) 33,106.2050 (>1000.0) 29,578.1588 (>1000.0) 663.4450 (>1000.0) 29,422.7530 (>1000.0) 178.4440 (>1000.0) 2;3 33.8087 (0.00) 34 1 335s test_flux_variability_loopless_benchmark[glpk] 41,253.9670 (>1000.0) 42,036.2700 (>1000.0) 41,524.0603 (>1000.0) 202.4640 (687.44) 41,516.4355 (>1000.0) 224.0720 (>1000.0) 3;1 24.0824 (0.00) 14 1 335s test_double_reaction_deletion_benchmark 58,193.8630 (>1000.0) 58,373.4310 (>1000.0) 58,293.7938 (>1000.0) 73.5580 (249.76) 58,321.1320 (>1000.0) 116.3797 (>1000.0) 2;0 17.1545 (0.00) 5 1 335s test_fastcc_benchmark[glpk] 74,898.2750 (>1000.0) 77,452.1810 (>1000.0) 75,875.4915 (>1000.0) 717.8852 (>1000.0) 75,698.0060 (>1000.0) 1,042.7560 (>1000.0) 4;0 13.1795 (0.00) 13 1 335s test_add_metabolite_benchmark[gurobi] 107,159.6790 (>1000.0) 107,652.0550 (>1000.0) 107,385.9341 (>1000.0) 130.9559 (444.64) 107,381.3235 (>1000.0) 146.7820 (>1000.0) 2;0 9.3122 (0.00) 10 1 335s test_add_metabolite_benchmark[cplex] 107,279.6240 (>1000.0) 107,786.5410 (>1000.0) 107,470.6900 (>1000.0) 145.5229 (494.11) 107,490.4280 (>1000.0) 196.7020 (>1000.0) 3;0 9.3049 (0.00) 10 1 335s test_add_metabolite_benchmark[glpk] 107,384.3530 (>1000.0) 107,650.7720 (>1000.0) 107,557.3715 (>1000.0) 83.9481 (285.04) 107,559.8840 (>1000.0) 119.2370 (>1000.0) 3;0 9.2974 (0.00) 10 1 335s test_optgp_init_benchmark 129,024.3640 (>1000.0) 134,541.4690 (>1000.0) 130,440.4404 (>1000.0) 1,719.3002 (>1000.0) 129,865.5660 (>1000.0) 777.9250 (>1000.0) 1;1 7.6663 (0.00) 8 1 335s test_achr_init_benchmark 129,559.1410 (>1000.0) 133,276.3130 (>1000.0) 131,380.2163 (>1000.0) 1,264.9282 (>1000.0) 131,490.1130 (>1000.0) 1,675.3340 (>1000.0) 3;0 7.6115 (0.00) 8 1 335s test_gpr_symbolism_benchmark 133,922.1270 (>1000.0) 134,847.2210 (>1000.0) 134,280.6430 (>1000.0) 280.0191 (950.77) 134,269.0520 (>1000.0) 284.9930 (>1000.0) 2;1 7.4471 (0.00) 8 1 335s test_double_gene_deletion_benchmark 199,911.4520 (>1000.0) 204,692.9490 (>1000.0) 202,881.2602 (>1000.0) 1,941.1327 (>1000.0) 203,263.6230 (>1000.0) 2,880.0910 (>1000.0) 1;0 4.9290 (0.00) 5 1 335s test_single_gene_deletion_linear_moma_benchmark[glpk] 237,510.6160 (>1000.0) 240,115.8110 (>1000.0) 238,358.5768 (>1000.0) 1,033.5578 (>1000.0) 238,008.4160 (>1000.0) 1,110.1390 (>1000.0) 1;0 4.1954 (0.00) 5 1 335s test_single_gene_deletion_linear_room_benchmark[glpk] 318,063.2580 (>1000.0) 320,860.2620 (>1000.0) 319,061.9590 (>1000.0) 1,055.4261 (>1000.0) 318,832.0040 (>1000.0) 801.3808 (>1000.0) 1;1 3.1342 (0.00) 5 1 335s test_pfba_benchmark[glpk] 363,579.3380 (>1000.0) 388,304.3110 (>1000.0) 374,339.4480 (>1000.0) 10,884.0565 (>1000.0) 373,871.6250 (>1000.0) 19,559.4073 (>1000.0) 1;0 2.6714 (0.00) 5 1 335s test_flux_variability_benchmark[glpk] 380,134.5580 (>1000.0) 380,934.3860 (>1000.0) 380,563.2890 (>1000.0) 346.6608 (>1000.0) 380,481.6960 (>1000.0) 600.7998 (>1000.0) 2;0 2.6277 (0.00) 5 1 335s test_copy_benchmark_large_model[optlang-glpk] 401,518.0080 (>1000.0) 465,643.8280 (>1000.0) 426,415.7234 (>1000.0) 33,310.6127 (>1000.0) 402,541.0840 (>1000.0) 59,299.4028 (>1000.0) 2;0 2.3451 (0.00) 5 1 335s test_geometric_fba_benchmark[glpk] 483,048.0160 (>1000.0) 485,853.5060 (>1000.0) 484,473.0816 (>1000.0) 1,030.8999 (>1000.0) 484,674.5210 (>1000.0) 1,244.0372 (>1000.0) 2;0 2.0641 (0.00) 5 1 335s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 335s 335s Legend: 335s Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. 335s OPS: Operations Per Second, computed as 1 / Mean 335s =========================== short test summary info ============================ 335s FAILED tests/test_core/test_core_reaction.py::test_copy - RecursionError: max... 335s FAILED tests/test_core/test_core_reaction.py::test_add - RecursionError: maxi... 335s FAILED tests/test_core/test_core_reaction.py::test_radd - RecursionError: max... 335s FAILED tests/test_core/test_core_reaction.py::test_mul - RecursionError: maxi... 335s FAILED tests/test_core/test_core_reaction.py::test_sub - RecursionError: maxi... 335s FAILED tests/test_core/test_model.py::test_deepcopy_benchmark - RecursionErro... 335s FAILED tests/test_core/test_model.py::test_deepcopy - RecursionError: maximum... 335s FAILED tests/test_core/test_model.py::test_merge_models - RecursionError: max... 335s FAILED tests/test_flux_analysis/test_gapfilling.py::test_gapfilling - Recursi... 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_interface[optlang-glpk] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_frame[optlang-glpk] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs4] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_producing_summary[optlang-glpk] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_consuming_summary[optlang-glpk] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_fdp_production_with_fva[optlang-glpk] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] 335s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_interface[optlang-glpk] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame[optlang-glpk] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs4] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame_previous_solution[optlang-glpk] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux[optlang-glpk] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_fva[optlang-glpk] 335s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux_in_context[optlang-glpk] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_interface[optlang-glpk] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_frame[optlang-glpk] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs4] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs0] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs1] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs2] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs3] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[ACALD-0.0] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[FUM-5.06] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[PFK-7.48] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[ACALD--1.27-0.0] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[FUM-0.79-7.38] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[PFK-2.58-16.38] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[ACALD] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[FUM] 335s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[PFK] 335s = 61 failed, 455 passed, 27 skipped, 10 xfailed, 1 xpassed, 5490 warnings in 137.50s (0:02:17) = 335s autopkgtest [03:51:16]: test run-unit-test: -----------------------] 336s run-unit-test FAIL non-zero exit status 1 336s autopkgtest [03:51:17]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 336s autopkgtest [03:51:17]: @@@@@@@@@@@@@@@@@@@@ summary 336s run-unit-test FAIL non-zero exit status 1