0s autopkgtest [18:18:51]: starting date and time: 2026-02-09 18:18:51+0000 0s autopkgtest [18:18:51]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [18:18:51]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.4j_5q5oa/out --timeout-copy=6000 --needs-internet=try --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:dolfinx-mpc,src:dracut,src:gcc-15,src:gcc-16,src:gcc-snapshot,src:gdm3,src:glycin,src:gnuradio,src:hkl,src:hmmer,src:lammps,src:libixion,src:liborcus,src:libpeas,src:libreoffice,src:link-grammar,src:mosquitto,src:nodejs,src:open-iscsi,src:opencamlib,src:orthanc-python,src:psychopy,src:pyside2,src:python-pyvista,src:python3-defaults,src:rumur,src:trojan,src:wmanager,src:zxing-cpp --apt-upgrade python-cobra --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=libsbml/5.20.5+dfsg-2 apbs/3.4.1-7build1 binutils/2.46-1ubuntu1 bornagain/23.0-5build1 ccls/0.20250815-0ubuntu1 cp2k/2025.2-3 createrepo-c/1.2.1-2build1 dolfinx-mpc/0.10.1-1build1 dracut/110-1ubuntu1 gcc-15/15.2.0-13ubuntu3 gcc-16/16-20260208-1ubuntu1 gcc-snapshot/1:20260203-0ubuntu3 gdm3/50~alpha.1-0ubuntu1 glycin/2.0.7+ds-4ubuntu1 gnuradio/3.10.12.0-5.1ubuntu1 hkl/5.1.4-1 hmmer/3.4+dfsg-3 lammps/20251210+dfsg-1build1 libixion/0.20.0-7 liborcus/0.21.0-4 libpeas/1.38.1-1ubuntu2 libreoffice/4:25.8.4~rc2-0ubuntu3 link-grammar/5.13.0+dfsg-1build1 mosquitto/2.0.22-5 nodejs/22.22.0+dfsg+~cs22.19.6-1ubuntu3 open-iscsi/2.1.11-3ubuntu2 opencamlib/2023.01.11-6 orthanc-python/7.0+ds-1build2 psychopy/2023.2.4+dfsg-4 pyside2/5.15.18-1build1 python-pyvista/0.46.5-7 python3-defaults/3.14.2-1 rumur/2025.08.31-1 trojan/1.16.0-1.1build4 wmanager/0.3.1-3build1 zxing-cpp/2.3.0-5' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-1.secgroup --name adt-resolute-amd64-python-cobra-20260209-181851-juju-7f2275-prod-proposed-migration-environment-20-e374308a-5f08-49ac-ab04-1abad875459c --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-python-cobra-20260209-181851-juju-7f2275-prod-proposed-migration-environment-20-e374308a-5f08-49ac-ab04-1abad875459c from image adt/ubuntu-resolute-amd64-server-20260204.img (UUID fedf54b4-458b-493e-8072-6425c19717b4)... 75s autopkgtest [18:20:06]: testbed dpkg architecture: amd64 75s autopkgtest [18:20:06]: testbed apt version: 3.1.14 75s autopkgtest [18:20:06]: @@@@@@@@@@@@@@@@@@@@ test bed setup 75s autopkgtest [18:20:06]: testbed release detected to be: None 76s autopkgtest [18:20:07]: updating testbed package index (apt update) 76s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 76s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 76s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 76s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 76s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1630 kB] 77s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [29.4 kB] 77s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [1764 B] 77s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [174 kB] 77s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [202 kB] 77s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [248 kB] 77s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6084 B] 77s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [7744 B] 77s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [2444 B] 77s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 77s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1590 kB] 77s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [644 kB] 77s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [33.1 kB] 77s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4320 B] 77s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [25.2 kB] 77s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [996 B] 78s Fetched 4723 kB in 1s (3829 kB/s) 79s Reading package lists... 79s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 79s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 79s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 79s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 80s Reading package lists... 80s Reading package lists... 80s Building dependency tree... 80s Reading state information... 80s Calculating upgrade... 80s The following packages were automatically installed and are no longer required: 80s libpython3.13 libpython3.13-minimal libpython3.13-stdlib python3.13 80s python3.13-minimal 80s Use 'sudo apt autoremove' to remove them. 80s The following NEW packages will be installed: 80s gcc-16-base libpython3.14 libpython3.14-minimal libpython3.14-stdlib 80s linux-headers-6.19.0-3 linux-headers-6.19.0-3-generic 80s linux-image-6.19.0-3-generic linux-modules-6.19.0-3-generic 80s linux-tools-6.19.0-3 linux-tools-6.19.0-3-generic python3.14 80s python3.14-minimal 80s The following packages will be upgraded: 80s 3cpio amd64-microcode apt binutils binutils-common binutils-x86-64-linux-gnu 80s bpftool busybox-initramfs busybox-static cryptsetup-bin dash dbus dbus-bin 80s dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session 80s debianutils dmsetup dracut-install ethtool findutils gir1.2-girepository-3.0 80s gir1.2-glib-2.0 hwdata iproute2 iptables less libapt-pkg7.0 libatomic1 80s libattr1 libbinutils libbpf1 libbsd0 libcryptsetup12 libctf-nobfd0 libctf0 80s libdbus-1-3 libdevmapper1.02.1 libdrm-amdgpu1 libdrm-common libdrm2 80s libevent-core-2.1-7t64 libgcc-s1 libgdbm-compat4t64 libgdbm6t64 80s libgirepository-2.0-0 libglib2.0-0t64 libglib2.0-data libgpm2 libgprofng0 80s libgudev-1.0-0 libidn2-0 libip4tc2 libip6tc2 libjansson4 libkeyutils1 80s liblsof0 libmaxminddb0 libnetfilter-conntrack3 libnpth0t64 libonig5 80s libpcap0.8t64 libpci3 libpython3-stdlib libsensors-config libsensors5 80s libsframe3 libstdc++6 libusb-1.0-0 libwrap0 libxau6 libxkbcommon0 80s libxtables12 linux-generic linux-headers-generic linux-headers-virtual 80s linux-image-generic linux-image-virtual linux-perf linux-tools-common 80s linux-virtual lsof man-db mawk patch pciutils pnp.ids pollinate python3 80s python3-gdbm python3-linkify-it python3-markdown-it python3-minimal 80s python3-referencing sed shared-mime-info tar tcpdump 80s ubuntu-kernel-accessories ubuntu-standard wget 80s 102 upgraded, 12 newly installed, 0 to remove and 0 not upgraded. 80s Need to get 244 MB of archives. 80s After this operation, 347 MB of additional disk space will be used. 80s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 debianutils amd64 5.23.2build1 [93.3 kB] 80s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 dash amd64 0.5.12-12ubuntu3 [96.0 kB] 80s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 findutils amd64 4.10.0-3build2 [307 kB] 80s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 sed amd64 4.9-2build3 [195 kB] 80s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 tar amd64 1.35+dfsg-3.1build2 [257 kB] 80s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 81s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 81s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.14.2-1 [28.2 kB] 81s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.14.2-1 [22.9 kB] 81s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 81s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 81s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.14.2-1 [10.9 kB] 81s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libattr1 amd64 1:2.5.2-3build2 [11.4 kB] 81s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 gcc-16-base amd64 16-20260208-1ubuntu1 [59.7 kB] 81s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libgcc-s1 amd64 16-20260208-1ubuntu1 [80.3 kB] 81s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libbsd0 amd64 0.12.2-2build2 [42.3 kB] 81s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 mawk amd64 1.3.4.20260129-1 [133 kB] 81s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libstdc++6 amd64 16-20260208-1ubuntu1 [844 kB] 81s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libapt-pkg7.0 amd64 3.1.15 [1151 kB] 81s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 apt amd64 3.1.15 [1479 kB] 81s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-system-bus-common all 1.16.2-2ubuntu3 [55.8 kB] 81s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-session-bus-common all 1.16.2-2ubuntu3 [54.4 kB] 81s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-user-session amd64 1.16.2-2ubuntu3 [9696 B] 81s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-daemon amd64 1.16.2-2ubuntu3 [119 kB] 81s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-bin amd64 1.16.2-2ubuntu3 [40.1 kB] 81s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus amd64 1.16.2-2ubuntu3 [24.2 kB] 81s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libdbus-1-3 amd64 1.16.2-2ubuntu3 [185 kB] 81s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevmapper1.02.1 amd64 2:1.02.205-2ubuntu3 [142 kB] 81s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 dmsetup amd64 2:1.02.205-2ubuntu3 [79.4 kB] 81s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 ethtool amd64 1:6.15-3build1 [318 kB] 81s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-girepository-3.0 amd64 2.87.2-2 [25.2 kB] 81s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 libgirepository-2.0-0 amd64 2.87.2-2 [76.1 kB] 81s Get:33 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libatomic1 amd64 16-20260208-1ubuntu1 [11.4 kB] 81s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-glib-2.0 amd64 2.87.2-2 [182 kB] 81s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-0t64 amd64 2.87.2-2 [1613 kB] 81s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libbpf1 amd64 1:1.6.2-1build1 [184 kB] 81s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 iptables amd64 1.8.11-2ubuntu3 [381 kB] 81s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libip4tc2 amd64 1.8.11-2ubuntu3 [24.2 kB] 81s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 libip6tc2 amd64 1.8.11-2ubuntu3 [24.4 kB] 81s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 libnetfilter-conntrack3 amd64 1.1.1-1 [47.5 kB] 81s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 libxtables12 amd64 1.8.11-2ubuntu3 [36.6 kB] 81s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 iproute2 amd64 6.18.0-1ubuntu1 [1178 kB] 81s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 less amd64 668-1build1 [172 kB] 81s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 libcryptsetup12 amd64 2:2.8.0-1ubuntu3 [283 kB] 81s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-data all 2.87.2-2 [58.2 kB] 81s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 libidn2-0 amd64 2.3.8-4build1 [67.6 kB] 81s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libkeyutils1 amd64 1.6.3-6ubuntu3 [10.6 kB] 81s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-linkify-it all 2.0.3-1ubuntu3 [19.4 kB] 81s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-markdown-it all 3.0.0-3build1 [54.4 kB] 81s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 shared-mime-info amd64 2.4-5build3 [476 kB] 81s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-static amd64 1:1.37.0-7ubuntu1 [1034 kB] 81s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-common all 2.4.131-1 [9774 B] 81s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm2 amd64 2.4.131-1 [42.3 kB] 81s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm6t64 amd64 1.26-1build1 [36.5 kB] 81s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 libgpm2 amd64 1.20.7-12build1 [14.4 kB] 81s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 libjansson4 amd64 2.14-2build4 [33.2 kB] 81s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 lsof amd64 4.99.4+dfsg-2build2 [239 kB] 81s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsof0 amd64 4.99.4+dfsg-2build2 [56.5 kB] 81s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 libmaxminddb0 amd64 1.12.2-1build2 [18.9 kB] 81s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libpcap0.8t64 amd64 1.10.5-2ubuntu3 [154 kB] 81s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 pciutils amd64 1:3.14.0-1build2 [95.5 kB] 81s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libpci3 amd64 1:3.14.0-1build2 [38.1 kB] 81s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors-config all 1:3.6.2-2build1 [6862 B] 81s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors5 amd64 1:3.6.2-2build1 [28.9 kB] 81s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 libusb-1.0-0 amd64 2:1.0.29-2build1 [56.9 kB] 81s Get:66 http://ftpmaster.internal/ubuntu resolute/main amd64 libxau6 amd64 1:1.0.11-1build2 [7502 B] 81s Get:67 http://ftpmaster.internal/ubuntu resolute/main amd64 libxkbcommon0 amd64 1.13.1-1 [159 kB] 81s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 man-db amd64 2.13.1-1build1 [1392 kB] 82s Get:69 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.14.2-1 [11.1 kB] 82s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 tcpdump amd64 4.99.5-2ubuntu3 [477 kB] 82s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 wget amd64 1.25.0-2ubuntu4 [353 kB] 82s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-standard amd64 1.564 [13.3 kB] 82s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.14.0-1ubuntu1 [285 kB] 82s Get:74 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libgprofng0 amd64 2.46-1ubuntu1 [898 kB] 82s Get:75 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libctf0 amd64 2.46-1ubuntu1 [100 kB] 82s Get:76 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libctf-nobfd0 amd64 2.46-1ubuntu1 [102 kB] 82s Get:77 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 binutils-x86-64-linux-gnu amd64 2.46-1ubuntu1 [1150 kB] 82s Get:78 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libbinutils amd64 2.46-1ubuntu1 [600 kB] 82s Get:79 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 binutils amd64 2.46-1ubuntu1 [225 kB] 82s Get:80 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 binutils-common amd64 2.46-1ubuntu1 [222 kB] 82s Get:81 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libsframe3 amd64 2.46-1ubuntu1 [20.6 kB] 82s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 bpftool amd64 7.7.0+6.19.0-3.3 [1229 kB] 82s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-initramfs amd64 1:1.37.0-7ubuntu1 [191 kB] 82s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 cryptsetup-bin amd64 2:2.8.0-1ubuntu3 [228 kB] 82s Get:85 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 dracut-install amd64 110-1ubuntu1 [46.1 kB] 82s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 hwdata all 0.394-1build1 [1566 B] 82s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 pnp.ids all 0.394-1build1 [29.6 kB] 82s Get:88 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-amdgpu1 amd64 2.4.131-1 [23.2 kB] 82s Get:89 http://ftpmaster.internal/ubuntu resolute/main amd64 libevent-core-2.1-7t64 amd64 2.1.12-stable-10build2 [93.1 kB] 82s Get:90 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm-compat4t64 amd64 1.26-1build1 [6796 B] 82s Get:91 http://ftpmaster.internal/ubuntu resolute/main amd64 libgudev-1.0-0 amd64 1:238-7build1 [15.9 kB] 82s Get:92 http://ftpmaster.internal/ubuntu resolute/main amd64 libnpth0t64 amd64 1.8-3build1 [9302 B] 82s Get:93 http://ftpmaster.internal/ubuntu resolute/main amd64 libonig5 amd64 6.9.10-1build1 [174 kB] 82s Get:94 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14 amd64 3.14.2-1 [2568 kB] 82s Get:95 http://ftpmaster.internal/ubuntu resolute/main amd64 libwrap0 amd64 7.6.q-36build2 [48.5 kB] 82s Get:96 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-modules-6.19.0-3-generic amd64 6.19.0-3.3 [171 MB] 89s Get:97 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-6.19.0-3-generic amd64 6.19.0-3.3+1 [16.8 MB] 89s Get:98 http://ftpmaster.internal/ubuntu resolute/main amd64 amd64-microcode amd64 3.20251202.1ubuntu1 [459 kB] 89s Get:99 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-generic amd64 6.19.0-3.3 [1698 B] 89s Get:100 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-generic amd64 6.19.0-3.3 [12.2 kB] 89s Get:101 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-virtual amd64 6.19.0-3.3 [1700 B] 89s Get:102 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-virtual amd64 6.19.0-3.3 [12.1 kB] 89s Get:103 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-virtual amd64 6.19.0-3.3 [1646 B] 89s Get:104 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3 all 6.19.0-3.3 [14.9 MB] 90s Get:105 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3-generic amd64 6.19.0-3.3 [4330 kB] 90s Get:106 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-generic amd64 6.19.0-3.3 [12.0 kB] 91s Get:107 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-perf amd64 6.19.0-3.3 [4480 kB] 91s Get:108 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-common all 6.19.0-3.3 [345 kB] 91s Get:109 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3 amd64 6.19.0-3.3 [1455 kB] 91s Get:110 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3-generic amd64 6.19.0-3.3 [1612 B] 91s Get:111 http://ftpmaster.internal/ubuntu resolute/main amd64 patch amd64 2.8-2build1 [95.7 kB] 91s Get:112 http://ftpmaster.internal/ubuntu resolute/main amd64 pollinate all 4.33-4ubuntu5 [14.0 kB] 91s Get:113 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-referencing all 0.36.2-1ubuntu2 [22.2 kB] 91s Get:114 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-kernel-accessories amd64 1.564 [13.1 kB] 91s dpkg-preconfigure: unable to re-open stdin: No such file or directory 91s Fetched 244 MB in 10s (23.3 MB/s) 91s (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 ... 83957 files and directories currently installed.) 91s Preparing to unpack .../debianutils_5.23.2build1_amd64.deb ... 91s Unpacking debianutils (5.23.2build1) over (5.23.2) ... 91s Setting up debianutils (5.23.2build1) ... 91s (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 ... 83957 files and directories currently installed.) 91s Preparing to unpack .../dash_0.5.12-12ubuntu3_amd64.deb ... 91s Unpacking dash (0.5.12-12ubuntu3) over (0.5.12-12ubuntu2) ... 91s Setting up dash (0.5.12-12ubuntu3) ... 92s (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 ... 83957 files and directories currently installed.) 92s Preparing to unpack .../findutils_4.10.0-3build2_amd64.deb ... 92s Unpacking findutils (4.10.0-3build2) over (4.10.0-3build1) ... 92s Setting up findutils (4.10.0-3build2) ... 92s (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 ... 83957 files and directories currently installed.) 92s Preparing to unpack .../sed_4.9-2build3_amd64.deb ... 92s Unpacking sed (4.9-2build3) over (4.9-2build2) ... 92s Setting up sed (4.9-2build3) ... 92s (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 ... 83957 files and directories currently installed.) 92s Preparing to unpack .../tar_1.35+dfsg-3.1build2_amd64.deb ... 92s Unpacking tar (1.35+dfsg-3.1build2) over (1.35+dfsg-3.1build1) ... 92s Setting up tar (1.35+dfsg-3.1build2) ... 92s Selecting previously unselected package libpython3.14-minimal:amd64. 92s (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 ... 83957 files and directories currently installed.) 92s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_amd64.deb ... 92s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 92s Selecting previously unselected package python3.14-minimal. 92s Preparing to unpack .../python3.14-minimal_3.14.2-1_amd64.deb ... 92s Unpacking python3.14-minimal (3.14.2-1) ... 92s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 92s Setting up python3.14-minimal (3.14.2-1) ... 93s (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 ... 84299 files and directories currently installed.) 93s Preparing to unpack .../python3-minimal_3.14.2-1_amd64.deb ... 93s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 93s Setting up python3-minimal (3.14.2-1) ... 93s (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 ... 84299 files and directories currently installed.) 93s Preparing to unpack .../python3_3.14.2-1_amd64.deb ... 93s running python pre-rtupdate hooks for python3.14... 93s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 93s Selecting previously unselected package libpython3.14-stdlib:amd64. 93s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_amd64.deb ... 93s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 93s Selecting previously unselected package python3.14. 93s Preparing to unpack .../python3.14_3.14.2-1_amd64.deb ... 93s Unpacking python3.14 (3.14.2-1) ... 93s Preparing to unpack .../libpython3-stdlib_3.14.2-1_amd64.deb ... 93s Unpacking libpython3-stdlib:amd64 (3.14.2-1) over (3.13.9-3) ... 93s Preparing to unpack .../libattr1_1%3a2.5.2-3build2_amd64.deb ... 93s Unpacking libattr1:amd64 (1:2.5.2-3build2) over (1:2.5.2-3build1) ... 93s Setting up libattr1:amd64 (1:2.5.2-3build2) ... 93s Selecting previously unselected package gcc-16-base:amd64. 93s (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 ... 84731 files and directories currently installed.) 93s Preparing to unpack .../gcc-16-base_16-20260208-1ubuntu1_amd64.deb ... 93s Unpacking gcc-16-base:amd64 (16-20260208-1ubuntu1) ... 93s Setting up gcc-16-base:amd64 (16-20260208-1ubuntu1) ... 93s (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 ... 84736 files and directories currently installed.) 93s Preparing to unpack .../libgcc-s1_16-20260208-1ubuntu1_amd64.deb ... 93s Unpacking libgcc-s1:amd64 (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 93s Setting up libgcc-s1:amd64 (16-20260208-1ubuntu1) ... 93s (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 ... 84736 files and directories currently installed.) 93s Preparing to unpack .../00-libbsd0_0.12.2-2build2_amd64.deb ... 93s Unpacking libbsd0:amd64 (0.12.2-2build2) over (0.12.2-2build1) ... 93s Preparing to unpack .../01-mawk_1.3.4.20260129-1_amd64.deb ... 93s Unpacking mawk (1.3.4.20260129-1) over (1.3.4.20250131-2) ... 93s Preparing to unpack .../02-libstdc++6_16-20260208-1ubuntu1_amd64.deb ... 93s Unpacking libstdc++6:amd64 (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 93s Preparing to unpack .../03-libapt-pkg7.0_3.1.15_amd64.deb ... 93s Unpacking libapt-pkg7.0:amd64 (3.1.15) over (3.1.14) ... 94s Preparing to unpack .../04-apt_3.1.15_amd64.deb ... 94s Unpacking apt (3.1.15) over (3.1.14) ... 94s Preparing to unpack .../05-dbus-system-bus-common_1.16.2-2ubuntu3_all.deb ... 94s Unpacking dbus-system-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../06-dbus-session-bus-common_1.16.2-2ubuntu3_all.deb ... 94s Unpacking dbus-session-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../07-dbus-user-session_1.16.2-2ubuntu3_amd64.deb ... 94s Unpacking dbus-user-session (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../08-dbus-daemon_1.16.2-2ubuntu3_amd64.deb ... 94s Unpacking dbus-daemon (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../09-dbus-bin_1.16.2-2ubuntu3_amd64.deb ... 94s Unpacking dbus-bin (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../10-dbus_1.16.2-2ubuntu3_amd64.deb ... 94s Unpacking dbus (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../11-libdbus-1-3_1.16.2-2ubuntu3_amd64.deb ... 94s Unpacking libdbus-1-3:amd64 (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 94s Preparing to unpack .../12-libdevmapper1.02.1_2%3a1.02.205-2ubuntu3_amd64.deb ... 94s Unpacking libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 94s Preparing to unpack .../13-dmsetup_2%3a1.02.205-2ubuntu3_amd64.deb ... 94s Unpacking dmsetup (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 94s Preparing to unpack .../14-ethtool_1%3a6.15-3build1_amd64.deb ... 94s Unpacking ethtool (1:6.15-3build1) over (1:6.15-3) ... 94s Preparing to unpack .../15-gir1.2-girepository-3.0_2.87.2-2_amd64.deb ... 94s Unpacking gir1.2-girepository-3.0:amd64 (2.87.2-2) over (2.86.3-4) ... 94s Preparing to unpack .../16-libgirepository-2.0-0_2.87.2-2_amd64.deb ... 94s Unpacking libgirepository-2.0-0:amd64 (2.87.2-2) over (2.86.3-4) ... 94s Preparing to unpack .../17-libatomic1_16-20260208-1ubuntu1_amd64.deb ... 94s Unpacking libatomic1:amd64 (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 94s Preparing to unpack .../18-gir1.2-glib-2.0_2.87.2-2_amd64.deb ... 94s Unpacking gir1.2-glib-2.0:amd64 (2.87.2-2) over (2.86.3-4) ... 94s Preparing to unpack .../19-libglib2.0-0t64_2.87.2-2_amd64.deb ... 94s Unpacking libglib2.0-0t64:amd64 (2.87.2-2) over (2.86.3-4) ... 94s Preparing to unpack .../20-libbpf1_1%3a1.6.2-1build1_amd64.deb ... 94s Unpacking libbpf1:amd64 (1:1.6.2-1build1) over (1:1.6.2-1) ... 94s Preparing to unpack .../21-iptables_1.8.11-2ubuntu3_amd64.deb ... 94s Unpacking iptables (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 94s Preparing to unpack .../22-libip4tc2_1.8.11-2ubuntu3_amd64.deb ... 94s Unpacking libip4tc2:amd64 (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 94s Preparing to unpack .../23-libip6tc2_1.8.11-2ubuntu3_amd64.deb ... 94s Unpacking libip6tc2:amd64 (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 94s Preparing to unpack .../24-libnetfilter-conntrack3_1.1.1-1_amd64.deb ... 94s Unpacking libnetfilter-conntrack3:amd64 (1.1.1-1) over (1.1.0-1build1) ... 94s Preparing to unpack .../25-libxtables12_1.8.11-2ubuntu3_amd64.deb ... 94s Unpacking libxtables12:amd64 (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 94s Preparing to unpack .../26-iproute2_6.18.0-1ubuntu1_amd64.deb ... 95s Unpacking iproute2 (6.18.0-1ubuntu1) over (6.16.0-1ubuntu3) ... 95s Preparing to unpack .../27-less_668-1build1_amd64.deb ... 95s Unpacking less (668-1build1) over (668-1) ... 95s Preparing to unpack .../28-libcryptsetup12_2%3a2.8.0-1ubuntu3_amd64.deb ... 95s Unpacking libcryptsetup12:amd64 (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 95s Preparing to unpack .../29-libglib2.0-data_2.87.2-2_all.deb ... 95s Unpacking libglib2.0-data (2.87.2-2) over (2.86.3-4) ... 95s Preparing to unpack .../30-libidn2-0_2.3.8-4build1_amd64.deb ... 95s Unpacking libidn2-0:amd64 (2.3.8-4build1) over (2.3.8-4) ... 95s Preparing to unpack .../31-libkeyutils1_1.6.3-6ubuntu3_amd64.deb ... 95s Unpacking libkeyutils1:amd64 (1.6.3-6ubuntu3) over (1.6.3-6ubuntu2) ... 95s Preparing to unpack .../32-python3-linkify-it_2.0.3-1ubuntu3_all.deb ... 95s Unpacking python3-linkify-it (2.0.3-1ubuntu3) over (2.0.3-1ubuntu2) ... 95s Preparing to unpack .../33-python3-markdown-it_3.0.0-3build1_all.deb ... 95s Unpacking python3-markdown-it (3.0.0-3build1) over (3.0.0-3) ... 95s Preparing to unpack .../34-shared-mime-info_2.4-5build3_amd64.deb ... 95s Unpacking shared-mime-info (2.4-5build3) over (2.4-5build2) ... 95s Preparing to unpack .../35-busybox-static_1%3a1.37.0-7ubuntu1_amd64.deb ... 95s Unpacking busybox-static (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 95s Preparing to unpack .../36-libdrm-common_2.4.131-1_all.deb ... 95s Unpacking libdrm-common (2.4.131-1) over (2.4.129-1) ... 95s Preparing to unpack .../37-libdrm2_2.4.131-1_amd64.deb ... 95s Unpacking libdrm2:amd64 (2.4.131-1) over (2.4.129-1) ... 95s Preparing to unpack .../38-libgdbm6t64_1.26-1build1_amd64.deb ... 95s Unpacking libgdbm6t64:amd64 (1.26-1build1) over (1.26-1) ... 95s Preparing to unpack .../39-libgpm2_1.20.7-12build1_amd64.deb ... 95s Unpacking libgpm2:amd64 (1.20.7-12build1) over (1.20.7-12) ... 95s Preparing to unpack .../40-libjansson4_2.14-2build4_amd64.deb ... 95s Unpacking libjansson4:amd64 (2.14-2build4) over (2.14-2build3) ... 95s Preparing to unpack .../41-lsof_4.99.4+dfsg-2build2_amd64.deb ... 95s Unpacking lsof (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 95s Preparing to unpack .../42-liblsof0_4.99.4+dfsg-2build2_amd64.deb ... 95s Unpacking liblsof0 (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 95s Preparing to unpack .../43-libmaxminddb0_1.12.2-1build2_amd64.deb ... 95s Unpacking libmaxminddb0:amd64 (1.12.2-1build2) over (1.12.2-1build1) ... 95s Preparing to unpack .../44-libpcap0.8t64_1.10.5-2ubuntu3_amd64.deb ... 95s Unpacking libpcap0.8t64:amd64 (1.10.5-2ubuntu3) over (1.10.5-2ubuntu2) ... 95s Preparing to unpack .../45-pciutils_1%3a3.14.0-1build2_amd64.deb ... 95s Unpacking pciutils (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 95s Preparing to unpack .../46-libpci3_1%3a3.14.0-1build2_amd64.deb ... 95s Unpacking libpci3:amd64 (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 96s Preparing to unpack .../47-libsensors-config_1%3a3.6.2-2build1_all.deb ... 96s Unpacking libsensors-config (1:3.6.2-2build1) over (1:3.6.2-2) ... 96s Preparing to unpack .../48-libsensors5_1%3a3.6.2-2build1_amd64.deb ... 96s Unpacking libsensors5:amd64 (1:3.6.2-2build1) over (1:3.6.2-2) ... 96s Preparing to unpack .../49-libusb-1.0-0_2%3a1.0.29-2build1_amd64.deb ... 96s Unpacking libusb-1.0-0:amd64 (2:1.0.29-2build1) over (2:1.0.29-2) ... 96s Preparing to unpack .../50-libxau6_1%3a1.0.11-1build2_amd64.deb ... 96s Unpacking libxau6:amd64 (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 96s Preparing to unpack .../51-libxkbcommon0_1.13.1-1_amd64.deb ... 96s Unpacking libxkbcommon0:amd64 (1.13.1-1) over (1.12.3-1) ... 96s Preparing to unpack .../52-man-db_2.13.1-1build1_amd64.deb ... 96s Unpacking man-db (2.13.1-1build1) over (2.13.1-1) ... 96s Preparing to unpack .../53-python3-gdbm_3.14.2-1_amd64.deb ... 96s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 96s Preparing to unpack .../54-tcpdump_4.99.5-2ubuntu3_amd64.deb ... 96s Unpacking tcpdump (4.99.5-2ubuntu3) over (4.99.5-2ubuntu2) ... 96s Preparing to unpack .../55-wget_1.25.0-2ubuntu4_amd64.deb ... 96s Unpacking wget (1.25.0-2ubuntu4) over (1.25.0-2ubuntu3) ... 96s Preparing to unpack .../56-ubuntu-standard_1.564_amd64.deb ... 96s Unpacking ubuntu-standard (1.564) over (1.563) ... 96s Preparing to unpack .../57-3cpio_0.14.0-1ubuntu1_amd64.deb ... 96s Unpacking 3cpio (0.14.0-1ubuntu1) over (0.13.1-1ubuntu1) ... 96s Preparing to unpack .../58-libgprofng0_2.46-1ubuntu1_amd64.deb ... 96s Unpacking libgprofng0:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../59-libctf0_2.46-1ubuntu1_amd64.deb ... 96s Unpacking libctf0:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../60-libctf-nobfd0_2.46-1ubuntu1_amd64.deb ... 96s Unpacking libctf-nobfd0:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../61-binutils-x86-64-linux-gnu_2.46-1ubuntu1_amd64.deb ... 96s Unpacking binutils-x86-64-linux-gnu (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../62-libbinutils_2.46-1ubuntu1_amd64.deb ... 96s Unpacking libbinutils:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../63-binutils_2.46-1ubuntu1_amd64.deb ... 96s Unpacking binutils (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../64-binutils-common_2.46-1ubuntu1_amd64.deb ... 96s Unpacking binutils-common:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../65-libsframe3_2.46-1ubuntu1_amd64.deb ... 96s Unpacking libsframe3:amd64 (2.46-1ubuntu1) over (2.45.50.20260119-1ubuntu1) ... 96s Preparing to unpack .../66-bpftool_7.7.0+6.19.0-3.3_amd64.deb ... 96s Unpacking bpftool (7.7.0+6.19.0-3.3) over (7.7.0+6.18.0-9.9) ... 96s Preparing to unpack .../67-busybox-initramfs_1%3a1.37.0-7ubuntu1_amd64.deb ... 96s Unpacking busybox-initramfs (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 96s Preparing to unpack .../68-cryptsetup-bin_2%3a2.8.0-1ubuntu3_amd64.deb ... 96s Unpacking cryptsetup-bin (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 96s Preparing to unpack .../69-dracut-install_110-1ubuntu1_amd64.deb ... 96s Unpacking dracut-install (110-1ubuntu1) over (109-9ubuntu1) ... 96s Preparing to unpack .../70-hwdata_0.394-1build1_all.deb ... 96s Unpacking hwdata (0.394-1build1) over (0.394-1) ... 96s Preparing to unpack .../71-pnp.ids_0.394-1build1_all.deb ... 96s Unpacking pnp.ids (0.394-1build1) over (0.394-1) ... 96s Preparing to unpack .../72-libdrm-amdgpu1_2.4.131-1_amd64.deb ... 96s Unpacking libdrm-amdgpu1:amd64 (2.4.131-1) over (2.4.129-1) ... 96s Preparing to unpack .../73-libevent-core-2.1-7t64_2.1.12-stable-10build2_amd64.deb ... 96s Unpacking libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) over (2.1.12-stable-10build1) ... 96s Preparing to unpack .../74-libgdbm-compat4t64_1.26-1build1_amd64.deb ... 96s Unpacking libgdbm-compat4t64:amd64 (1.26-1build1) over (1.26-1) ... 96s Preparing to unpack .../75-libgudev-1.0-0_1%3a238-7build1_amd64.deb ... 96s Unpacking libgudev-1.0-0:amd64 (1:238-7build1) over (1:238-7) ... 96s Preparing to unpack .../76-libnpth0t64_1.8-3build1_amd64.deb ... 96s Unpacking libnpth0t64:amd64 (1.8-3build1) over (1.8-3) ... 96s Preparing to unpack .../77-libonig5_6.9.10-1build1_amd64.deb ... 96s Unpacking libonig5:amd64 (6.9.10-1build1) over (6.9.10-1) ... 97s Selecting previously unselected package libpython3.14:amd64. 97s Preparing to unpack .../78-libpython3.14_3.14.2-1_amd64.deb ... 97s Unpacking libpython3.14:amd64 (3.14.2-1) ... 97s Preparing to unpack .../79-libwrap0_7.6.q-36build2_amd64.deb ... 97s Unpacking libwrap0:amd64 (7.6.q-36build2) over (7.6.q-36build1) ... 97s Selecting previously unselected package linux-modules-6.19.0-3-generic. 97s Preparing to unpack .../80-linux-modules-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 97s Unpacking linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 97s Selecting previously unselected package linux-image-6.19.0-3-generic. 97s Preparing to unpack .../81-linux-image-6.19.0-3-generic_6.19.0-3.3+1_amd64.deb ... 97s Unpacking linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 98s Preparing to unpack .../82-amd64-microcode_3.20251202.1ubuntu1_amd64.deb ... 98s Unpacking amd64-microcode (3.20251202.1ubuntu1) over (3.20250708.1ubuntu1) ... 98s Preparing to unpack .../83-linux-generic_6.19.0-3.3_amd64.deb ... 98s Unpacking linux-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 98s Preparing to unpack .../84-linux-image-generic_6.19.0-3.3_amd64.deb ... 98s Unpacking linux-image-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 98s Preparing to unpack .../85-linux-virtual_6.19.0-3.3_amd64.deb ... 98s Unpacking linux-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 98s Preparing to unpack .../86-linux-image-virtual_6.19.0-3.3_amd64.deb ... 98s Unpacking linux-image-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 98s Preparing to unpack .../87-linux-headers-virtual_6.19.0-3.3_amd64.deb ... 98s Unpacking linux-headers-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 98s Selecting previously unselected package linux-headers-6.19.0-3. 98s Preparing to unpack .../88-linux-headers-6.19.0-3_6.19.0-3.3_all.deb ... 98s Unpacking linux-headers-6.19.0-3 (6.19.0-3.3) ... 99s Selecting previously unselected package linux-headers-6.19.0-3-generic. 99s Preparing to unpack .../89-linux-headers-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 99s Unpacking linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 99s Preparing to unpack .../90-linux-headers-generic_6.19.0-3.3_amd64.deb ... 99s Unpacking linux-headers-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 99s Preparing to unpack .../91-linux-perf_6.19.0-3.3_amd64.deb ... 99s Unpacking linux-perf (6.19.0-3.3) over (6.18.0-9.9) ... 100s Preparing to unpack .../92-linux-tools-common_6.19.0-3.3_all.deb ... 100s Unpacking linux-tools-common (6.19.0-3.3) over (6.18.0-9.9) ... 100s Selecting previously unselected package linux-tools-6.19.0-3. 100s Preparing to unpack .../93-linux-tools-6.19.0-3_6.19.0-3.3_amd64.deb ... 100s Unpacking linux-tools-6.19.0-3 (6.19.0-3.3) ... 100s Selecting previously unselected package linux-tools-6.19.0-3-generic. 100s Preparing to unpack .../94-linux-tools-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 100s Unpacking linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 100s Preparing to unpack .../95-patch_2.8-2build1_amd64.deb ... 100s Unpacking patch (2.8-2build1) over (2.8-2) ... 100s Preparing to unpack .../96-pollinate_4.33-4ubuntu5_all.deb ... 100s Unpacking pollinate (4.33-4ubuntu5) over (4.33-4ubuntu4) ... 100s Preparing to unpack .../97-python3-referencing_0.36.2-1ubuntu2_all.deb ... 100s Unpacking python3-referencing (0.36.2-1ubuntu2) over (0.36.2-1ubuntu1) ... 100s Preparing to unpack .../98-ubuntu-kernel-accessories_1.564_amd64.deb ... 100s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 100s Setting up libip4tc2:amd64 (1.8.11-2ubuntu3) ... 100s Setting up 3cpio (0.14.0-1ubuntu1) ... 100s Setting up libxau6:amd64 (1:1.0.11-1build2) ... 100s Setting up libnpth0t64:amd64 (1.8-3build1) ... 100s Setting up libkeyutils1:amd64 (1.6.3-6ubuntu3) ... 100s Setting up ubuntu-kernel-accessories (1.564) ... 100s Setting up libgpm2:amd64 (1.20.7-12build1) ... 100s Setting up libgdbm6t64:amd64 (1.26-1build1) ... 100s Setting up linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 101s Setting up libgdbm-compat4t64:amd64 (1.26-1build1) ... 101s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 101s Setting up bpftool (7.7.0+6.19.0-3.3) ... 101s Setting up libip6tc2:amd64 (1.8.11-2ubuntu3) ... 101s Setting up liblsof0 (4.99.4+dfsg-2build2) ... 101s Setting up libmaxminddb0:amd64 (1.12.2-1build2) ... 101s Setting up binutils-common:amd64 (2.46-1ubuntu1) ... 101s Setting up libsensors-config (1:3.6.2-2build1) ... 101s Setting up libsframe3:amd64 (2.46-1ubuntu1) ... 101s Setting up less (668-1build1) ... 101s Setting up linux-headers-6.19.0-3 (6.19.0-3.3) ... 101s Setting up libctf-nobfd0:amd64 (2.46-1ubuntu1) ... 101s Setting up libidn2-0:amd64 (2.3.8-4build1) ... 101s Setting up amd64-microcode (3.20251202.1ubuntu1) ... 101s amd64-microcode: microcode will be updated at next boot 101s Setting up man-db (2.13.1-1build1) ... 101s Updating database of manual pages ... 103s man-db.service is a disabled or a static unit not running, not starting it. 103s Setting up libjansson4:amd64 (2.14-2build4) ... 103s Setting up libglib2.0-data (2.87.2-2) ... 103s Setting up pollinate (4.33-4ubuntu5) ... 113s Setting up busybox-static (1:1.37.0-7ubuntu1) ... 113s Setting up libwrap0:amd64 (7.6.q-36build2) ... 113s Setting up linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 114s I: /boot/vmlinuz is now a symlink to vmlinuz-6.19.0-3-generic 114s I: /boot/initrd.img is now a symlink to initrd.img-6.19.0-3-generic 114s Setting up libdbus-1-3:amd64 (1.16.2-2ubuntu3) ... 114s Setting up libatomic1:amd64 (16-20260208-1ubuntu1) ... 114s Setting up patch (2.8-2build1) ... 114s Setting up libsensors5:amd64 (1:3.6.2-2build1) ... 114s Setting up busybox-initramfs (1:1.37.0-7ubuntu1) ... 114s Setting up libxtables12:amd64 (1.8.11-2ubuntu3) ... 114s Setting up lsof (4.99.4+dfsg-2build2) ... 114s Setting up libpci3:amd64 (1:3.14.0-1build2) ... 115s Setting up libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) ... 115s Setting up dracut-install (110-1ubuntu1) ... 115s Setting up dmsetup (2:1.02.205-2ubuntu3) ... 115s Setting up libnetfilter-conntrack3:amd64 (1.1.1-1) ... 115s Setting up pnp.ids (0.394-1build1) ... 115s Setting up dbus-session-bus-common (1.16.2-2ubuntu3) ... 115s Setting up libpython3.14:amd64 (3.14.2-1) ... 115s Setting up libpcap0.8t64:amd64 (1.10.5-2ubuntu3) ... 115s Setting up libcryptsetup12:amd64 (2:2.8.0-1ubuntu3) ... 115s Setting up mawk (1.3.4.20260129-1) ... 115s Setting up libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) ... 115s Setting up libusb-1.0-0:amd64 (2:1.0.29-2build1) ... 115s Setting up linux-image-virtual (6.19.0-3.3) ... 115s Setting up python3.14 (3.14.2-1) ... 115s Setting up libbinutils:amd64 (2.46-1ubuntu1) ... 115s Setting up dbus-system-bus-common (1.16.2-2ubuntu3) ... 115s Setting up libbsd0:amd64 (0.12.2-2build2) ... 115s Setting up libdrm-common (2.4.131-1) ... 115s Setting up libstdc++6:amd64 (16-20260208-1ubuntu1) ... 115s Setting up dbus-bin (1.16.2-2ubuntu3) ... 115s Setting up libonig5:amd64 (6.9.10-1build1) ... 115s Setting up libbpf1:amd64 (1:1.6.2-1build1) ... 115s Setting up libpython3-stdlib:amd64 (3.14.2-1) ... 115s Setting up ethtool (1:6.15-3build1) ... 115s Setting up libxkbcommon0:amd64 (1.13.1-1) ... 115s Setting up libctf0:amd64 (2.46-1ubuntu1) ... 115s Setting up cryptsetup-bin (2:2.8.0-1ubuntu3) ... 115s Setting up linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 115s Setting up tcpdump (4.99.5-2ubuntu3) ... 115s Setting up linux-image-generic (6.19.0-3.3) ... 115s Setting up wget (1.25.0-2ubuntu4) ... 115s Setting up python3-gdbm (3.14.2-1) ... 115s Setting up iptables (1.8.11-2ubuntu3) ... 115s Setting up iproute2 (6.18.0-1ubuntu1) ... 116s Setting up python3 (3.14.2-1) ... 116s running python rtupdate hooks for python3.14... 116s running python post-rtupdate hooks for python3.14... 116s Setting up linux-headers-generic (6.19.0-3.3) ... 116s Setting up dbus-daemon (1.16.2-2ubuntu3) ... 116s Setting up hwdata (0.394-1build1) ... 116s Setting up dbus-user-session (1.16.2-2ubuntu3) ... 116s Setting up libglib2.0-0t64:amd64 (2.87.2-2) ... 116s No schema files found: doing nothing. 116s Setting up libgprofng0:amd64 (2.46-1ubuntu1) ... 116s Setting up linux-perf (6.19.0-3.3) ... 116s Setting up dbus (1.16.2-2ubuntu3) ... 116s A reboot is required to replace the running dbus-daemon. 116s Please reboot the system when convenient. 116s Setting up shared-mime-info (2.4-5build3) ... 117s Setting up gir1.2-glib-2.0:amd64 (2.87.2-2) ... 117s Setting up pciutils (1:3.14.0-1build2) ... 117s Setting up libdrm2:amd64 (2.4.131-1) ... 117s Setting up python3-linkify-it (2.0.3-1ubuntu3) ... 117s Setting up libapt-pkg7.0:amd64 (3.1.15) ... 117s Setting up linux-tools-common (6.19.0-3.3) ... 117s Setting up libgudev-1.0-0:amd64 (1:238-7build1) ... 117s Setting up binutils-x86-64-linux-gnu (2.46-1ubuntu1) ... 117s Setting up python3-referencing (0.36.2-1ubuntu2) ... 117s Setting up libdrm-amdgpu1:amd64 (2.4.131-1) ... 117s Setting up apt (3.1.15) ... 117s Setting up linux-headers-virtual (6.19.0-3.3) ... 118s Setting up linux-generic (6.19.0-3.3) ... 118s Setting up libgirepository-2.0-0:amd64 (2.87.2-2) ... 118s Setting up linux-tools-6.19.0-3 (6.19.0-3.3) ... 118s Setting up binutils (2.46-1ubuntu1) ... 118s Setting up ubuntu-standard (1.564) ... 118s Setting up gir1.2-girepository-3.0:amd64 (2.87.2-2) ... 118s Setting up linux-virtual (6.19.0-3.3) ... 118s Setting up python3-markdown-it (3.0.0-3build1) ... 118s Setting up linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 118s Processing triggers for systemd (259-1ubuntu3) ... 118s Processing triggers for debianutils (5.23.2build1) ... 118s Processing triggers for install-info (7.2-5) ... 118s Processing triggers for initramfs-tools (0.150ubuntu7) ... 118s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 123s Processing triggers for libc-bin (2.42-2ubuntu4) ... 123s Processing triggers for linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 123s /etc/kernel/postinst.d/initramfs-tools: 123s update-initramfs: Generating /boot/initrd.img-6.19.0-3-generic 127s /etc/kernel/postinst.d/zz-update-grub: 127s Sourcing file `/etc/default/grub' 127s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 127s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 127s Generating grub configuration file ... 127s Found linux image: /boot/vmlinuz-6.19.0-3-generic 127s Found initrd image: /boot/initrd.img-6.19.0-3-generic 127s Found linux image: /boot/vmlinuz-6.18.0-9-generic 127s Found initrd image: /boot/initrd.img-6.18.0-9-generic 127s Warning: os-prober will not be executed to detect other bootable partitions. 127s Systems on them will not be added to the GRUB boot configuration. 127s Check GRUB_DISABLE_OS_PROBER documentation entry. 127s Adding boot menu entry for UEFI Firmware Settings ... 127s done 127s autopkgtest [18:20:58]: upgrading testbed (apt dist-upgrade and autopurge) 128s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s Calculating upgrade... 129s The following packages were automatically installed and are no longer required: 129s libpython3.13 libpython3.13-minimal libpython3.13-stdlib python3.13 129s python3.13-minimal 129s Use 'sudo apt autoremove' to remove them. 129s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 129s Reading package lists... 129s Building dependency tree... 129s Reading state information... 129s Solving dependencies... 129s The following packages will be REMOVED: 129s libpython3.13* libpython3.13-minimal* libpython3.13-stdlib* python3.13* 129s python3.13-minimal* 129s 0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded. 129s After this operation, 30.3 MB disk space will be freed. 129s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 125300 files and directories currently installed.) 129s Removing libpython3.13:amd64 (3.13.11-1) ... 129s Removing python3.13 (3.13.11-1) ... 129s Removing libpython3.13-stdlib:amd64 (3.13.11-1) ... 129s Removing python3.13-minimal (3.13.11-1) ... 130s Removing libpython3.13-minimal:amd64 (3.13.11-1) ... 130s Processing triggers for systemd (259-1ubuntu3) ... 130s Processing triggers for man-db (2.13.1-1build1) ... 130s Processing triggers for libc-bin (2.42-2ubuntu4) ... 130s (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 ... 124555 files and directories currently installed.) 130s Purging configuration files for libpython3.13-minimal:amd64 (3.13.11-1) ... 130s Purging configuration files for python3.13-minimal (3.13.11-1) ... 131s autopkgtest [18:21:02]: rebooting testbed after setup commands that affected boot 194s autopkgtest [18:22:05]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 23 20:01:24 UTC 2026 197s autopkgtest [18:22:08]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cobra 198s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (dsc) [3080 B] 198s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (tar) [3651 kB] 198s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-cobra 0.29.1-3 (diff) [11.1 kB] 198s gpgv: Signature made Wed Jul 2 22:43:59 2025 UTC 198s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 198s gpgv: issuer "tchet@debian.org" 198s gpgv: Can't check signature: No public key 198s dpkg-source: warning: cannot verify inline signature for ./python-cobra_0.29.1-3.dsc: no acceptable signature found 198s autopkgtest [18:22:09]: testing package python-cobra version 0.29.1-3 199s autopkgtest [18:22:10]: build not needed 199s autopkgtest [18:22:10]: test run-unit-test: preparing testbed 199s Reading package lists... 200s Building dependency tree... 200s Reading state information... 200s Solving dependencies... 200s The following NEW packages will be installed: 200s diffstat gettext libamd3 libblas3 libcolamd3 libgfortran5 libglpk40 libgomp1 200s liblapack3 libltdl7 libqhull-r8.0 libsuitesparseconfig7 python-cobra-data 200s python3-annotated-types python3-anyio python3-click python3-cobra 200s python3-cpuinfo python3-decorator python3-depinfo python3-diskcache 200s python3-dnspython python3-email-validator python3-h11 python3-httpcore 200s python3-httpx python3-iniconfig python3-mpmath python3-numpy 200s python3-numpy-dev python3-optlang python3-pandas python3-pandas-lib 200s python3-platformdirs python3-pluggy python3-pydantic python3-pydantic-core 200s python3-pytest python3-pytest-benchmark python3-pytest-mock python3-pytz 200s python3-ruamel.yaml python3-ruamel.yaml.clib python3-sbml5 python3-scipy 200s python3-sniffio python3-swiglpk python3-sympy python3-tabulate 200s python3-typing-inspection quilt 200s 0 upgraded, 51 newly installed, 0 to remove and 0 not upgraded. 200s Need to get 64.3 MB of archives. 200s After this operation, 342 MB of additional disk space will be used. 200s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy-dev amd64 1:2.3.5+ds-3 [147 kB] 200s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 libblas3 amd64 3.12.1-7ubuntu1 [260 kB] 200s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libgfortran5 amd64 16-20260208-1ubuntu1 [957 kB] 200s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 liblapack3 amd64 3.12.1-7ubuntu1 [2739 kB] 200s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy amd64 1:2.3.5+ds-3 [8129 kB] 200s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 diffstat amd64 1.68-1 [30.3 kB] 200s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libgomp1 amd64 16-20260208-1ubuntu1 [162 kB] 200s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 200s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libsuitesparseconfig7 amd64 1:7.12.1+dfsg-1 [22.0 kB] 200s Get:10 http://ftpmaster.internal/ubuntu resolute/universe amd64 libamd3 amd64 1:7.12.1+dfsg-1 [35.8 kB] 200s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libcolamd3 amd64 1:7.12.1+dfsg-1 [27.4 kB] 200s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libltdl7 amd64 2.5.4-9 [43.7 kB] 200s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 libglpk40 amd64 5.0-2 [380 kB] 200s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 libqhull-r8.0 amd64 2020.2-8 [197 kB] 200s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 python-cobra-data all 0.29.1-3 [1611 kB] 200s Get:16 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-annotated-types all 0.7.0-1 [19.4 kB] 200s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sniffio all 1.3.1-1 [7262 B] 200s Get:18 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-anyio all 4.11.0-3 [72.6 kB] 200s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 200s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-depinfo amd64 2.2.0-4 [11.2 kB] 200s Get:21 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-diskcache all 5.6.3-1 [35.1 kB] 200s Get:22 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-h11 all 0.14.0-1.1 [51.6 kB] 200s Get:23 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-httpcore all 1.0.9-1 [38.9 kB] 200s Get:24 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-httpx all 0.28.1-1build1 [59.4 kB] 200s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-swiglpk amd64 5.0.10-2build3 [99.6 kB] 200s Get:26 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-mpmath all 1.3.0-2 [423 kB] 200s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sympy all 1.14.0-2 [4306 kB] 200s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-optlang all 1.8.3-1 [5368 kB] 201s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 201s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas-lib amd64 2.3.3+dfsg-3 [6929 kB] 201s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas all 2.3.3+dfsg-3 [2948 kB] 201s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-platformdirs all 4.5.1-1 [17.1 kB] 201s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pydantic-core amd64 2.41.5-2 [2427 kB] 201s Get:34 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-typing-inspection all 0.4.2-1 [13.1 kB] 201s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 201s Get:36 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-email-validator all 2.2.0-1 [28.5 kB] 201s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pydantic amd64 2.12.5-2 [312 kB] 201s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-ruamel.yaml.clib amd64 0.2.15+ds-1 [200 kB] 201s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 201s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-tabulate all 0.9.0-1build1 [45.4 kB] 201s Get:41 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 python3-sbml5 amd64 5.20.5+dfsg-2 [3746 kB] 201s Get:42 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-cobra amd64 0.29.1-3 [1118 kB] 201s Get:43 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-cpuinfo all 9.0.0+git20221119-3 [21.7 kB] 201s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-decorator all 5.2.1-2 [28.1 kB] 201s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 201s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 201s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 201s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-benchmark all 5.2.3-1 [40.0 kB] 201s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-mock all 3.15.1-1 [11.9 kB] 201s Get:50 http://ftpmaster.internal/ubuntu resolute/universe amd64 quilt all 0.68-1 [439 kB] 201s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-scipy amd64 1.16.3-4 [19.0 MB] 202s Fetched 64.3 MB in 2s (36.5 MB/s) 202s Selecting previously unselected package python3-numpy-dev:amd64. 202s (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 ... 124555 files and directories currently installed.) 202s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_amd64.deb ... 202s Unpacking python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 202s Selecting previously unselected package libblas3:amd64. 202s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_amd64.deb ... 202s Unpacking libblas3:amd64 (3.12.1-7ubuntu1) ... 202s Selecting previously unselected package libgfortran5:amd64. 202s Preparing to unpack .../02-libgfortran5_16-20260208-1ubuntu1_amd64.deb ... 202s Unpacking libgfortran5:amd64 (16-20260208-1ubuntu1) ... 202s Selecting previously unselected package liblapack3:amd64. 202s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_amd64.deb ... 202s Unpacking liblapack3:amd64 (3.12.1-7ubuntu1) ... 202s Selecting previously unselected package python3-numpy. 202s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_amd64.deb ... 202s Unpacking python3-numpy (1:2.3.5+ds-3) ... 202s Selecting previously unselected package diffstat. 202s Preparing to unpack .../05-diffstat_1.68-1_amd64.deb ... 202s Unpacking diffstat (1.68-1) ... 202s Selecting previously unselected package libgomp1:amd64. 202s Preparing to unpack .../06-libgomp1_16-20260208-1ubuntu1_amd64.deb ... 202s Unpacking libgomp1:amd64 (16-20260208-1ubuntu1) ... 202s Selecting previously unselected package gettext. 202s Preparing to unpack .../07-gettext_0.23.2-1_amd64.deb ... 202s Unpacking gettext (0.23.2-1) ... 202s Selecting previously unselected package libsuitesparseconfig7:amd64. 202s Preparing to unpack .../08-libsuitesparseconfig7_1%3a7.12.1+dfsg-1_amd64.deb ... 202s Unpacking libsuitesparseconfig7:amd64 (1:7.12.1+dfsg-1) ... 202s Selecting previously unselected package libamd3:amd64. 202s Preparing to unpack .../09-libamd3_1%3a7.12.1+dfsg-1_amd64.deb ... 202s Unpacking libamd3:amd64 (1:7.12.1+dfsg-1) ... 202s Selecting previously unselected package libcolamd3:amd64. 202s Preparing to unpack .../10-libcolamd3_1%3a7.12.1+dfsg-1_amd64.deb ... 202s Unpacking libcolamd3:amd64 (1:7.12.1+dfsg-1) ... 202s Selecting previously unselected package libltdl7:amd64. 202s Preparing to unpack .../11-libltdl7_2.5.4-9_amd64.deb ... 202s Unpacking libltdl7:amd64 (2.5.4-9) ... 202s Selecting previously unselected package libglpk40:amd64. 202s Preparing to unpack .../12-libglpk40_5.0-2_amd64.deb ... 202s Unpacking libglpk40:amd64 (5.0-2) ... 202s Selecting previously unselected package libqhull-r8.0:amd64. 202s Preparing to unpack .../13-libqhull-r8.0_2020.2-8_amd64.deb ... 202s Unpacking libqhull-r8.0:amd64 (2020.2-8) ... 202s Selecting previously unselected package python-cobra-data. 202s Preparing to unpack .../14-python-cobra-data_0.29.1-3_all.deb ... 202s Unpacking python-cobra-data (0.29.1-3) ... 202s Selecting previously unselected package python3-annotated-types. 202s Preparing to unpack .../15-python3-annotated-types_0.7.0-1_all.deb ... 202s Unpacking python3-annotated-types (0.7.0-1) ... 202s Selecting previously unselected package python3-sniffio. 202s Preparing to unpack .../16-python3-sniffio_1.3.1-1_all.deb ... 202s Unpacking python3-sniffio (1.3.1-1) ... 202s Selecting previously unselected package python3-anyio. 202s Preparing to unpack .../17-python3-anyio_4.11.0-3_all.deb ... 202s Unpacking python3-anyio (4.11.0-3) ... 202s Selecting previously unselected package python3-click. 202s Preparing to unpack .../18-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 202s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 202s Selecting previously unselected package python3-depinfo. 202s Preparing to unpack .../19-python3-depinfo_2.2.0-4_amd64.deb ... 202s Unpacking python3-depinfo (2.2.0-4) ... 202s Selecting previously unselected package python3-diskcache. 202s Preparing to unpack .../20-python3-diskcache_5.6.3-1_all.deb ... 202s Unpacking python3-diskcache (5.6.3-1) ... 202s Selecting previously unselected package python3-h11. 202s Preparing to unpack .../21-python3-h11_0.14.0-1.1_all.deb ... 202s Unpacking python3-h11 (0.14.0-1.1) ... 202s Selecting previously unselected package python3-httpcore. 202s Preparing to unpack .../22-python3-httpcore_1.0.9-1_all.deb ... 202s Unpacking python3-httpcore (1.0.9-1) ... 202s Selecting previously unselected package python3-httpx. 202s Preparing to unpack .../23-python3-httpx_0.28.1-1build1_all.deb ... 202s Unpacking python3-httpx (0.28.1-1build1) ... 202s Selecting previously unselected package python3-swiglpk. 202s Preparing to unpack .../24-python3-swiglpk_5.0.10-2build3_amd64.deb ... 202s Unpacking python3-swiglpk (5.0.10-2build3) ... 202s Selecting previously unselected package python3-mpmath. 202s Preparing to unpack .../25-python3-mpmath_1.3.0-2_all.deb ... 202s Unpacking python3-mpmath (1.3.0-2) ... 202s Selecting previously unselected package python3-sympy. 202s Preparing to unpack .../26-python3-sympy_1.14.0-2_all.deb ... 202s Unpacking python3-sympy (1.14.0-2) ... 203s Selecting previously unselected package python3-optlang. 203s Preparing to unpack .../27-python3-optlang_1.8.3-1_all.deb ... 203s Unpacking python3-optlang (1.8.3-1) ... 203s Selecting previously unselected package python3-pytz. 203s Preparing to unpack .../28-python3-pytz_2025.2-5_all.deb ... 203s Unpacking python3-pytz (2025.2-5) ... 203s Selecting previously unselected package python3-pandas-lib:amd64. 203s Preparing to unpack .../29-python3-pandas-lib_2.3.3+dfsg-3_amd64.deb ... 203s Unpacking python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 203s Selecting previously unselected package python3-pandas. 203s Preparing to unpack .../30-python3-pandas_2.3.3+dfsg-3_all.deb ... 203s Unpacking python3-pandas (2.3.3+dfsg-3) ... 203s Selecting previously unselected package python3-platformdirs. 203s Preparing to unpack .../31-python3-platformdirs_4.5.1-1_all.deb ... 203s Unpacking python3-platformdirs (4.5.1-1) ... 203s Selecting previously unselected package python3-pydantic-core. 203s Preparing to unpack .../32-python3-pydantic-core_2.41.5-2_amd64.deb ... 203s Unpacking python3-pydantic-core (2.41.5-2) ... 203s Selecting previously unselected package python3-typing-inspection. 203s Preparing to unpack .../33-python3-typing-inspection_0.4.2-1_all.deb ... 203s Unpacking python3-typing-inspection (0.4.2-1) ... 203s Selecting previously unselected package python3-dnspython. 203s Preparing to unpack .../34-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 203s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 203s Selecting previously unselected package python3-email-validator. 203s Preparing to unpack .../35-python3-email-validator_2.2.0-1_all.deb ... 203s Unpacking python3-email-validator (2.2.0-1) ... 203s Selecting previously unselected package python3-pydantic. 203s Preparing to unpack .../36-python3-pydantic_2.12.5-2_amd64.deb ... 203s Unpacking python3-pydantic (2.12.5-2) ... 203s Selecting previously unselected package python3-ruamel.yaml.clib. 203s Preparing to unpack .../37-python3-ruamel.yaml.clib_0.2.15+ds-1_amd64.deb ... 203s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 203s Selecting previously unselected package python3-ruamel.yaml. 203s Preparing to unpack .../38-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 203s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 203s Selecting previously unselected package python3-tabulate. 203s Preparing to unpack .../39-python3-tabulate_0.9.0-1build1_all.deb ... 203s Unpacking python3-tabulate (0.9.0-1build1) ... 203s Selecting previously unselected package python3-sbml5. 203s Preparing to unpack .../40-python3-sbml5_5.20.5+dfsg-2_amd64.deb ... 203s Unpacking python3-sbml5 (5.20.5+dfsg-2) ... 203s Selecting previously unselected package python3-cobra. 203s Preparing to unpack .../41-python3-cobra_0.29.1-3_amd64.deb ... 203s Unpacking python3-cobra (0.29.1-3) ... 203s Selecting previously unselected package python3-cpuinfo. 203s Preparing to unpack .../42-python3-cpuinfo_9.0.0+git20221119-3_all.deb ... 203s Unpacking python3-cpuinfo (9.0.0+git20221119-3) ... 203s Selecting previously unselected package python3-decorator. 203s Preparing to unpack .../43-python3-decorator_5.2.1-2_all.deb ... 203s Unpacking python3-decorator (5.2.1-2) ... 203s Selecting previously unselected package python3-iniconfig. 203s Preparing to unpack .../44-python3-iniconfig_2.1.0-2_all.deb ... 203s Unpacking python3-iniconfig (2.1.0-2) ... 203s Selecting previously unselected package python3-pluggy. 203s Preparing to unpack .../45-python3-pluggy_1.6.0-2_all.deb ... 203s Unpacking python3-pluggy (1.6.0-2) ... 203s Selecting previously unselected package python3-pytest. 203s Preparing to unpack .../46-python3-pytest_9.0.2-2_all.deb ... 203s Unpacking python3-pytest (9.0.2-2) ... 203s Selecting previously unselected package python3-pytest-benchmark. 203s Preparing to unpack .../47-python3-pytest-benchmark_5.2.3-1_all.deb ... 203s Unpacking python3-pytest-benchmark (5.2.3-1) ... 203s Selecting previously unselected package python3-pytest-mock. 203s Preparing to unpack .../48-python3-pytest-mock_3.15.1-1_all.deb ... 203s Unpacking python3-pytest-mock (3.15.1-1) ... 203s Selecting previously unselected package quilt. 203s Preparing to unpack .../49-quilt_0.68-1_all.deb ... 203s Unpacking quilt (0.68-1) ... 203s Selecting previously unselected package python3-scipy. 203s Preparing to unpack .../50-python3-scipy_1.16.3-4_amd64.deb ... 203s Unpacking python3-scipy (1.16.3-4) ... 204s Setting up python3-iniconfig (2.1.0-2) ... 204s Setting up python3-sniffio (1.3.1-1) ... 204s Setting up python3-pydantic-core (2.41.5-2) ... 204s Setting up python3-typing-inspection (0.4.2-1) ... 204s Setting up python3-anyio (4.11.0-3) ... 204s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 204s Setting up python3-tabulate (0.9.0-1build1) ... 204s Setting up libqhull-r8.0:amd64 (2020.2-8) ... 204s Setting up python3-pytz (2025.2-5) ... 204s Setting up libgomp1:amd64 (16-20260208-1ubuntu1) ... 204s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 204s Setting up python3-annotated-types (0.7.0-1) ... 204s Setting up python3-sbml5 (5.20.5+dfsg-2) ... 205s Setting up python3-platformdirs (4.5.1-1) ... 205s Setting up python3-decorator (5.2.1-2) ... 205s Setting up libblas3:amd64 (3.12.1-7ubuntu1) ... 205s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 205s Setting up diffstat (1.68-1) ... 205s Setting up python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 205s Setting up python3-h11 (0.14.0-1.1) ... 205s Setting up python3-depinfo (2.2.0-4) ... 205s Setting up python3-cpuinfo (9.0.0+git20221119-3) ... 205s Setting up libltdl7:amd64 (2.5.4-9) ... 205s Setting up libgfortran5:amd64 (16-20260208-1ubuntu1) ... 205s Setting up python3-pluggy (1.6.0-2) ... 205s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 205s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 206s Setting up libsuitesparseconfig7:amd64 (1:7.12.1+dfsg-1) ... 206s Setting up python3-email-validator (2.2.0-1) ... 206s Setting up python3-mpmath (1.3.0-2) ... 206s Setting up python3-diskcache (5.6.3-1) ... 206s Setting up python-cobra-data (0.29.1-3) ... 206s Setting up python3-httpcore (1.0.9-1) ... 206s Setting up python3-sympy (1.14.0-2) ... 210s /usr/lib/python3/dist-packages/sympy/testing/runtests.py:283: SyntaxWarning: 'return' in a 'finally' block 210s return p.returncode 210s Setting up liblapack3:amd64 (3.12.1-7ubuntu1) ... 210s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 210s Setting up gettext (0.23.2-1) ... 210s Setting up libamd3:amd64 (1:7.12.1+dfsg-1) ... 210s Setting up libcolamd3:amd64 (1:7.12.1+dfsg-1) ... 210s Setting up python3-pytest (9.0.2-2) ... 210s Setting up quilt (0.68-1) ... 210s Setting up python3-httpx (0.28.1-1build1) ... 210s Setting up libglpk40:amd64 (5.0-2) ... 210s Setting up python3-pydantic (2.12.5-2) ... 211s Setting up python3-numpy (1:2.3.5+ds-3) ... 212s Setting up python3-pytest-mock (3.15.1-1) ... 212s Setting up python3-swiglpk (5.0.10-2build3) ... 212s Setting up python3-optlang (1.8.3-1) ... 212s Setting up python3-pytest-benchmark (5.2.3-1) ... 212s Setting up python3-scipy (1.16.3-4) ... 215s Setting up python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 215s Setting up python3-pandas (2.3.3+dfsg-3) ... 218s Setting up python3-cobra (0.29.1-3) ... 218s Processing triggers for libc-bin (2.42-2ubuntu4) ... 218s Processing triggers for man-db (2.13.1-1build1) ... 218s Processing triggers for install-info (7.2-5) ... 220s autopkgtest [18:22:31]: test run-unit-test: [----------------------- 220s File series fully applied, ends at patch debian/patches/pr1452.patch 220s Running Tests 220s Since python3-sbml5 can only deal with one Python3 version we restrict the test to default Python3 222s ============================= test session starts ============================== 222s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 222s 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) 222s rootdir: /tmp/autopkgtest.vsyaLw/autopkgtest_tmp 222s plugins: benchmark-5.2.3, mock-3.15.1, typeguard-4.4.4, anyio-4.11.0 222s collected 554 items 222s 222s tests/test_core/test_configuration.py ...... [ 1%] 227s tests/test_core/test_core_reaction.py ..........ss.............F..FFFF.. [ 7%] 227s ...................x....... [ 12%] 227s tests/test_core/test_dictlist.py ...................... [ 16%] 227s tests/test_core/test_formula.py ..... [ 16%] 227s tests/test_core/test_gene.py . [ 17%] 227s tests/test_core/test_gpr.py ......................x..x.................. [ 25%] 233s ........................... [ 29%] 233s tests/test_core/test_group.py .. [ 30%] 233s tests/test_core/test_metabolite.py ...ss.ss. [ 31%] 237s tests/test_core/test_model.py .........................FF.F............. [ 39%] 238s ...........s..s.ss. [ 42%] 238s tests/test_core/test_solution.py .ss [ 43%] 242s tests/test_flux_analysis/test_deletion.py ....s..... [ 45%] 243s tests/test_flux_analysis/test_fastcc.py .... [ 46%] 245s tests/test_flux_analysis/test_geometric.py .. [ 46%] 245s tests/test_flux_analysis/test_moma.py . [ 46%] 247s tests/test_flux_analysis/test_parsimonious.py .. [ 46%] 247s tests/test_flux_analysis/test_reaction.py . [ 47%] 248s tests/test_flux_analysis/test_room.py .... [ 47%] 253s tests/test_flux_analysis/test_variability.py ....... [ 49%] 253s tests/test_flux_analysis/test_deletion.py sss [ 49%] 253s tests/test_flux_analysis/test_moma.py s [ 49%] 259s 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%] 261s tests/test_flux_analysis/test_phenotype_phase_plane.py ...... [ 53%] 262s tests/test_flux_analysis/test_variability.py ....... [ 54%] 262s tests/test_io/test_annotation.py .. [ 55%] 262s tests/test_io/test_annotation_format.py .. [ 55%] 263s tests/test_io/test_io_order.py ........................... [ 60%] 263s tests/test_io/test_json.py .... [ 61%] 271s tests/test_io/test_mat.py ............... [ 63%] 271s tests/test_io/test_notes.py . [ 64%] 271s tests/test_io/test_pickle.py .. [ 64%] 274s tests/test_io/test_sbml.py .ssss............xxxx.x.x..s............. [ 71%] 274s tests/test_io/test_web/test_load.py ..ssss. [ 73%] 274s tests/test_io/test_yaml.py .x [ 73%] 274s tests/test_manipulation/test_annotate.py . [ 73%] 274s tests/test_manipulation/test_delete.py ....... [ 74%] 275s tests/test_manipulation/test_modify.py ... [ 75%] 275s tests/test_manipulation/test_validate.py .. [ 75%] 275s tests/test_medium/test_boundary_types.py ........... [ 77%] 276s tests/test_medium/test_minimal_medium.py .......... [ 79%] 278s tests/test_sampling/test_achr.py ...... [ 80%] 280s tests/test_sampling/test_optgp.py ...... [ 81%] 284s tests/test_sampling/test_sampling.py .......... [ 83%] 285s tests/test_summary/test_metabolite_summary.py FFFFFFFFFFFFFFFFF [ 86%] 286s tests/test_summary/test_model_summary.py FFFFFFFFFFFFFFF [ 89%] 287s tests/test_summary/test_reaction_summary.py FFFFFFFFFFFFFFFFFFFF [ 92%] 287s tests/test_util/test_array.py .. [ 93%] 287s tests/test_util/test_context.py ... [ 93%] 297s tests/test_util/test_process_pool.py ............... [ 96%] 298s tests/test_util/test_solver.py ..............s [ 99%] 298s tests/test_util/test_util.py ...X [100%] 298s 298s =================================== FAILURES =================================== 298s __________________________________ test_copy ___________________________________ 298s 298s model = 298s 298s def test_copy(model: Model) -> None: 298s """Test reaction copying.""" 298s PGI = model.reactions.PGI 298s > copied = PGI.copy() 298s ^^^^^^^^^^ 298s 298s tests/test_core/test_core_reaction.py:393: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________________________ test_add ___________________________________ 298s 298s model = 298s 298s def test_add(model: Model) -> None: 298s """Test reaction addition to model.""" 298s # Not in place addition should work on a copy 298s > new = model.reactions.PGI + model.reactions.EX_h2o_e 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_core/test_core_reaction.py:469: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 298s new_reaction = self.copy() 298s ^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s __________________________________ test_radd ___________________________________ 298s 298s model = 298s 298s def test_radd(model: Model) -> None: 298s """Test __radd__ for a reaction.""" 298s > new = sum([model.reactions.PGI, model.reactions.EX_h2o_e]) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_core/test_core_reaction.py:485: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:989: in __add__ 298s new_reaction = self.copy() 298s ^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________________________ test_mul ___________________________________ 298s 298s model = 298s 298s def test_mul(model: Model) -> None: 298s """Test scalar multiplication of factors with a reaction.""" 298s > new = model.reactions.PGI * 2 298s ^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_core/test_core_reaction.py:492: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1131: in __mul__ 298s new = self.copy() 298s ^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________________________ test_sub ___________________________________ 298s 298s model = 298s 298s def test_sub(model: Model) -> None: 298s """Test reaction subtraction.""" 298s > new = model.reactions.PGI - model.reactions.EX_h2o_e 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_core/test_core_reaction.py:498: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1050: in __sub__ 298s new = self.copy() 298s ^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________________ test_deepcopy_benchmark ____________________________ 298s 298s model = 298s benchmark = 298s 298s def test_deepcopy_benchmark(model: Model, benchmark: BenchmarkFixture) -> None: 298s """Benchmark deepcopying a model. 298s 298s Parameters 298s ---------- 298s model: cobra.Model 298s benchmark: BenchmarkFixture 298s """ 298s > benchmark(deepcopy, model) 298s 298s tests/test_core/test_model.py:613: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:184: in __call__ 298s return self._raw(function_to_benchmark, *args, **kwargs) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:216: in _raw 298s duration, iterations, loops_range = self._calibrate_timer(runner) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:370: in _calibrate_timer 298s duration = runner(loops_range) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/pytest_benchmark/fixture.py:138: in runner 298s function_to_benchmark(*args, **kwargs) 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:240: in _reconstruct 298s state = deepcopy(state, memo) 298s ^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:131: in deepcopy 298s y = copier(x, memo) 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 298s y[deepcopy(key, memo)] = deepcopy(value, memo) 298s ^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:257: in _reconstruct 298s item = deepcopy(item, memo) 298s ^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ________________________________ test_deepcopy _________________________________ 298s 298s model = 298s 298s def test_deepcopy(model: Model) -> None: 298s """Test deepcopying works, and maintains reference structures. 298s 298s Parameters 298s ---------- 298s model: cobra.Model 298s """ 298s # Reference structures are maintained when deepcopying 298s > model_copy = deepcopy(model) 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_core/test_model.py:624: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:240: in _reconstruct 298s state = deepcopy(state, memo) 298s ^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:131: in deepcopy 298s y = copier(x, memo) 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:202: in _deepcopy_dict 298s y[deepcopy(key, memo)] = deepcopy(value, memo) 298s ^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:257: in _reconstruct 298s item = deepcopy(item, memo) 298s ^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________________________ test_merge_models _______________________________ 298s 298s model = 298s tiny_toy_model = 298s 298s def test_merge_models(model: Model, tiny_toy_model: Model) -> None: 298s """Test merging models. 298s 298s Parameters 298s ---------- 298s model: cobra.Model 298s tiny_toy_model: cobra.Model 298s """ 298s with model, tiny_toy_model: 298s # Add some cons/vars to tiny_toy_model for testing merging 298s tiny_toy_model.add_reactions([Reaction("EX_glc__D_e")]) 298s variable = tiny_toy_model.problem.Variable("foo") 298s constraint = tiny_toy_model.problem.Constraint( 298s variable, ub=0, lb=0, name="constraint" 298s ) 298s tiny_toy_model.add_cons_vars([variable, constraint]) 298s 298s > merged = model.merge( 298s tiny_toy_model, inplace=False, objective="sum", prefix_existing="tiny_" 298s ) 298s 298s tests/test_core/test_model.py:679: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1454: in merge 298s new_reactions = deepcopy(right.reactions) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:257: in _reconstruct 298s item = deepcopy(item, memo) 298s ^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________________________ test_gapfilling ________________________________ 298s 298s salmonella = 298s 298s def test_gapfilling(salmonella: Model) -> None: 298s """Test Gapfilling.""" 298s m = Model() 298s m.add_metabolites([Metabolite(m_id) for m_id in ["a", "b", "c"]]) 298s exa = Reaction("EX_a") 298s exa.add_metabolites({m.metabolites.a: 1}) 298s b2c = Reaction("b2c") 298s b2c.add_metabolites({m.metabolites.b: -1, m.metabolites.c: 1}) 298s dmc = Reaction("DM_c") 298s dmc.add_metabolites({m.metabolites.c: -1}) 298s m.add_reactions([exa, b2c, dmc]) 298s m.objective = "DM_c" 298s 298s universal = Model() 298s a2b = Reaction("a2b") 298s a2d = Reaction("a2d") 298s universal.add_reactions([a2b, a2d]) 298s a2b.build_reaction_from_string("a --> b", verbose=False) 298s a2d.build_reaction_from_string("a --> d", verbose=False) 298s 298s # # GrowMatch 298s # result = gapfilling.growMatch(m, universal)[0] 298s result = gapfill(m, universal)[0] 298s assert len(result) == 1 298s assert result[0].id == "a2b" 298s 298s # # SMILEY 298s # result = gapfilling.SMILEY(m, "b", universal)[0] 298s with m: 298s m.objective = m.add_boundary(m.metabolites.b, type="demand") 298s result = gapfill(m, universal)[0] 298s assert len(result) == 1 298s assert result[0].id == "a2b" 298s 298s # # 2 rounds of GrowMatch with exchange reactions 298s # result = gapfilling.growMatch(m, None, ex_rxns=True, iterations=2) 298s result = gapfill(m, None, exchange_reactions=True, iterations=2) 298s assert len(result) == 2 298s assert len(result[0]) == 1 298s assert len(result[1]) == 1 298s assert {i[0].id for i in result} == {"EX_b", "EX_c"} 298s 298s # # Gapfilling solution adds metabolites not present in original model 298s # test for when demand = T 298s # a demand reaction must be added to clear new metabolite 298s universal_noDM = Model() 298s a2b = Reaction("a2b") 298s universal_noDM.add_reactions([a2b]) 298s a2b.build_reaction_from_string("a --> b + d", verbose=False) 298s result = gapfill( 298s m, universal_noDM, exchange_reactions=False, demand_reactions=True 298s )[0] 298s # add reaction a2b and demand reaction to clear met d 298s assert len(result) == 2 298s assert "a2b" in [x.id for x in result] 298s 298s # test for when demand = False 298s # test for when metabolites are added to the model and 298s # must be cleared by other reactions in universal model 298s # (i.e. not necessarily a demand reaction) 298s universal_withDM = universal_noDM.copy() 298s d_dm = Reaction("d_dm") 298s universal_withDM.add_reactions([d_dm]) 298s d_dm.build_reaction_from_string("d -->", verbose=False) 298s result = gapfill( 298s m, universal_withDM, exchange_reactions=False, demand_reactions=False 298s )[0] 298s assert len(result) == 2 298s assert "a2b" in [x.id for x in result] 298s 298s # somewhat bigger model 298s universal = Model("universal_reactions") 298s with salmonella as model: 298s for i in [i.id for i in model.metabolites.f6p_c.reactions]: 298s reaction = model.reactions.get_by_id(i) 298s > universal.add_reactions([reaction.copy()]) 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_flux_analysis/test_gapfilling.py:82: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_metabolite_summary_interface[optlang-glpk] ________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_metabolite_summary_interface(model, opt_solver): 298s """Test that a summary can be created successfully.""" 298s model.solver = opt_solver 298s metabolite = model.metabolites.get_by_id("q8_c") 298s > MetaboliteSummary( 298s metabolite=metabolite, 298s model=model, 298s ) 298s 298s tests/test_summary/test_metabolite_summary.py:13: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ________________ test_metabolite_summary_to_frame[optlang-glpk] ________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_metabolite_summary_to_frame(model, opt_solver): 298s """Test that the summary's method ``to_frame`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:39: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs0] ____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:56: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs1] ____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:56: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs2] ____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:56: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs3] ____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:56: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________ test_metabolite_summary_to_string[optlang-glpk-kwargs4] ____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'column_width': 20} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_metabolite_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:56: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs0] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:66: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs1] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:66: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs2] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:66: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_metabolite_summary_to_html[optlang-glpk-kwargs3] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_metabolite_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("atp_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:66: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________ test_q8_producing_summary[optlang-glpk] ____________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_q8_producing_summary(model, opt_solver): 298s """Test that the production summary of q8 is accurate.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("q8_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:73: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ___________________ test_q8_consuming_summary[optlang-glpk] ____________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_q8_consuming_summary(model, opt_solver): 298s """Test that the consumption summary of q8 is accurate.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("q8_c").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:82: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s __________________ test_fdp_production_with_fva[optlang-glpk] __________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_fdp_production_with_fva(model, opt_solver): 298s """Test that the production summary of fdp is within expected bounds.""" 298s model.solver = opt_solver 298s > summary = model.metabolites.get_by_id("fdp_c").summary(fva=0.99) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:100: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s __________ test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] __________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s metabolite_id = 'q8_c' 298s 298s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 298s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 298s """Test that the metabolite summary inside and outside of a context are equal.""" 298s model.solver = opt_solver 298s with model: 298s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:112: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _________ test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] __________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s metabolite_id = 'fdp_c' 298s 298s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 298s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 298s """Test that the metabolite summary inside and outside of a context are equal.""" 298s model.solver = opt_solver 298s with model: 298s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:112: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _________ test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] __________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s metabolite_id = 'atp_c' 298s 298s @pytest.mark.parametrize("metabolite_id", ["q8_c", "fdp_c", "atp_c"]) 298s def test_metabolite_summary_flux_in_context(model, opt_solver, metabolite_id: str): 298s """Test that the metabolite summary inside and outside of a context are equal.""" 298s model.solver = opt_solver 298s with model: 298s > context_summary = model.metabolites.get_by_id(metabolite_id).summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_metabolite_summary.py:112: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/metabolite.py:310: in summary 298s return MetaboliteSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/metabolite_summary.py:83: in __init__ 298s r.copy() for r in sorted(metabolite.reactions, key=attrgetter("id")) 298s ^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s __________________ test_model_summary_interface[optlang-glpk] __________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_interface(model, opt_solver): 298s """Test that a summary can be created successfully.""" 298s model.solver = opt_solver 298s > ModelSummary( 298s model=model, 298s ) 298s 298s tests/test_summary/test_model_summary.py:12: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s __________________ test_model_summary_to_frame[optlang-glpk] ___________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_to_frame(model, opt_solver): 298s """Test that the summary's method ``to_frame`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:34: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________ test_model_summary_to_string[optlang-glpk-kwargs0] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_model_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:51: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________ test_model_summary_to_string[optlang-glpk-kwargs1] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_model_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:51: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________ test_model_summary_to_string[optlang-glpk-kwargs2] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_model_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:51: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________ test_model_summary_to_string[optlang-glpk-kwargs3] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_model_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:51: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ______________ test_model_summary_to_string[optlang-glpk-kwargs4] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'column_width': 20} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_model_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:51: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_model_summary_to_html[optlang-glpk-kwargs0] _______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_model_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:61: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_model_summary_to_html[optlang-glpk-kwargs1] _______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_model_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:61: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_model_summary_to_html[optlang-glpk-kwargs2] _______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_model_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:61: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_model_summary_to_html[optlang-glpk-kwargs3] _______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_model_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:61: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _________ test_model_summary_to_frame_previous_solution[optlang-glpk] __________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_to_frame_previous_solution(model, opt_solver): 298s """Test that the summary correctly uses an existing solution.""" 298s model.solver = opt_solver 298s solution = pfba(model) 298s rxn = model.reactions.EX_glc__D_e 298s solution.fluxes[rxn.id] = -123 298s > summary = model.summary(solution=solution) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:71: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________________ test_model_summary_flux[optlang-glpk] _____________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_flux(model, opt_solver): 298s """Test that the summary has expected fluxes.""" 298s model.solver = opt_solver 298s > summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:78: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________________ test_model_summary_fva[optlang-glpk] _____________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_fva(model, opt_solver): 298s """Test that the exchange summary is within expected bounds.""" 298s model.solver = opt_solver 298s > summary = model.summary(fva=0.95) 298s ^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:88: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_model_summary_flux_in_context[optlang-glpk] _______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_model_summary_flux_in_context(model, opt_solver): 298s """Test that the model summary inside and outside of a context are equal.""" 298s model.solver = opt_solver 298s copy = model.copy() 298s with model: 298s model.reactions.EX_glc__D_e.bounds = (0, 1000) 298s model.reactions.EX_ac_e.bounds = (-10, 1000) 298s > context_summary = model.summary() 298s ^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_model_summary.py:109: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/model.py:1389: in summary 298s return ModelSummary(model=self, solution=solution, fva=fva) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:84: in __init__ 298s self._generate(model, solution, fva) 298s /usr/lib/python3/dist-packages/cobra/summary/model_summary.py:126: in _generate 298s rxn.copy(): coef for rxn, coef in coefficients.items() 298s ^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ________________ test_reaction_summary_interface[optlang-glpk] _________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_reaction_summary_interface(model, opt_solver): 298s """Test that a summary can be created successfully.""" 298s model.solver = opt_solver 298s reaction = model.reactions.get_by_id("FUM") 298s > ReactionSummary( 298s reaction=reaction, 298s model=model, 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:13: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _________________ test_reaction_summary_to_frame[optlang-glpk] _________________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s 298s def test_reaction_summary_to_frame(model, opt_solver): 298s """Test that the summary's method ``to_frame`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:37: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs0] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_reaction_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:54: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs1] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_reaction_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:54: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs2] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_reaction_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:54: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs3] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_reaction_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:54: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________ test_reaction_summary_to_string[optlang-glpk-kwargs4] _____________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'column_width': 20} 298s 298s @pytest.mark.parametrize( 298s "kwargs", 298s [ 298s {}, 298s {"names": True}, 298s {"float_format": ".1f"}, 298s {"threshold": 1e-2}, 298s {"column_width": 20}, 298s ], 298s ) 298s def test_reaction_summary_to_string(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_string`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:54: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs0] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_reaction_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:64: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs1] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'names': True} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_reaction_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:64: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs2] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'float_format': '.1f'} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_reaction_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:64: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________ test_reaction_summary_to_html[optlang-glpk-kwargs3] ______________ 298s 298s model = , opt_solver = 'optlang-glpk' 298s kwargs = {'threshold': 0.01} 298s 298s @pytest.mark.parametrize( 298s "kwargs", [{}, {"names": True}, {"float_format": ".1f"}, {"threshold": 1e-2}] 298s ) 298s def test_reaction_summary_to_html(model, opt_solver, kwargs): 298s """Test that the summary's method ``to_html`` can be called.""" 298s model.solver = opt_solver 298s > summary = model.reactions.get_by_id("FUM").summary() 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s 298s tests/test_summary/test_reaction_summary.py:64: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 298s return ReactionSummary( 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ____________________ test_reaction_summary_flux[ACALD-0.0] _____________________ 298s 298s model = , reaction_id = 'ACALD' 298s expected = 0.0 298s 298s @pytest.mark.parametrize( 298s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 298s ) 298s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 298s """Test that the reported flux in the summary is reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:73: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________________ test_reaction_summary_flux[FUM-5.06] _____________________ 298s 298s model = , reaction_id = 'FUM' 298s expected = 5.06 298s 298s @pytest.mark.parametrize( 298s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 298s ) 298s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 298s """Test that the reported flux in the summary is reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:73: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _____________________ test_reaction_summary_flux[PFK-7.48] _____________________ 298s 298s model = , reaction_id = 'PFK' 298s expected = 7.48 298s 298s @pytest.mark.parametrize( 298s "reaction_id, expected", [("ACALD", 0.0), ("FUM", 5.06), ("PFK", 7.48)] 298s ) 298s def test_reaction_summary_flux(model, reaction_id: str, expected: float) -> None: 298s """Test that the reported flux in the summary is reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:73: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s _______________ test_reaction_summary_flux_fva[ACALD--1.27-0.0] ________________ 298s 298s model = , reaction_id = 'ACALD' 298s min_flux = -1.27, max_flux = 0.0 298s 298s @pytest.mark.parametrize( 298s "reaction_id, min_flux, max_flux", 298s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 298s ) 298s def test_reaction_summary_flux_fva( 298s model, reaction_id: str, min_flux: float, max_flux: float 298s ) -> None: 298s """Test that the reported flux ranges in the summary are reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:89: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ________________ test_reaction_summary_flux_fva[FUM-0.79-7.38] _________________ 298s 298s model = , reaction_id = 'FUM' 298s min_flux = 0.79, max_flux = 7.38 298s 298s @pytest.mark.parametrize( 298s "reaction_id, min_flux, max_flux", 298s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 298s ) 298s def test_reaction_summary_flux_fva( 298s model, reaction_id: str, min_flux: float, max_flux: float 298s ) -> None: 298s """Test that the reported flux ranges in the summary are reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:89: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 298s !!! Recursion detected (same locals & position) 298s ________________ test_reaction_summary_flux_fva[PFK-2.58-16.38] ________________ 298s 298s model = , reaction_id = 'PFK' 298s min_flux = 2.58, max_flux = 16.38 298s 298s @pytest.mark.parametrize( 298s "reaction_id, min_flux, max_flux", 298s [("ACALD", -1.27, 0.0), ("FUM", 0.79, 7.38), ("PFK", 2.58, 16.38)], 298s ) 298s def test_reaction_summary_flux_fva( 298s model, reaction_id: str, min_flux: float, max_flux: float 298s ) -> None: 298s """Test that the reported flux ranges in the summary are reasonable.""" 298s > result = ReactionSummary( 298s reaction=model.reactions.get_by_id(reaction_id), model=model, fva=0.95 298s ) 298s 298s tests/test_summary/test_reaction_summary.py:89: 298s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 298s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 298s self._reaction = reaction.copy() 298s ^^^^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 298s new_reaction = deepcopy(self) 298s ^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:157: in deepcopy 298s y = _reconstruct(x, memo, *rv) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:234: in _reconstruct 298s y = func(*args) 298s ^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:233: in 298s args = (deepcopy(arg, memo) for arg in args) 298s ^^^^^^^^^^^^^^^^^^^ 298s /usr/lib/python3.14/copy.py:138: in deepcopy 298s y = copier(memo) 298s ^^^^^^^^^^^^ 298s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 298s cop = deepcopy(super(Reaction, self), memo) 298s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 298s E RecursionError: maximum recursion depth exceeded 299s !!! Recursion detected (same locals & position) 299s _________________ test_reaction_summary_flux_in_context[ACALD] _________________ 299s 299s model = , reaction_id = 'ACALD' 299s 299s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 299s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 299s """Test that the reaction summary inside and outside of a context are equal.""" 299s with model: 299s > context_summary = model.reactions.get_by_id(reaction_id).summary() 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s 299s tests/test_summary/test_reaction_summary.py:104: 299s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 299s return ReactionSummary( 299s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 299s self._reaction = reaction.copy() 299s ^^^^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 299s new_reaction = deepcopy(self) 299s ^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:157: in deepcopy 299s y = _reconstruct(x, memo, *rv) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:234: in _reconstruct 299s y = func(*args) 299s ^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:233: in 299s args = (deepcopy(arg, memo) for arg in args) 299s ^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s E RecursionError: maximum recursion depth exceeded 299s !!! Recursion detected (same locals & position) 299s __________________ test_reaction_summary_flux_in_context[FUM] __________________ 299s 299s model = , reaction_id = 'FUM' 299s 299s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 299s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 299s """Test that the reaction summary inside and outside of a context are equal.""" 299s with model: 299s > context_summary = model.reactions.get_by_id(reaction_id).summary() 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s 299s tests/test_summary/test_reaction_summary.py:104: 299s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 299s return ReactionSummary( 299s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 299s self._reaction = reaction.copy() 299s ^^^^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 299s new_reaction = deepcopy(self) 299s ^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:157: in deepcopy 299s y = _reconstruct(x, memo, *rv) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:234: in _reconstruct 299s y = func(*args) 299s ^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:233: in 299s args = (deepcopy(arg, memo) for arg in args) 299s ^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s E RecursionError: maximum recursion depth exceeded 299s !!! Recursion detected (same locals & position) 299s __________________ test_reaction_summary_flux_in_context[PFK] __________________ 299s 299s model = , reaction_id = 'PFK' 299s 299s @pytest.mark.parametrize("reaction_id", ["ACALD", "FUM", "PFK"]) 299s def test_reaction_summary_flux_in_context(model, reaction_id: str) -> None: 299s """Test that the reaction summary inside and outside of a context are equal.""" 299s with model: 299s > context_summary = model.reactions.get_by_id(reaction_id).summary() 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s 299s tests/test_summary/test_reaction_summary.py:104: 299s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:1653: in summary 299s return ReactionSummary( 299s /usr/lib/python3/dist-packages/cobra/summary/reaction_summary.py:73: in __init__ 299s self._reaction = reaction.copy() 299s ^^^^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:960: in copy 299s new_reaction = deepcopy(self) 299s ^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:157: in deepcopy 299s y = _reconstruct(x, memo, *rv) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:234: in _reconstruct 299s y = func(*args) 299s ^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:233: in 299s args = (deepcopy(arg, memo) for arg in args) 299s ^^^^^^^^^^^^^^^^^^^ 299s /usr/lib/python3.14/copy.py:138: in deepcopy 299s y = copier(memo) 299s ^^^^^^^^^^^^ 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:273: in __deepcopy__ 299s cop = deepcopy(super(Reaction, self), memo) 299s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 299s E RecursionError: maximum recursion depth exceeded 299s !!! Recursion detected (same locals & position) 299s =============================== warnings summary =============================== 299s :491 299s :491: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute 299s 299s :491 299s :491: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute 299s 299s tests/test_core/test_gpr.py::test_and_gpr[a AND b-2-gpr_genes2-a and b] 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_or_gpr[a OR b-2-gpr_genes2-a or b] 299s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[a OR b-symbolic_gpr2] 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 299s tests/test_core/test_gpr.py::test_gpr_from_symbolic[a OR b-symbolic_gpr5] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_complicated_gpr[(a OR b) AND c] 299s tests/test_core/test_gpr.py::test_gpr_as_symbolic_boolean[(a OR b) AND c-symbolic_gpr6] 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_and_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 299s tests/test_core/test_gpr.py::test_gpr_from_symbolic[(a OR b) AND c-symbolic_gpr9] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule '(a OR b) AND c'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_gpr_that_needs_two_replacements 299s /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)'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_and_b_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists3] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b AND a'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_or_b_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists0] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists6] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'b OR a'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_or_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists1] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists4] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists8] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a OR b or c'. 299s warn( 299s 299s tests/test_core/test_gpr.py::test_gpr_equality_with_bolean_logic[a_b_c_and_strs] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists2] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists5] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists7] 299s tests/test_core/test_gpr.py::test_gpr_inequality_boolean[gpr_lists9] 299s /usr/lib/python3/dist-packages/cobra/core/gene.py:358: SyntaxWarning: Uppercase AND/OR found in rule 'a AND b and c'. 299s warn( 299s 299s tests/test_core/test_model.py::test_reaction_delete 299s tests/test_core/test_model.py::test_reaction_delete 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:879: DeprecationWarning: delete is deprecated. Use reaction.remove_from_model instead 299s warn( 299s 299s tests/test_core/test_model.py::test_group_loss_of_elements 299s /usr/lib/python3/dist-packages/cobra/core/group.py:147: UserWarning: need to pass in a list 299s warn("need to pass in a list") 299s 299s tests/test_core/test_model.py::test_change_objective 299s tests/test_core/test_model.py::test_change_objective 299s tests/test_core/test_model.py::test_change_objective 299s /usr/lib/python3/dist-packages/cobra/core/reaction.py:761: DeprecationWarning: Please use reaction.flux instead. 299s warn("Please use reaction.flux instead.", DeprecationWarning) 299s 299s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 299s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 299s /tmp/autopkgtest.vsyaLw/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 299s assert math.isnan(sol.growth) 299s 299s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 299s tests/test_flux_analysis/test_deletion.py::test_double_reaction_deletion 299s /tmp/autopkgtest.vsyaLw/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 299s assert math.isnan(sol_one.growth) 299s 299s tests/test_flux_analysis/test_gapfilling.py: 980 warnings 299s /tmp/autopkgtest.vsyaLw/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: BoolOp.__init__ missing 1 required positional argument: 'op'. This will become an error in Python 3.15. 299s return _load(infile) 299s 299s tests/test_flux_analysis/test_gapfilling.py: 4020 warnings 299s /tmp/autopkgtest.vsyaLw/autopkgtest_tmp/tests/conftest.py:53: DeprecationWarning: Name.__init__ missing 1 required positional argument: 'id'. This will become an error in Python 3.15. 299s return _load(infile) 299s 299s tests/test_io/test_json.py: 34 warnings 299s tests/test_io/test_mat.py: 34 warnings 299s tests/test_io/test_pickle.py: 34 warnings 299s tests/test_io/test_yaml.py: 34 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s return load(infile) 299s 299s tests/test_io/test_json.py: 11 warnings 299s tests/test_io/test_mat.py: 11 warnings 299s tests/test_io/test_pickle.py: 11 warnings 299s tests/test_io/test_yaml.py: 11 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s return load(infile) 299s 299s tests/test_io/test_json.py: 1 warning 299s tests/test_io/test_mat.py: 5 warnings 299s tests/test_io/test_pickle.py: 1 warning 299s tests/test_io/test_sbml.py: 9 warnings 299s tests/test_io/test_yaml.py: 1 warning 299s /usr/lib/python3/dist-packages/cobra/util/solver.py:554: UserWarning: Solver status is 'infeasible'. 299s warn(f"Solver status is '{status}'.", UserWarning) 299s 299s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 299s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 299s /tmp/autopkgtest.vsyaLw/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. 299s return load(infile) 299s 299s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 299s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 299s tests/test_io/test_mat.py::test_load_matlab_model[raven_model-data_directory-raven.mat] 299s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 299s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 299s tests/test_io/test_mat.py::test_save_matlab_model[raven_model-raven.mat] 299s /tmp/autopkgtest.vsyaLw/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. 299s return load(infile) 299s 299s tests/test_io/test_pickle.py: 34 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s pickle_model = load_function(infile) 299s 299s tests/test_io/test_pickle.py: 11 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s pickle_model = load_function(infile) 299s 299s tests/test_io/test_sbml.py: 136 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s reference_model = load(infile) 299s 299s tests/test_io/test_sbml.py: 44 warnings 299s /tmp/autopkgtest.vsyaLw/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. 299s reference_model = load(infile) 299s 299s tests/test_io/test_yaml.py::test_save_yaml_model 299s /tmp/autopkgtest.vsyaLw/autopkgtest_tmp/tests/test_io/test_yaml.py:29: PendingDeprecationWarning: 299s you should no longer specify 'unsafe'. 299s For **dumping only** use yaml=YAML(typ='full') 299s 299s yaml = YAML(typ="unsafe") 299s 299s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 299s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 299s tests/test_medium/test_boundary_types.py::test_find_external_compartment_multi 299s /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]` 299s compartment = most[matches[most]][0] 299s 299s tests/test_util/test_process_pool.py::test_with_context 299s /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 299s self._pool.__enter__() 299s 299s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 299s 299s ------------------------------------------------------------------------------------------------------------------- benchmark: 30 tests -------------------------------------------------------------------------------------------------------------------- 299s Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations 299s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 299s test_subtract_metabolite_benchmark[cplex] 1.4820 (1.0) 159.4190 (7.97) 1.8095 (1.09) 1.9329 (2.74) 1.6120 (1.01) 0.0810 (1.65) 34;1569 552,627.0955 (0.92) 8028 1 299s test_subtract_metabolite_benchmark[glpk] 1.5120 (1.02) 20.0100 (1.0) 1.6792 (1.01) 0.7059 (1.0) 1.6030 (1.0) 0.0490 (1.0) 244;378 595,508.8833 (0.99) 8133 1 299s test_subtract_metabolite_benchmark[gurobi] 1.5120 (1.02) 78.8780 (3.94) 1.6661 (1.0) 1.0652 (1.51) 1.6030 (1.0) 0.0490 (1.0) 37;266 600,212.4507 (1.0) 7767 1 299s test_achr_sample_benchmark 76.3340 (51.51) 259.3090 (12.96) 88.3282 (53.02) 13.3533 (18.92) 83.4750 (52.07) 12.1933 (248.84) 281;98 11,321.4081 (0.02) 2293 1 299s test_change_objective_benchmark[optlang-glpk] 88.5630 (59.76) 412.0470 (20.59) 102.8255 (61.72) 19.2612 (27.29) 96.1440 (59.98) 11.9855 (244.60) 531;498 9,725.2121 (0.02) 7195 1 299s test_optgp_sample_benchmark 118.9280 (80.25) 429.4340 (21.46) 135.5060 (81.33) 16.5447 (23.44) 130.5560 (81.44) 17.6365 (359.93) 271;49 7,379.7471 (0.01) 2420 1 299s test_loopless_benchmark_after 566.5690 (382.30) 876.6650 (43.81) 611.1922 (366.85) 29.6323 (41.98) 609.6040 (380.29) 27.4060 (559.31) 107;24 1,636.1466 (0.00) 653 1 299s test_single_gene_deletion_fba_benchmark[glpk] 2,511.0650 (>1000.0) 3,978.8850 (198.84) 2,670.4419 (>1000.0) 135.8204 (192.41) 2,653.8840 (>1000.0) 123.2050 (>1000.0) 23;8 374.4699 (0.00) 276 1 299s test_loopless_benchmark_before 2,789.4920 (>1000.0) 3,208.9500 (160.37) 2,896.0102 (>1000.0) 57.9798 (82.14) 2,883.2025 (>1000.0) 44.3720 (905.55) 40;17 345.3027 (0.00) 232 1 299s test_minimal_medium_mip_benchmark 3,698.4550 (>1000.0) 4,285.2850 (214.16) 3,831.3760 (>1000.0) 95.6471 (135.50) 3,810.5320 (>1000.0) 89.7122 (>1000.0) 28;10 261.0028 (0.00) 163 1 299s test_minimal_medium_linear_benchmark 3,779.6360 (>1000.0) 4,313.6970 (215.58) 3,905.8494 (>1000.0) 96.5040 (136.71) 3,887.8435 (>1000.0) 94.9520 (>1000.0) 36;12 256.0263 (0.00) 166 1 299s test_copy_benchmark[optlang-glpk] 6,991.1610 (>1000.0) 91,260.4050 (>1000.0) 8,998.6739 (>1000.0) 9,682.0840 (>1000.0) 7,273.4340 (>1000.0) 449.9700 (>1000.0) 3;20 111.1275 (0.00) 137 1 299s test_gpr_equality_benchmark 9,262.5360 (>1000.0) 10,433.5210 (521.42) 9,654.6217 (>1000.0) 298.8788 (423.40) 9,556.2470 (>1000.0) 464.0760 (>1000.0) 32;0 103.5773 (0.00) 94 1 299s test_single_reaction_deletion_benchmark[glpk] 16,090.8030 (>1000.0) 20,456.2470 (>1000.0) 19,105.1071 (>1000.0) 1,112.9328 (>1000.0) 19,300.4550 (>1000.0) 1,011.3115 (>1000.0) 12;5 52.3420 (0.00) 52 1 299s test_flux_variability_loopless_benchmark[glpk] 17,851.2930 (>1000.0) 29,625.5840 (>1000.0) 19,132.2550 (>1000.0) 2,446.8657 (>1000.0) 18,114.3770 (>1000.0) 935.1887 (>1000.0) 3;6 52.2678 (0.00) 37 1 299s test_fastcc_benchmark[glpk] 30,745.0220 (>1000.0) 38,437.4740 (>1000.0) 34,157.4571 (>1000.0) 2,693.5943 (>1000.0) 32,953.3630 (>1000.0) 5,295.0085 (>1000.0) 12;0 29.2762 (0.00) 23 1 299s test_add_metabolite_benchmark[cplex] 39,944.7930 (>1000.0) 68,475.0850 (>1000.0) 45,241.1703 (>1000.0) 8,207.1644 (>1000.0) 41,569.1190 (>1000.0) 4,943.7310 (>1000.0) 3;4 22.1038 (0.00) 22 1 299s test_add_metabolite_benchmark[glpk] 40,061.4590 (>1000.0) 43,757.4190 (>1000.0) 40,456.5850 (>1000.0) 692.9121 (981.60) 40,325.1140 (>1000.0) 313.9210 (>1000.0) 1;1 24.7179 (0.00) 26 1 299s test_add_metabolite_benchmark[gurobi] 40,099.8860 (>1000.0) 65,225.1340 (>1000.0) 48,521.1189 (>1000.0) 8,726.2017 (>1000.0) 44,043.5690 (>1000.0) 16,622.0868 (>1000.0) 7;0 20.6096 (0.00) 25 1 299s test_gpr_symbolism_benchmark 43,963.8290 (>1000.0) 49,656.9940 (>1000.0) 45,357.8118 (>1000.0) 1,261.2701 (>1000.0) 45,179.3920 (>1000.0) 1,236.7160 (>1000.0) 3;1 22.0469 (0.00) 21 1 299s test_double_reaction_deletion_benchmark 48,351.7970 (>1000.0) 50,054.1390 (>1000.0) 48,824.8466 (>1000.0) 572.4475 (810.95) 48,694.7620 (>1000.0) 369.8990 (>1000.0) 1;1 20.4814 (0.00) 7 1 299s test_achr_init_benchmark 68,153.0830 (>1000.0) 114,501.8970 (>1000.0) 72,651.4440 (>1000.0) 11,847.0636 (>1000.0) 68,935.9160 (>1000.0) 1,405.4178 (>1000.0) 1;2 13.7644 (0.00) 15 1 299s test_optgp_init_benchmark 68,408.6760 (>1000.0) 134,028.4010 (>1000.0) 74,940.7367 (>1000.0) 16,621.5026 (>1000.0) 70,082.1250 (>1000.0) 2,281.3960 (>1000.0) 1;2 13.3439 (0.00) 15 1 299s test_single_gene_deletion_linear_moma_benchmark[glpk] 92,801.2340 (>1000.0) 109,579.9690 (>1000.0) 97,230.0395 (>1000.0) 4,780.6272 (>1000.0) 95,391.5870 (>1000.0) 1,879.9382 (>1000.0) 2;2 10.2849 (0.00) 11 1 299s test_double_gene_deletion_benchmark 128,671.0990 (>1000.0) 138,857.3110 (>1000.0) 134,668.8230 (>1000.0) 3,936.7651 (>1000.0) 135,892.2550 (>1000.0) 5,314.0395 (>1000.0) 2;0 7.4256 (0.00) 5 1 299s test_single_gene_deletion_linear_room_benchmark[glpk] 134,396.0220 (>1000.0) 149,618.0520 (>1000.0) 142,368.6910 (>1000.0) 5,654.8813 (>1000.0) 142,184.8090 (>1000.0) 7,513.9940 (>1000.0) 2;0 7.0240 (0.00) 6 1 299s test_pfba_benchmark[glpk] 159,850.9430 (>1000.0) 207,310.1730 (>1000.0) 186,281.8518 (>1000.0) 18,494.5850 (>1000.0) 191,250.0360 (>1000.0) 26,963.4182 (>1000.0) 2;0 5.3682 (0.00) 5 1 299s test_copy_benchmark_large_model[optlang-glpk] 162,248.6780 (>1000.0) 239,842.0730 (>1000.0) 193,407.2069 (>1000.0) 33,645.6407 (>1000.0) 186,195.7990 (>1000.0) 63,778.0470 (>1000.0) 2;0 5.1704 (0.00) 7 1 299s test_geometric_fba_benchmark[glpk] 213,341.2740 (>1000.0) 237,735.5550 (>1000.0) 221,535.2702 (>1000.0) 10,832.9797 (>1000.0) 214,819.5500 (>1000.0) 16,375.9957 (>1000.0) 1;0 4.5140 (0.00) 5 1 299s test_flux_variability_benchmark[glpk] 246,112.6430 (>1000.0) 247,419.6030 (>1000.0) 246,531.4236 (>1000.0) 532.0210 (753.68) 246,355.8390 (>1000.0) 651.8492 (>1000.0) 1;0 4.0563 (0.00) 5 1 299s ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 299s 299s Legend: 299s Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. 299s OPS: Operations Per Second, computed as 1 / Mean 299s =========================== short test summary info ============================ 299s FAILED tests/test_core/test_core_reaction.py::test_copy - RecursionError: max... 299s FAILED tests/test_core/test_core_reaction.py::test_add - RecursionError: maxi... 299s FAILED tests/test_core/test_core_reaction.py::test_radd - RecursionError: max... 299s FAILED tests/test_core/test_core_reaction.py::test_mul - RecursionError: maxi... 299s FAILED tests/test_core/test_core_reaction.py::test_sub - RecursionError: maxi... 299s FAILED tests/test_core/test_model.py::test_deepcopy_benchmark - RecursionErro... 299s FAILED tests/test_core/test_model.py::test_deepcopy - RecursionError: maximum... 299s FAILED tests/test_core/test_model.py::test_merge_models - RecursionError: max... 299s FAILED tests/test_flux_analysis/test_gapfilling.py::test_gapfilling - Recursi... 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_interface[optlang-glpk] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_frame[optlang-glpk] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_string[optlang-glpk-kwargs4] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_to_html[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_producing_summary[optlang-glpk] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_q8_consuming_summary[optlang-glpk] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_fdp_production_with_fva[optlang-glpk] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-q8_c] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-fdp_c] 299s FAILED tests/test_summary/test_metabolite_summary.py::test_metabolite_summary_flux_in_context[optlang-glpk-atp_c] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_interface[optlang-glpk] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame[optlang-glpk] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_string[optlang-glpk-kwargs4] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_html[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_to_frame_previous_solution[optlang-glpk] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux[optlang-glpk] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_fva[optlang-glpk] 299s FAILED tests/test_summary/test_model_summary.py::test_model_summary_flux_in_context[optlang-glpk] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_interface[optlang-glpk] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_frame[optlang-glpk] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_string[optlang-glpk-kwargs4] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs0] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs1] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs2] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_to_html[optlang-glpk-kwargs3] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[ACALD-0.0] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[FUM-5.06] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux[PFK-7.48] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[ACALD--1.27-0.0] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[FUM-0.79-7.38] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_fva[PFK-2.58-16.38] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[ACALD] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[FUM] 299s FAILED tests/test_summary/test_reaction_summary.py::test_reaction_summary_flux_in_context[PFK] 299s = 61 failed, 455 passed, 27 skipped, 10 xfailed, 1 xpassed, 5490 warnings in 76.87s (0:01:16) = 300s autopkgtest [18:23:51]: test run-unit-test: -----------------------] 300s autopkgtest [18:23:51]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 300s run-unit-test FAIL non-zero exit status 1 301s autopkgtest [18:23:52]: @@@@@@@@@@@@@@@@@@@@ summary 301s run-unit-test FAIL non-zero exit status 1