==>(B Building on blacephalon(B ==>(B Checking for remote environment...(B ==>(B Syncing package to remote host...(B sending incremental file list created directory packages/python-langgraph ./ .SRCINFO 1,167 100% 0.00kB/s 0:00:00 1,167 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 54 100% 52.73kB/s 0:00:00 54 100% 52.73kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 2,436 100% 2.32MB/s 0:00:00 2,436 100% 2.32MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-langgraph-1.2.11-1.log 632 100% 617.19kB/s 0:00:00 632 100% 617.19kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,967 bytes received 192 bytes 2,106.00 bytes/sec total size is 4,898 speedup is 1.55 ==>(B Running pkgctl build --arch riscv64 on remote host...(B ==> WARNING:(B invalid architecture: riscv64(B ==>(B Updating pacman database cache(B [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==>(B Building python-langgraph(B  ->(B repo: extra(B  ->(B arch: riscv64(B  ->(B worker: felix-0(B ==>(B Building python-langgraph for [extra] (riscv64)(B ]3008;start=0c8caff67e064e13acf7d594f7a83f95;user=felix;hostname=blacephalon.felixc.at;machineid=72144a64db6f4720ade5ccd1e3c98c82;bootid=6041f8794d434adca4ce2f34a952bd8e;pid=3646457;pidfdid=7840345;comm=sudo;targetuser=root;type=session\]3008;start=d88c542f8a5948158f18428e0b290694;user=root;hostname=blacephalon.felixc.at;machineid=72144a64db6f4720ade5ccd1e3c98c82;bootid=6041f8794d434adca4ce2f34a952bd8e;pid=3646505;pidfdid=7840393;comm=systemd-nspawn;container=arch-nspawn-3646505;type=container\]11;?\]2;🔵 Container arch-nspawn-3646505 on blacephalon.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (1) Old Version New Version Net Change Download Size core/curl 8.21.0-1 8.22.0-1 0.03 MiB 1.32 MiB Total Download Size: 1.32 MiB Total Installed Size: 2.15 MiB Net Upgrade Size: 0.03 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... curl-8.22.0-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading curl... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h[!p]104\[?7h]3008;end=d88c542f8a5948158f18428e0b290694\==>(B Building in chroot for [extra] (riscv64)...(B ==>(B Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...(Bdone(B ]3008;start=b64b51be4b4146f2a79eac0668ce87a9;user=root;hostname=blacephalon.felixc.at;machineid=72144a64db6f4720ade5ccd1e3c98c82;bootid=6041f8794d434adca4ce2f34a952bd8e;pid=3647093;pidfdid=7840981;comm=sudo;targetuser=felix;type=session\==>(B Making package: python-langgraph 1.2.11-1 (Fri Sep 11 01:04:04 2026)(B ==>(B Retrieving sources...(B  ->(B Cloning langgraph git repo...(B Cloning into bare repository '/home/felix/packages/python-langgraph/langgraph'... remote: Enumerating objects: 187410, done. remote: Counting objects: 0% (1/1447) remote: Counting objects: 1% (15/1447) remote: Counting objects: 2% (29/1447) remote: Counting objects: 3% (44/1447) remote: Counting objects: 4% (58/1447) remote: Counting objects: 5% (73/1447) remote: Counting objects: 6% (87/1447) remote: Counting objects: 7% (102/1447) remote: Counting objects: 8% (116/1447) remote: Counting objects: 9% (131/1447) remote: Counting objects: 10% (145/1447) remote: Counting objects: 11% (160/1447) remote: Counting objects: 12% (174/1447) remote: Counting objects: 13% (189/1447) remote: Counting objects: 14% (203/1447) remote: Counting objects: 15% (218/1447) remote: Counting objects: 16% (232/1447) remote: Counting objects: 17% (246/1447) remote: Counting objects: 18% (261/1447) remote: Counting objects: 19% (275/1447) remote: Counting objects: 20% (290/1447) remote: Counting objects: 21% (304/1447) remote: Counting objects: 22% (319/1447) remote: Counting objects: 23% (333/1447) remote: Counting objects: 24% (348/1447) remote: Counting objects: 25% (362/1447) remote: Counting objects: 26% (377/1447) remote: Counting objects: 27% (391/1447) remote: Counting objects: 28% (406/1447) remote: Counting objects: 29% (420/1447) remote: Counting objects: 30% (435/1447) remote: Counting objects: 31% (449/1447) remote: Counting objects: 32% (464/1447) remote: Counting objects: 33% (478/1447) remote: Counting objects: 34% (492/1447) remote: Counting objects: 35% (507/1447) remote: Counting objects: 36% (521/1447) remote: Counting objects: 37% (536/1447) remote: Counting objects: 38% (550/1447) remote: Counting objects: 39% (565/1447) remote: Counting objects: 40% (579/1447) remote: Counting objects: 41% (594/1447) remote: Counting objects: 42% (608/1447) remote: Counting objects: 43% (623/1447) remote: Counting objects: 44% (637/1447) remote: Counting objects: 45% (652/1447) remote: Counting objects: 46% (666/1447) remote: Counting objects: 47% (681/1447) remote: Counting objects: 48% (695/1447) remote: Counting objects: 49% (710/1447) remote: Counting objects: 50% (724/1447) remote: Counting objects: 51% (738/1447) remote: Counting objects: 52% (753/1447) remote: Counting objects: 53% (767/1447) remote: Counting objects: 54% (782/1447) remote: Counting objects: 55% (796/1447) remote: Counting objects: 56% (811/1447) remote: Counting objects: 57% (825/1447) remote: Counting objects: 58% (840/1447) remote: Counting objects: 59% (854/1447) remote: Counting objects: 60% (869/1447) remote: Counting objects: 61% (883/1447) remote: Counting objects: 62% (898/1447) remote: Counting objects: 63% (912/1447) remote: Counting objects: 64% (927/1447) remote: Counting objects: 65% (941/1447) remote: Counting objects: 66% (956/1447) remote: Counting objects: 67% (970/1447) remote: Counting objects: 68% (984/1447) remote: Counting objects: 69% (999/1447) remote: Counting objects: 70% (1013/1447) remote: Counting objects: 71% (1028/1447) remote: Counting objects: 72% (1042/1447) remote: Counting objects: 73% (1057/1447) remote: Counting objects: 74% (1071/1447) remote: Counting objects: 75% (1086/1447) remote: Counting objects: 76% (1100/1447) remote: Counting objects: 77% (1115/1447) remote: Counting objects: 78% (1129/1447) remote: Counting objects: 79% (1144/1447) remote: Counting objects: 80% (1158/1447) remote: Counting objects: 81% (1173/1447) remote: Counting objects: 82% (1187/1447) remote: Counting objects: 83% (1202/1447) remote: Counting objects: 84% (1216/1447) remote: Counting objects: 85% (1230/1447) remote: Counting objects: 86% (1245/1447) remote: Counting objects: 87% (1259/1447) remote: Counting objects: 88% (1274/1447) remote: Counting objects: 89% (1288/1447) remote: Counting objects: 90% (1303/1447) remote: Counting objects: 91% (1317/1447) remote: Counting objects: 92% (1332/1447) remote: Counting objects: 93% (1346/1447) remote: Counting objects: 94% (1361/1447) remote: Counting objects: 95% (1375/1447) remote: Counting objects: 96% (1390/1447) remote: Counting objects: 97% (1404/1447) remote: Counting objects: 98% (1419/1447) remote: Counting objects: 99% (1433/1447) remote: Counting objects: 100% (1447/1447) remote: Counting objects: 100% (1447/1447), done. remote: Compressing objects: 0% (1/717) remote: Compressing objects: 1% (8/717) remote: Compressing objects: 2% (15/717) remote: Compressing objects: 3% (22/717) remote: Compressing objects: 4% (29/717) remote: Compressing objects: 5% (36/717) remote: Compressing objects: 6% (44/717) remote: Compressing objects: 7% (51/717) remote: Compressing objects: 8% (58/717) remote: Compressing objects: 9% (65/717) remote: Compressing objects: 10% (72/717) remote: Compressing objects: 11% (79/717) remote: Compressing objects: 12% (87/717) remote: Compressing objects: 13% (94/717) remote: Compressing objects: 14% (101/717) remote: Compressing objects: 15% (108/717) remote: Compressing objects: 16% (115/717) remote: Compressing objects: 17% (122/717) remote: Compressing objects: 18% (130/717) remote: Compressing objects: 19% (137/717) remote: Compressing objects: 20% (144/717) remote: Compressing objects: 21% (151/717) remote: Compressing objects: 22% (158/717) remote: Compressing objects: 23% (165/717) remote: Compressing objects: 24% (173/717) remote: Compressing objects: 25% (180/717) remote: Compressing objects: 26% (187/717) remote: Compressing objects: 27% (194/717) remote: Compressing objects: 28% (201/717) remote: Compressing objects: 29% (208/717) remote: Compressing objects: 30% (216/717) remote: Compressing objects: 31% (223/717) remote: Compressing objects: 32% (230/717) remote: Compressing objects: 33% (237/717) remote: Compressing objects: 34% (244/717) remote: Compressing objects: 35% (251/717) remote: Compressing objects: 36% (259/717) remote: Compressing objects: 37% (266/717) remote: Compressing objects: 38% (273/717) remote: Compressing objects: 39% (280/717) remote: Compressing objects: 40% (287/717) remote: Compressing objects: 41% (294/717) remote: Compressing objects: 42% (302/717) remote: Compressing objects: 43% (309/717) remote: Compressing objects: 44% (316/717) remote: Compressing objects: 45% (323/717) remote: Compressing objects: 46% (330/717) remote: Compressing objects: 47% (337/717) remote: Compressing objects: 48% (345/717) remote: Compressing objects: 49% (352/717) remote: Compressing objects: 50% (359/717) remote: Compressing objects: 51% (366/717) remote: Compressing objects: 52% (373/717) remote: Compressing objects: 53% (381/717) remote: Compressing objects: 54% (388/717) remote: Compressing objects: 55% (395/717) remote: Compressing objects: 56% (402/717) remote: Compressing objects: 57% (409/717) remote: Compressing objects: 58% (416/717) remote: Compressing objects: 59% (424/717) remote: Compressing objects: 60% (431/717) remote: Compressing objects: 61% (438/717) remote: Compressing objects: 62% (445/717) remote: Compressing objects: 63% (452/717) remote: Compressing objects: 64% (459/717) remote: Compressing objects: 65% (467/717) remote: Compressing objects: 66% (474/717) remote: Compressing objects: 67% (481/717) remote: Compressing objects: 68% (488/717) remote: Compressing objects: 69% (495/717) remote: Compressing objects: 70% (502/717) remote: Compressing objects: 71% (510/717) remote: Compressing objects: 72% (517/717) remote: Compressing objects: 73% (524/717) remote: Compressing objects: 74% (531/717) remote: Compressing objects: 75% (538/717) remote: Compressing objects: 76% (545/717) remote: Compressing objects: 77% (553/717) remote: Compressing objects: 78% (560/717) remote: Compressing objects: 79% (567/717) remote: Compressing objects: 80% (574/717) remote: Compressing objects: 81% (581/717) remote: Compressing objects: 82% (588/717) remote: Compressing objects: 83% (596/717) remote: Compressing objects: 84% (603/717) remote: Compressing objects: 85% (610/717) remote: Compressing objects: 86% (617/717) remote: Compressing objects: 87% (624/717) remote: Compressing objects: 88% (631/717) remote: Compressing objects: 89% (639/717) remote: Compressing objects: 90% (646/717) remote: Compressing objects: 91% (653/717) remote: Compressing objects: 92% (660/717) remote: Compressing objects: 93% (667/717) remote: Compressing objects: 94% (674/717) remote: Compressing objects: 95% (682/717) remote: Compressing objects: 96% (689/717) remote: Compressing objects: 97% (696/717) remote: Compressing objects: 98% (703/717) remote: Compressing objects: 99% (710/717) remote: Compressing objects: 100% (717/717) remote: Compressing objects: 100% (717/717), done. Receiving objects: 0% (1/187410) Receiving objects: 0% (419/187410), 304.00 KiB | 590.00 KiB/s Receiving objects: 0% (1222/187410), 936.00 KiB | 616.00 KiB/s Receiving objects: 1% (1875/187410), 1.52 MiB | 616.00 KiB/s Receiving objects: 1% (2429/187410), 1.52 MiB | 616.00 KiB/s Receiving objects: 1% (3465/187410), 2.20 MiB | 637.00 KiB/s Receiving objects: 2% (3749/187410), 2.50 MiB | 636.00 KiB/s Receiving objects: 2% (4544/187410), 2.80 MiB | 633.00 KiB/s Receiving objects: 3% (5623/187410), 3.38 MiB | 623.00 KiB/s Receiving objects: 3% (5717/187410), 3.38 MiB | 623.00 KiB/s Receiving objects: 3% (6899/187410), 4.02 MiB | 633.00 KiB/s Receiving objects: 4% (7497/187410), 4.60 MiB | 616.00 KiB/s Receiving objects: 4% (7968/187410), 4.60 MiB | 616.00 KiB/s Receiving objects: 4% (8696/187410), 5.13 MiB | 593.00 KiB/s Receiving objects: 4% (8763/187410), 5.95 MiB | 640.00 KiB/s Receiving objects: 4% (8981/187410), 7.09 MiB | 694.00 KiB/s Receiving objects: 4% (9143/187410), 7.73 MiB | 709.00 KiB/s Receiving objects: 4% (9361/187410), 8.05 MiB | 720.00 KiB/s Receiving objects: 5% (9371/187410), 8.05 MiB | 720.00 KiB/s Receiving objects: 5% (9685/187410), 8.84 MiB | 655.00 KiB/s Receiving objects: 5% (9711/187410), 9.56 MiB | 657.00 KiB/s Receiving objects: 5% (9908/187410), 9.91 MiB | 640.00 KiB/s Receiving objects: 5% (10136/187410), 10.70 MiB | 670.00 KiB/s Receiving objects: 5% (10301/187410), 11.48 MiB | 722.00 KiB/s Receiving objects: 5% (10633/187410), 12.16 MiB | 751.00 KiB/s Receiving objects: 5% (10775/187410), 12.98 MiB | 772.00 KiB/s Receiving objects: 5% (10907/187410), 14.06 MiB | 761.00 KiB/s Receiving objects: 5% (10910/187410), 14.89 MiB | 769.00 KiB/s Receiving objects: 5% (10949/187410), 15.33 MiB | 788.00 KiB/s Receiving objects: 5% (10950/187410), 16.63 MiB | 825.00 KiB/s Receiving objects: 5% (11023/187410), 17.66 MiB | 880.00 KiB/s Receiving objects: 5% (11050/187410), 18.09 MiB | 912.00 KiB/s Receiving objects: 5% (11062/187410), 19.54 MiB | 952.00 KiB/s Receiving objects: 5% (11062/187410), 20.59 MiB | 997.00 KiB/s Receiving objects: 5% (11062/187410), 21.65 MiB | 1.02 MiB/s Receiving objects: 5% (11109/187410), 22.55 MiB | 1012.00 KiB/s Receiving objects: 5% (11132/187410), 23.00 MiB | 1011.00 KiB/s Receiving objects: 5% (11135/187410), 23.81 MiB | 969.00 KiB/s Receiving objects: 5% (11140/187410), 24.67 MiB | 925.00 KiB/s Receiving objects: 5% (11141/187410), 26.07 MiB | 897.00 KiB/s Receiving objects: 5% (11141/187410), 27.09 MiB | 927.00 KiB/s Receiving objects: 5% (11141/187410), 28.10 MiB | 971.00 KiB/s Receiving objects: 5% (11141/187410), 29.26 MiB | 1.01 MiB/s Receiving objects: 5% (11141/187410), 30.32 MiB | 1.05 MiB/s Receiving objects: 5% (11141/187410), 31.32 MiB | 1.05 MiB/s Receiving objects: 5% (11142/187410), 32.29 MiB | 1.04 MiB/s Receiving objects: 5% (11144/187410), 33.23 MiB | 1.02 MiB/s Receiving objects: 5% (11144/187410), 34.18 MiB | 999.00 KiB/s Receiving objects: 5% (11144/187410), 35.17 MiB | 981.00 KiB/s Receiving objects: 5% (11148/187410), 35.65 MiB | 980.00 KiB/s Receiving objects: 5% (11149/187410), 37.14 MiB | 989.00 KiB/s Receiving objects: 5% (11149/187410), 38.39 MiB | 1.04 MiB/s Receiving objects: 5% (11149/187410), 39.45 MiB | 1.05 MiB/s Receiving objects: 5% (11149/187410), 40.50 MiB | 1.07 MiB/s Receiving objects: 5% (11149/187410), 41.54 MiB | 1.09 MiB/s Receiving objects: 5% (11150/187410), 42.04 MiB | 1.08 MiB/s Receiving objects: 5% (11151/187410), 43.51 MiB | 1.01 MiB/s Receiving objects: 5% (11198/187410), 43.97 MiB | 1024.00 KiB/s Receiving objects: 5% (11204/187410), 45.43 MiB | 998.00 KiB/s Receiving objects: 5% (11210/187410), 45.84 MiB | 976.00 KiB/s Receiving objects: 5% (11214/187410), 46.57 MiB | 919.00 KiB/s Receiving objects: 5% (11223/187410), 47.51 MiB | 907.00 KiB/s Receiving objects: 5% (11236/187410), 48.94 MiB | 902.00 KiB/s Receiving objects: 5% (11240/187410), 49.40 MiB | 900.00 KiB/s Receiving objects: 5% (11243/187410), 50.34 MiB | 941.00 KiB/s Receiving objects: 6% (11245/187410), 50.34 MiB | 941.00 KiB/s Receiving objects: 6% (11323/187410), 51.16 MiB | 930.00 KiB/s Receiving objects: 6% (11386/187410), 52.52 MiB | 918.00 KiB/s Receiving objects: 6% (11398/187410), 52.98 MiB | 915.00 KiB/s Receiving objects: 6% (11401/187410), 54.00 MiB | 936.00 KiB/s Receiving objects: 6% (11403/187410), 54.87 MiB | 930.00 KiB/s Receiving objects: 6% (11406/187410), 55.77 MiB | 951.00 KiB/s Receiving objects: 6% (11421/187410), 57.05 MiB | 923.00 KiB/s Receiving objects: 6% (11433/187410), 57.48 MiB | 902.00 KiB/s Receiving objects: 6% (11443/187410), 58.36 MiB | 877.00 KiB/s Receiving objects: 6% (11450/187410), 59.21 MiB | 886.00 KiB/s Receiving objects: 6% (11459/187410), 60.55 MiB | 891.00 KiB/s Receiving objects: 6% (11468/187410), 61.02 MiB | 897.00 KiB/s Receiving objects: 6% (11469/187410), 62.50 MiB | 940.00 KiB/s Receiving objects: 6% (11470/187410), 63.58 MiB | 991.00 KiB/s Receiving objects: 6% (11471/187410), 64.57 MiB | 1022.00 KiB/s Receiving objects: 6% (11473/187410), 65.02 MiB | 1015.00 KiB/s Receiving objects: 6% (11477/187410), 66.35 MiB | 985.00 KiB/s Receiving objects: 6% (11516/187410), 66.80 MiB | 975.00 KiB/s Receiving objects: 6% (11577/187410), 67.63 MiB | 917.00 KiB/s Receiving objects: 6% (12073/187410), 68.43 MiB | 875.00 KiB/s Receiving objects: 6% (12308/187410), 69.12 MiB | 830.00 KiB/s Receiving objects: 6% (12670/187410), 69.78 MiB | 776.00 KiB/s Receiving objects: 6% (13057/187410), 70.54 MiB | 760.00 KiB/s Receiving objects: 7% (13119/187410), 70.54 MiB | 760.00 KiB/s Receiving objects: 7% (13446/187410), 71.30 MiB | 757.00 KiB/s Receiving objects: 7% (13466/187410), 72.16 MiB | 766.00 KiB/s Receiving objects: 7% (13483/187410), 73.08 MiB | 806.00 KiB/s Receiving objects: 7% (13496/187410), 73.99 MiB | 865.00 KiB/s Receiving objects: 7% (13856/187410), 74.80 MiB | 882.00 KiB/s Receiving objects: 7% (13895/187410), 75.44 MiB | 838.00 KiB/s Receiving objects: 7% (14255/187410), 76.23 MiB | 808.00 KiB/s Receiving objects: 7% (14456/187410), 77.51 MiB | 796.00 KiB/s Receiving objects: 7% (14695/187410), 77.91 MiB | 783.00 KiB/s Receiving objects: 7% (14943/187410), 78.80 MiB | 855.00 KiB/s Receiving objects: 8% (14993/187410), 78.80 MiB | 855.00 KiB/s Receiving objects: 8% (15051/187410), 79.66 MiB | 867.00 KiB/s Receiving objects: 8% (15589/187410), 80.04 MiB | 864.00 KiB/s Receiving objects: 8% (15894/187410), 80.94 MiB | 873.00 KiB/s Receiving objects: 8% (15954/187410), 82.34 MiB | 901.00 KiB/s Receiving objects: 8% (15957/187410), 83.29 MiB | 915.00 KiB/s Receiving objects: 8% (15960/187410), 84.23 MiB | 949.00 KiB/s Receiving objects: 8% (15962/187410), 85.22 MiB | 971.00 KiB/s Receiving objects: 8% (15965/187410), 86.20 MiB | 994.00 KiB/s Receiving objects: 8% (16091/187410), 86.60 MiB | 968.00 KiB/s Receiving objects: 8% (16153/187410), 87.47 MiB | 949.00 KiB/s Receiving objects: 8% (16233/187410), 88.30 MiB | 923.00 KiB/s Receiving objects: 8% (16308/187410), 89.15 MiB | 891.00 KiB/s Receiving objects: 8% (16322/187410), 90.49 MiB | 881.00 KiB/s Receiving objects: 8% (16450/187410), 90.91 MiB | 872.00 KiB/s Receiving objects: 8% (16792/187410), 91.70 MiB | 862.00 KiB/s Receiving objects: 9% (16867/187410), 92.09 MiB | 858.00 KiB/s Receiving objects: 9% (17042/187410), 92.54 MiB | 865.00 KiB/s Receiving objects: 9% (17283/187410), 93.88 MiB | 874.00 KiB/s Receiving objects: 9% (17510/187410), 94.37 MiB | 878.00 KiB/s Receiving objects: 9% (17837/187410), 95.24 MiB | 883.00 KiB/s Receiving objects: 9% (18447/187410), 96.11 MiB | 909.00 KiB/s Receiving objects: 10% (18741/187410), 96.48 MiB | 892.00 KiB/s Receiving objects: 10% (18950/187410), 97.36 MiB | 893.00 KiB/s Receiving objects: 10% (18951/187410), 97.81 MiB | 889.00 KiB/s Receiving objects: 10% (18952/187410), 99.16 MiB | 888.00 KiB/s Receiving objects: 10% (18952/187410), 100.16 MiB | 918.00 KiB/s Receiving objects: 10% (18952/187410), 101.05 MiB | 941.00 KiB/s Receiving objects: 10% (18952/187410), 101.95 MiB | 937.00 KiB/s Receiving objects: 10% (18952/187410), 102.83 MiB | 934.00 KiB/s Receiving objects: 10% (19017/187410), 103.27 MiB | 930.00 KiB/s Receiving objects: 10% (19093/187410), 103.96 MiB | 860.00 KiB/s Receiving objects: 10% (19615/187410), 104.81 MiB | 849.00 KiB/s Receiving objects: 10% (19923/187410), 106.13 MiB | 848.00 KiB/s Receiving objects: 10% (19923/187410), 107.20 MiB | 892.00 KiB/s Receiving objects: 10% (19923/187410), 108.16 MiB | 952.00 KiB/s Receiving objects: 10% (19923/187410), 109.09 MiB | 971.00 KiB/s Receiving objects: 10% (19924/187410), 110.13 MiB | 1011.00 KiB/s Receiving objects: 10% (19924/187410), 111.02 MiB | 986.00 KiB/s Receiving objects: 10% (19924/187410), 111.88 MiB | 936.00 KiB/s Receiving objects: 10% (19925/187410), 112.73 MiB | 915.00 KiB/s Receiving objects: 10% (19925/187410), 113.63 MiB | 918.00 KiB/s Receiving objects: 10% (19925/187410), 114.55 MiB | 878.00 KiB/s Receiving objects: 10% (19925/187410), 115.46 MiB | 913.00 KiB/s Receiving objects: 10% (19926/187410), 116.32 MiB | 909.00 KiB/s Receiving objects: 10% (19926/187410), 117.22 MiB | 920.00 KiB/s Receiving objects: 10% (19926/187410), 118.09 MiB | 905.00 KiB/s Receiving objects: 10% (19927/187410), 118.96 MiB | 897.00 KiB/s Receiving objects: 10% (19927/187410), 119.88 MiB | 905.00 KiB/s Receiving objects: 10% (19927/187410), 120.76 MiB | 899.00 KiB/s Receiving objects: 10% (19940/187410), 121.62 MiB | 893.00 KiB/s Receiving objects: 10% (19942/187410), 122.07 MiB | 900.00 KiB/s Receiving objects: 10% (19949/187410), 122.98 MiB | 909.00 KiB/s Receiving objects: 10% (19962/187410), 124.34 MiB | 913.00 KiB/s Receiving objects: 10% (19968/187410), 124.79 MiB | 914.00 KiB/s Receiving objects: 10% (19981/187410), 125.65 MiB | 914.00 KiB/s Receiving objects: 10% (19985/187410), 126.55 MiB | 910.00 KiB/s Receiving objects: 10% (19991/187410), 127.44 MiB | 908.00 KiB/s Receiving objects: 10% (19997/187410), 128.80 MiB | 907.00 KiB/s Receiving objects: 10% (19998/187410), 129.26 MiB | 916.00 KiB/s Receiving objects: 10% (20005/187410), 130.18 MiB | 929.00 KiB/s Receiving objects: 10% (20008/187410), 131.68 MiB | 962.00 KiB/s Receiving objects: 10% (20008/187410), 132.59 MiB | 965.00 KiB/s Receiving objects: 10% (20008/187410), 133.30 MiB | 916.00 KiB/s Receiving objects: 10% (20008/187410), 134.25 MiB | 921.00 KiB/s Receiving objects: 10% (20008/187410), 135.26 MiB | 909.00 KiB/s Receiving objects: 10% (20008/187410), 136.23 MiB | 928.00 KiB/s Receiving objects: 10% (20008/187410), 137.16 MiB | 960.00 KiB/s Receiving objects: 10% (20008/187410), 138.09 MiB | 975.00 KiB/s Receiving objects: 10% (20009/187410), 138.96 MiB | 958.00 KiB/s Receiving objects: 10% (20009/187410), 139.79 MiB | 914.00 KiB/s Receiving objects: 10% (20009/187410), 140.72 MiB | 909.00 KiB/s Receiving objects: 10% (20009/187410), 141.67 MiB | 914.00 KiB/s Receiving objects: 10% (20009/187410), 142.60 MiB | 912.00 KiB/s Receiving objects: 10% (20009/187410), 143.68 MiB | 979.00 KiB/s Receiving objects: 10% (20009/187410), 144.59 MiB | 984.00 KiB/s Receiving objects: 10% (20009/187410), 145.51 MiB | 976.00 KiB/s Receiving objects: 10% (20010/187410), 146.42 MiB | 969.00 KiB/s Receiving objects: 10% (20010/187410), 147.39 MiB | 970.00 KiB/s Receiving objects: 10% (20010/187410), 148.43 MiB | 970.00 KiB/s Receiving objects: 10% (20010/187410), 148.94 MiB | 881.00 KiB/s Receiving objects: 10% (20010/187410), 149.50 MiB | 806.00 KiB/s Receiving objects: 10% (20010/187410), 150.45 MiB | 804.00 KiB/s Receiving objects: 10% (20010/187410), 150.95 MiB | 807.00 KiB/s Receiving objects: 10% (20010/187410), 151.84 MiB | 772.00 KiB/s Receiving objects: 10% (20011/187410), 152.27 MiB | 810.00 KiB/s Receiving objects: 10% (20011/187410), 153.78 MiB | 969.00 KiB/s Receiving objects: 10% (20011/187410), 154.77 MiB | 980.00 KiB/s Receiving objects: 10% (20011/187410), 155.71 MiB | 980.00 KiB/s Receiving objects: 10% (20011/187410), 156.65 MiB | 994.00 KiB/s Receiving objects: 10% (20011/187410), 157.69 MiB | 1.01 MiB/s Receiving objects: 10% (20011/187410), 158.63 MiB | 984.00 KiB/s Receiving objects: 10% (20011/187410), 159.54 MiB | 978.00 KiB/s Receiving objects: 10% (20016/187410), 160.55 MiB | 991.00 KiB/s Receiving objects: 10% (20016/187410), 161.43 MiB | 978.00 KiB/s Receiving objects: 10% (20017/187410), 162.29 MiB | 938.00 KiB/s Receiving objects: 10% (20017/187410), 163.03 MiB | 895.00 KiB/s Receiving objects: 10% (20488/187410), 163.37 MiB | 867.00 KiB/s Receiving objects: 10% (20530/187410), 164.91 MiB | 887.00 KiB/s Receiving objects: 11% (20616/187410), 165.34 MiB | 885.00 KiB/s Receiving objects: 11% (20623/187410), 165.34 MiB | 885.00 KiB/s Receiving objects: 11% (20670/187410), 166.18 MiB | 883.00 KiB/s Receiving objects: 11% (20696/187410), 167.02 MiB | 818.00 KiB/s Receiving objects: 11% (20704/187410), 167.83 MiB | 795.00 KiB/s Receiving objects: 11% (20709/187410), 168.67 MiB | 771.00 KiB/s Receiving objects: 11% (20715/187410), 169.52 MiB | 770.00 KiB/s Receiving objects: 11% (20722/187410), 170.55 MiB | 793.00 KiB/s Receiving objects: 11% (21115/187410), 170.99 MiB | 900.00 KiB/s Receiving objects: 11% (21888/187410), 171.79 MiB | 898.00 KiB/s Receiving objects: 11% (22033/187410), 172.57 MiB | 886.00 KiB/s Receiving objects: 11% (22062/187410), 173.39 MiB | 878.00 KiB/s Receiving objects: 11% (22090/187410), 174.34 MiB | 859.00 KiB/s Receiving objects: 12% (22490/187410), 175.21 MiB | 868.00 KiB/s Receiving objects: 12% (22555/187410), 175.21 MiB | 868.00 KiB/s Receiving objects: 12% (22911/187410), 176.02 MiB | 872.00 KiB/s Receiving objects: 12% (23564/187410), 177.04 MiB | 921.00 KiB/s Receiving objects: 13% (24364/187410), 177.48 MiB | 928.00 KiB/s Receiving objects: 13% (25457/187410), 177.88 MiB | 890.00 KiB/s Receiving objects: 14% (26238/187410), 178.24 MiB | 883.00 KiB/s Receiving objects: 14% (27022/187410), 178.63 MiB | 874.00 KiB/s Receiving objects: 14% (27402/187410), 179.86 MiB | 872.00 KiB/s Receiving objects: 14% (27807/187410), 180.21 MiB | 819.00 KiB/s Receiving objects: 15% (28112/187410), 180.63 MiB | 813.00 KiB/s Receiving objects: 15% (28728/187410), 181.04 MiB | 806.00 KiB/s Receiving objects: 15% (29486/187410), 181.84 MiB | 814.00 KiB/s Receiving objects: 15% (29621/187410), 183.18 MiB | 771.00 KiB/s Receiving objects: 15% (29633/187410), 184.12 MiB | 823.00 KiB/s Receiving objects: 15% (29778/187410), 184.57 MiB | 831.00 KiB/s Receiving objects: 16% (29986/187410), 184.57 MiB | 831.00 KiB/s Receiving objects: 16% (31197/187410), 185.38 MiB | 827.00 KiB/s Receiving objects: 16% (31745/187410), 186.26 MiB | 825.00 KiB/s Receiving objects: 17% (31860/187410), 186.26 MiB | 825.00 KiB/s Receiving objects: 17% (32317/187410), 186.98 MiB | 862.00 KiB/s Receiving objects: 17% (33704/187410), 187.40 MiB | 854.00 KiB/s Receiving objects: 18% (33734/187410), 187.94 MiB | 865.00 KiB/s Receiving objects: 18% (34169/187410), 188.83 MiB | 883.00 KiB/s Receiving objects: 18% (34206/187410), 189.73 MiB | 887.00 KiB/s Receiving objects: 18% (34236/187410), 190.07 MiB | 861.00 KiB/s Receiving objects: 18% (34267/187410), 191.05 MiB | 919.00 KiB/s Receiving objects: 18% (34280/187410), 192.42 MiB | 917.00 KiB/s Receiving objects: 18% (34309/187410), 193.36 MiB | 925.00 KiB/s Receiving objects: 18% (34312/187410), 193.70 MiB | 900.00 KiB/s Receiving objects: 18% (35359/187410), 194.57 MiB | 903.00 KiB/s Receiving objects: 19% (35608/187410), 195.38 MiB | 875.00 KiB/s Receiving objects: 19% (35621/187410), 195.38 MiB | 875.00 KiB/s Receiving objects: 19% (36026/187410), 196.85 MiB | 890.00 KiB/s Receiving objects: 19% (36026/187410), 197.77 MiB | 922.00 KiB/s Receiving objects: 19% (36026/187410), 198.76 MiB | 950.00 KiB/s Receiving objects: 19% (36026/187410), 199.79 MiB | 999.00 KiB/s Receiving objects: 19% (36026/187410), 200.71 MiB | 1017.00 KiB/s Receiving objects: 19% (36026/187410), 201.75 MiB | 996.00 KiB/s Receiving objects: 19% (36026/187410), 202.79 MiB | 1.00 MiB/s Receiving objects: 19% (36026/187410), 203.89 MiB | 1.02 MiB/s Receiving objects: 19% (36026/187410), 204.93 MiB | 1.04 MiB/s Receiving objects: 19% (36026/187410), 205.98 MiB | 1.05 MiB/s Receiving objects: 19% (36026/187410), 207.03 MiB | 1.06 MiB/s Receiving objects: 19% (36026/187410), 208.26 MiB | 1.10 MiB/s Receiving objects: 19% (36026/187410), 209.32 MiB | 1.09 MiB/s Receiving objects: 19% (36026/187410), 210.34 MiB | 1.08 MiB/s Receiving objects: 19% (36026/187410), 211.59 MiB | 1.13 MiB/s Receiving objects: 19% (36026/187410), 212.61 MiB | 1.12 MiB/s Receiving objects: 19% (36026/187410), 213.61 MiB | 1.07 MiB/s Receiving objects: 19% (36026/187410), 214.78 MiB | 1.10 MiB/s Receiving objects: 19% (36027/187410), 215.80 MiB | 1.09 MiB/s Receiving objects: 19% (36027/187410), 216.76 MiB | 1.03 MiB/s Receiving objects: 19% (36027/187410), 217.77 MiB | 1.03 MiB/s Receiving objects: 19% (36027/187410), 218.96 MiB | 1.08 MiB/s Receiving objects: 19% (36027/187410), 219.97 MiB | 1.04 MiB/s Receiving objects: 19% (36027/187410), 220.98 MiB | 1.04 MiB/s Receiving objects: 19% (36027/187410), 222.18 MiB | 1.09 MiB/s Receiving objects: 19% (36027/187410), 223.06 MiB | 1.06 MiB/s Receiving objects: 19% (36027/187410), 224.04 MiB | 1.01 MiB/s Receiving objects: 19% (36027/187410), 225.09 MiB | 1.02 MiB/s Receiving objects: 19% (36027/187410), 225.99 MiB | 1017.00 KiB/s Receiving objects: 19% (36027/187410), 226.98 MiB | 970.00 KiB/s Receiving objects: 19% (36027/187410), 228.03 MiB | 1.00 MiB/s Receiving objects: 19% (36027/187410), 229.03 MiB | 1015.00 KiB/s Receiving objects: 19% (36028/187410), 230.02 MiB | 1.00 MiB/s Receiving objects: 19% (36028/187410), 230.98 MiB | 1021.00 KiB/s Receiving objects: 19% (36028/187410), 232.14 MiB | 1.03 MiB/s Receiving objects: 19% (36028/187410), 233.14 MiB | 1.02 MiB/s Receiving objects: 19% (36028/187410), 234.14 MiB | 1.02 MiB/s Receiving objects: 19% (36028/187410), 235.36 MiB | 1.08 MiB/s Receiving objects: 19% (36028/187410), 236.39 MiB | 1.08 MiB/s Receiving objects: 19% (36028/187410), 237.42 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 238.43 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 239.43 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 240.57 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 241.59 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 242.61 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 243.61 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 244.72 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 245.74 MiB | 1.03 MiB/s Receiving objects: 19% (36028/187410), 246.77 MiB | 1.03 MiB/s Receiving objects: 19% (36028/187410), 247.79 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 248.81 MiB | 1.04 MiB/s Receiving objects: 19% (36028/187410), 250.02 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 251.03 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 252.06 MiB | 1.06 MiB/s Receiving objects: 19% (36028/187410), 253.31 MiB | 1.11 MiB/s Receiving objects: 19% (36028/187410), 254.34 MiB | 1.11 MiB/s Receiving objects: 19% (36028/187410), 255.34 MiB | 1.07 MiB/s Receiving objects: 19% (36029/187410), 256.46 MiB | 1.09 MiB/s Receiving objects: 19% (36029/187410), 257.25 MiB | 1.04 MiB/s Receiving objects: 19% (36029/187410), 258.14 MiB | 980.00 KiB/s Receiving objects: 19% (36029/187410), 259.10 MiB | 966.00 KiB/s Receiving objects: 19% (36029/187410), 260.13 MiB | 973.00 KiB/s Receiving objects: 19% (36177/187410), 260.59 MiB | 936.00 KiB/s Receiving objects: 19% (37220/187410), 261.44 MiB | 949.00 KiB/s Receiving objects: 20% (37482/187410), 261.44 MiB | 949.00 KiB/s Receiving objects: 20% (38761/187410), 262.40 MiB | 966.00 KiB/s Receiving objects: 21% (39357/187410), 262.79 MiB | 949.00 KiB/s Receiving objects: 21% (39528/187410), 263.23 MiB | 934.00 KiB/s Receiving objects: 21% (40868/187410), 264.10 MiB | 899.00 KiB/s Receiving objects: 22% (41231/187410), 264.10 MiB | 899.00 KiB/s Receiving objects: 22% (41317/187410), 265.01 MiB | 909.00 KiB/s Receiving objects: 22% (41800/187410), 265.95 MiB | 900.00 KiB/s Receiving objects: 22% (42989/187410), 266.82 MiB | 916.00 KiB/s Receiving objects: 23% (43105/187410), 266.82 MiB | 916.00 KiB/s Receiving objects: 23% (43632/187410), 267.70 MiB | 909.00 KiB/s Receiving objects: 24% (44979/187410), 268.46 MiB | 895.00 KiB/s Receiving objects: 24% (45008/187410), 268.46 MiB | 895.00 KiB/s Receiving objects: 24% (45845/187410), 269.75 MiB | 860.00 KiB/s Receiving objects: 24% (46678/187410), 270.18 MiB | 863.00 KiB/s Receiving objects: 25% (46853/187410), 270.74 MiB | 887.00 KiB/s Receiving objects: 25% (46889/187410), 271.18 MiB | 892.00 KiB/s Receiving objects: 25% (47000/187410), 272.51 MiB | 919.00 KiB/s Receiving objects: 25% (47053/187410), 273.09 MiB | 960.00 KiB/s Receiving objects: 25% (48619/187410), 274.12 MiB | 992.00 KiB/s Receiving objects: 26% (48727/187410), 274.12 MiB | 992.00 KiB/s Receiving objects: 26% (50441/187410), 275.01 MiB | 969.00 KiB/s Receiving objects: 27% (50601/187410), 275.01 MiB | 969.00 KiB/s Receiving objects: 28% (52475/187410), 275.46 MiB | 972.00 KiB/s Receiving objects: 28% (52590/187410), 276.49 MiB | 1005.00 KiB/s Receiving objects: 29% (54349/187410), 276.97 MiB | 1010.00 KiB/s Receiving objects: 29% (54644/187410), 277.47 MiB | 994.00 KiB/s Receiving objects: 29% (54644/187410), 278.54 MiB | 1001.00 KiB/s Receiving objects: 29% (54644/187410), 279.71 MiB | 1.04 MiB/s Receiving objects: 29% (54644/187410), 280.76 MiB | 1.06 MiB/s Receiving objects: 29% (54644/187410), 281.81 MiB | 1.07 MiB/s Receiving objects: 29% (54644/187410), 282.87 MiB | 1.08 MiB/s Receiving objects: 29% (54644/187410), 283.94 MiB | 1.08 MiB/s Receiving objects: 29% (54644/187410), 284.99 MiB | 1.05 MiB/s Receiving objects: 29% (54644/187410), 286.04 MiB | 1.05 MiB/s Receiving objects: 29% (54644/187410), 287.10 MiB | 1.05 MiB/s Receiving objects: 29% (54644/187410), 288.05 MiB | 1.03 MiB/s Receiving objects: 29% (54644/187410), 288.97 MiB | 1016.00 KiB/s Receiving objects: 29% (54644/187410), 290.02 MiB | 1018.00 KiB/s Receiving objects: 29% (54645/187410), 290.55 MiB | 1019.00 KiB/s Receiving objects: 30% (56223/187410), 290.55 MiB | 1019.00 KiB/s Receiving objects: 30% (56988/187410), 291.52 MiB | 999.00 KiB/s Receiving objects: 30% (57551/187410), 292.42 MiB | 988.00 KiB/s Receiving objects: 30% (57720/187410), 293.28 MiB | 978.00 KiB/s Receiving objects: 31% (58098/187410), 293.28 MiB | 978.00 KiB/s Receiving objects: 31% (59407/187410), 294.07 MiB | 919.00 KiB/s Receiving objects: 32% (59972/187410), 294.07 MiB | 919.00 KiB/s Receiving objects: 32% (59973/187410), 295.49 MiB | 903.00 KiB/s Receiving objects: 32% (59973/187410), 296.47 MiB | 920.00 KiB/s Receiving objects: 32% (59974/187410), 297.42 MiB | 940.00 KiB/s Receiving objects: 32% (59974/187410), 297.91 MiB | 960.00 KiB/s Receiving objects: 32% (59975/187410), 298.85 MiB | 994.00 KiB/s Receiving objects: 32% (59975/187410), 299.81 MiB | 980.00 KiB/s Receiving objects: 32% (59976/187410), 300.77 MiB | 973.00 KiB/s Receiving objects: 32% (59977/187410), 301.70 MiB | 970.00 KiB/s Receiving objects: 32% (59977/187410), 302.65 MiB | 969.00 KiB/s Receiving objects: 32% (59983/187410), 303.60 MiB | 967.00 KiB/s Receiving objects: 32% (59991/187410), 304.55 MiB | 967.00 KiB/s Receiving objects: 32% (59997/187410), 305.50 MiB | 967.00 KiB/s Receiving objects: 32% (60004/187410), 306.71 MiB | 1.00 MiB/s Receiving objects: 32% (60008/187410), 307.66 MiB | 1.01 MiB/s Receiving objects: 32% (60013/187410), 308.63 MiB | 1.01 MiB/s Receiving objects: 32% (60013/187410), 309.60 MiB | 1.01 MiB/s Receiving objects: 32% (60013/187410), 310.55 MiB | 1.01 MiB/s Receiving objects: 32% (60013/187410), 311.54 MiB | 988.00 KiB/s Receiving objects: 32% (60013/187410), 312.48 MiB | 985.00 KiB/s Receiving objects: 32% (60014/187410), 313.45 MiB | 984.00 KiB/s Receiving objects: 32% (60014/187410), 314.42 MiB | 984.00 KiB/s Receiving objects: 32% (60014/187410), 315.38 MiB | 986.00 KiB/s Receiving objects: 32% (60014/187410), 316.33 MiB | 979.00 KiB/s Receiving objects: 32% (60015/187410), 317.25 MiB | 975.00 KiB/s Receiving objects: 32% (60015/187410), 318.13 MiB | 951.00 KiB/s Receiving objects: 32% (60015/187410), 319.05 MiB | 944.00 KiB/s Receiving objects: 32% (60015/187410), 319.82 MiB | 895.00 KiB/s Receiving objects: 32% (60015/187410), 320.67 MiB | 876.00 KiB/s Receiving objects: 32% (60016/187410), 321.61 MiB | 890.00 KiB/s Receiving objects: 32% (60016/187410), 322.55 MiB | 902.00 KiB/s Receiving objects: 32% (60016/187410), 323.49 MiB | 899.00 KiB/s Receiving objects: 32% (60016/187410), 324.59 MiB | 994.00 KiB/s Receiving objects: 32% (60345/187410), 325.07 MiB | 998.00 KiB/s Receiving objects: 32% (61500/187410), 325.97 MiB | 989.00 KiB/s Receiving objects: 33% (61846/187410), 326.40 MiB | 979.00 KiB/s Receiving objects: 34% (63720/187410), 326.82 MiB | 966.00 KiB/s Receiving objects: 34% (63786/187410), 326.82 MiB | 966.00 KiB/s Receiving objects: 34% (63851/187410), 328.10 MiB | 935.00 KiB/s Receiving objects: 34% (63851/187410), 329.11 MiB | 915.00 KiB/s Receiving objects: 34% (63851/187410), 329.87 MiB | 885.00 KiB/s Receiving objects: 34% (63851/187410), 330.67 MiB | 873.00 KiB/s Receiving objects: 34% (63851/187410), 331.75 MiB | 923.00 KiB/s Receiving objects: 34% (63851/187410), 332.75 MiB | 954.00 KiB/s Receiving objects: 34% (63851/187410), 333.77 MiB | 962.00 KiB/s Receiving objects: 34% (63851/187410), 334.78 MiB | 1.01 MiB/s Receiving objects: 34% (63851/187410), 336.02 MiB | 1.07 MiB/s Receiving objects: 34% (63851/187410), 336.92 MiB | 1.03 MiB/s Receiving objects: 34% (63851/187410), 337.82 MiB | 1.01 MiB/s Receiving objects: 34% (63851/187410), 338.80 MiB | 1.00 MiB/s Receiving objects: 34% (63851/187410), 339.84 MiB | 1.00 MiB/s Receiving objects: 34% (63851/187410), 340.94 MiB | 1013.00 KiB/s Receiving objects: 34% (63851/187410), 342.01 MiB | 1.03 MiB/s Receiving objects: 34% (63851/187410), 343.09 MiB | 1.06 MiB/s Receiving objects: 34% (63851/187410), 344.14 MiB | 1.07 MiB/s Receiving objects: 34% (63851/187410), 345.19 MiB | 1.08 MiB/s Receiving objects: 34% (63851/187410), 346.21 MiB | 1.05 MiB/s Receiving objects: 34% (63851/187410), 347.24 MiB | 1.04 MiB/s Receiving objects: 34% (63851/187410), 348.18 MiB | 1.01 MiB/s Receiving objects: 34% (63851/187410), 349.26 MiB | 1.02 MiB/s Receiving objects: 34% (63851/187410), 350.36 MiB | 1.03 MiB/s Receiving objects: 34% (63851/187410), 351.66 MiB | 1.09 MiB/s Receiving objects: 34% (63851/187410), 352.63 MiB | 1.09 MiB/s Receiving objects: 34% (63851/187410), 353.39 MiB | 1.04 MiB/s Receiving objects: 34% (63851/187410), 354.43 MiB | 1.02 MiB/s Receiving objects: 34% (63851/187410), 355.55 MiB | 1.03 MiB/s Receiving objects: 34% (63851/187410), 356.66 MiB | 1006.00 KiB/s Receiving objects: 34% (63851/187410), 357.76 MiB | 1.05 MiB/s Receiving objects: 34% (63851/187410), 359.06 MiB | 1.14 MiB/s Receiving objects: 34% (63851/187410), 360.15 MiB | 1.14 MiB/s Receiving objects: 34% (63851/187410), 361.24 MiB | 1.14 MiB/s Receiving objects: 34% (63851/187410), 362.55 MiB | 1.19 MiB/s Receiving objects: 34% (63851/187410), 363.62 MiB | 1.17 MiB/s Receiving objects: 34% (63851/187410), 364.65 MiB | 1.12 MiB/s Receiving objects: 34% (63851/187410), 365.70 MiB | 1.11 MiB/s Receiving objects: 34% (63851/187410), 366.76 MiB | 1.09 MiB/s Receiving objects: 34% (63851/187410), 367.81 MiB | 1.04 MiB/s Receiving objects: 34% (63851/187410), 368.87 MiB | 1.05 MiB/s Receiving objects: 34% (63851/187410), 370.14 MiB | 1.10 MiB/s Receiving objects: 34% (63851/187410), 371.17 MiB | 1.09 MiB/s Receiving objects: 34% (63851/187410), 372.23 MiB | 1.09 MiB/s Receiving objects: 34% (63851/187410), 373.56 MiB | 1.15 MiB/s Receiving objects: 34% (63851/187410), 374.63 MiB | 1.15 MiB/s Receiving objects: 34% (63851/187410), 375.66 MiB | 1.11 MiB/s Receiving objects: 34% (63851/187410), 376.80 MiB | 1.13 MiB/s Receiving objects: 34% (63851/187410), 377.87 MiB | 1.10 MiB/s Receiving objects: 34% (63851/187410), 378.92 MiB | 1.07 MiB/s Receiving objects: 34% (63851/187410), 379.93 MiB | 1.06 MiB/s Receiving objects: 34% (63851/187410), 380.87 MiB | 1.04 MiB/s Receiving objects: 34% (63851/187410), 381.73 MiB | 995.00 KiB/s Receiving objects: 34% (63851/187410), 382.71 MiB | 977.00 KiB/s Receiving objects: 34% (63851/187410), 383.73 MiB | 973.00 KiB/s Receiving objects: 34% (63852/187410), 384.23 MiB | 973.00 KiB/s Receiving objects: 34% (63852/187410), 385.16 MiB | 956.00 KiB/s Receiving objects: 34% (63852/187410), 386.27 MiB | 1013.00 KiB/s Receiving objects: 34% (63852/187410), 387.27 MiB | 1018.00 KiB/s Receiving objects: 34% (63852/187410), 388.26 MiB | 1008.00 KiB/s Receiving objects: 34% (63852/187410), 388.96 MiB | 970.00 KiB/s Receiving objects: 34% (63852/187410), 390.03 MiB | 1008.00 KiB/s Receiving objects: 34% (63852/187410), 391.01 MiB | 960.00 KiB/s Receiving objects: 34% (63852/187410), 392.05 MiB | 962.00 KiB/s Receiving objects: 34% (63852/187410), 393.03 MiB | 995.00 KiB/s Receiving objects: 34% (63852/187410), 394.05 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 395.14 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 396.22 MiB | 1.04 MiB/s Receiving objects: 34% (63852/187410), 397.18 MiB | 1.03 MiB/s Receiving objects: 34% (63852/187410), 398.17 MiB | 1.03 MiB/s Receiving objects: 34% (63852/187410), 399.20 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 400.23 MiB | 1.03 MiB/s Receiving objects: 34% (63852/187410), 401.24 MiB | 1.01 MiB/s Receiving objects: 34% (63852/187410), 402.28 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 403.29 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 404.34 MiB | 1.02 MiB/s Receiving objects: 34% (63852/187410), 405.39 MiB | 1.03 MiB/s Receiving objects: 34% (63852/187410), 406.59 MiB | 1.07 MiB/s Receiving objects: 34% (63852/187410), 407.63 MiB | 1.08 MiB/s Receiving objects: 34% (63852/187410), 408.61 MiB | 1.06 MiB/s Receiving objects: 34% (63852/187410), 409.58 MiB | 1.04 MiB/s Receiving objects: 34% (63852/187410), 410.67 MiB | 1.05 MiB/s Receiving objects: 34% (63852/187410), 411.66 MiB | 1.01 MiB/s Receiving objects: 34% (63852/187410), 412.66 MiB | 1.00 MiB/s Receiving objects: 34% (63852/187410), 413.83 MiB | 1.05 MiB/s Receiving objects: 34% (63852/187410), 414.76 MiB | 1.03 MiB/s Receiving objects: 34% (63852/187410), 415.62 MiB | 1008.00 KiB/s Receiving objects: 34% (63852/187410), 416.70 MiB | 1.00 MiB/s Receiving objects: 34% (63852/187410), 417.66 MiB | 1018.00 KiB/s Receiving objects: 34% (63852/187410), 418.59 MiB | 973.00 KiB/s Receiving objects: 34% (63853/187410), 419.43 MiB | 971.00 KiB/s Receiving objects: 34% (63853/187410), 420.38 MiB | 968.00 KiB/s Receiving objects: 34% (63853/187410), 421.30 MiB | 936.00 KiB/s Receiving objects: 34% (63853/187410), 422.15 MiB | 917.00 KiB/s Receiving objects: 34% (63853/187410), 423.18 MiB | 950.00 KiB/s Receiving objects: 34% (63853/187410), 424.11 MiB | 968.00 KiB/s Receiving objects: 34% (63853/187410), 425.09 MiB | 955.00 KiB/s Receiving objects: 34% (63853/187410), 426.04 MiB | 995.00 KiB/s Receiving objects: 34% (63853/187410), 427.05 MiB | 998.00 KiB/s Receiving objects: 34% (63853/187410), 428.25 MiB | 1.01 MiB/s Receiving objects: 34% (63853/187410), 429.27 MiB | 1.03 MiB/s Receiving objects: 34% (63853/187410), 430.23 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 431.35 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 432.31 MiB | 1.05 MiB/s Receiving objects: 34% (63853/187410), 433.29 MiB | 1.00 MiB/s Receiving objects: 34% (63853/187410), 434.49 MiB | 1.05 MiB/s Receiving objects: 34% (63853/187410), 435.51 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 436.53 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 437.51 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 438.50 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 439.49 MiB | 1018.00 KiB/s Receiving objects: 34% (63853/187410), 440.47 MiB | 1010.00 KiB/s Receiving objects: 34% (63853/187410), 441.47 MiB | 1009.00 KiB/s Receiving objects: 34% (63853/187410), 442.47 MiB | 1014.00 KiB/s Receiving objects: 34% (63853/187410), 443.59 MiB | 1.02 MiB/s Receiving objects: 34% (63853/187410), 444.61 MiB | 1.02 MiB/s Receiving objects: 34% (63853/187410), 445.63 MiB | 1.03 MiB/s Receiving objects: 34% (63853/187410), 446.52 MiB | 1.01 MiB/s Receiving objects: 34% (63853/187410), 447.60 MiB | 1.02 MiB/s Receiving objects: 34% (63853/187410), 448.61 MiB | 1023.00 KiB/s Receiving objects: 34% (63853/187410), 449.63 MiB | 1023.00 KiB/s Receiving objects: 34% (63853/187410), 450.64 MiB | 1.01 MiB/s Receiving objects: 34% (63853/187410), 451.81 MiB | 1.07 MiB/s Receiving objects: 34% (63853/187410), 452.82 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 453.82 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 454.71 MiB | 1.01 MiB/s Receiving objects: 34% (63853/187410), 455.61 MiB | 1006.00 KiB/s Receiving objects: 34% (63853/187410), 456.60 MiB | 968.00 KiB/s Receiving objects: 34% (63853/187410), 457.74 MiB | 1000.00 KiB/s Receiving objects: 34% (63853/187410), 458.77 MiB | 1014.00 KiB/s Receiving objects: 34% (63853/187410), 459.79 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 460.98 MiB | 1.08 MiB/s Receiving objects: 34% (63853/187410), 462.02 MiB | 1.08 MiB/s Receiving objects: 34% (63853/187410), 463.03 MiB | 1.05 MiB/s Receiving objects: 34% (63853/187410), 464.23 MiB | 1.10 MiB/s Receiving objects: 34% (63853/187410), 465.26 MiB | 1.09 MiB/s Receiving objects: 34% (63853/187410), 466.28 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 467.28 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 468.31 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 469.48 MiB | 1.05 MiB/s Receiving objects: 34% (63853/187410), 470.48 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 471.46 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 472.70 MiB | 1.09 MiB/s Receiving objects: 34% (63853/187410), 473.73 MiB | 1.08 MiB/s Receiving objects: 34% (63853/187410), 474.75 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 476.00 MiB | 1.12 MiB/s Receiving objects: 34% (63853/187410), 477.01 MiB | 1.09 MiB/s Receiving objects: 34% (63853/187410), 478.02 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 478.71 MiB | 1013.00 KiB/s Receiving objects: 34% (63853/187410), 479.69 MiB | 971.00 KiB/s Receiving objects: 34% (63853/187410), 480.73 MiB | 956.00 KiB/s Receiving objects: 34% (63853/187410), 481.85 MiB | 988.00 KiB/s Receiving objects: 34% (63853/187410), 482.90 MiB | 999.00 KiB/s Receiving objects: 34% (63853/187410), 483.92 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 485.20 MiB | 1.11 MiB/s Receiving objects: 34% (63853/187410), 486.27 MiB | 1.11 MiB/s Receiving objects: 34% (63853/187410), 487.35 MiB | 1.10 MiB/s Receiving objects: 34% (63853/187410), 488.41 MiB | 1.11 MiB/s Receiving objects: 34% (63853/187410), 489.47 MiB | 1.08 MiB/s Receiving objects: 34% (63853/187410), 490.71 MiB | 1.10 MiB/s Receiving objects: 34% (63853/187410), 491.66 MiB | 1.07 MiB/s Receiving objects: 34% (63853/187410), 492.66 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 493.73 MiB | 1.06 MiB/s Receiving objects: 34% (63853/187410), 494.20 MiB | 1.04 MiB/s Receiving objects: 34% (63853/187410), 495.05 MiB | 984.00 KiB/s Receiving objects: 34% (63854/187410), 496.00 MiB | 984.00 KiB/s Receiving objects: 34% (63854/187410), 496.98 MiB | 979.00 KiB/s Receiving objects: 34% (63854/187410), 497.92 MiB | 946.00 KiB/s Receiving objects: 34% (63854/187410), 498.91 MiB | 969.00 KiB/s Receiving objects: 34% (63854/187410), 499.78 MiB | 968.00 KiB/s Receiving objects: 34% (63854/187410), 500.93 MiB | 1014.00 KiB/s Receiving objects: 34% (63854/187410), 501.93 MiB | 1013.00 KiB/s Receiving objects: 34% (63854/187410), 502.87 MiB | 1014.00 KiB/s Receiving objects: 34% (64595/187410), 503.33 MiB | 1004.00 KiB/s Receiving objects: 35% (65594/187410), 504.20 MiB | 1001.00 KiB/s Receiving objects: 35% (66336/187410), 504.20 MiB | 1001.00 KiB/s Receiving objects: 35% (67289/187410), 505.50 MiB | 917.00 KiB/s Receiving objects: 35% (67413/187410), 505.98 MiB | 917.00 KiB/s Receiving objects: 36% (67468/187410), 505.98 MiB | 917.00 KiB/s Receiving objects: 36% (67487/187410), 507.24 MiB | 885.00 KiB/s Receiving objects: 36% (67487/187410), 508.09 MiB | 881.00 KiB/s Receiving objects: 36% (67506/187410), 508.96 MiB | 883.00 KiB/s Receiving objects: 36% (67513/187410), 509.85 MiB | 876.00 KiB/s Receiving objects: 36% (67604/187410), 510.24 MiB | 869.00 KiB/s Receiving objects: 36% (68225/187410), 511.08 MiB | 870.00 KiB/s Receiving objects: 37% (69342/187410), 511.46 MiB | 861.00 KiB/s Receiving objects: 37% (69919/187410), 511.74 MiB | 827.00 KiB/s Receiving objects: 38% (71216/187410), 512.28 MiB | 749.00 KiB/s Receiving objects: 38% (71222/187410), 512.28 MiB | 749.00 KiB/s Receiving objects: 38% (72614/187410), 512.83 MiB | 673.00 KiB/s Receiving objects: 39% (73090/187410), 513.20 MiB | 667.00 KiB/s Receiving objects: 39% (74273/187410), 513.45 MiB | 640.00 KiB/s Receiving objects: 40% (74964/187410), 513.71 MiB | 592.00 KiB/s Receiving objects: 40% (75939/187410), 513.95 MiB | 562.00 KiB/s Receiving objects: 41% (76839/187410), 514.20 MiB | 554.00 KiB/s Receiving objects: 41% (78142/187410), 514.38 MiB | 535.00 KiB/s Receiving objects: 42% (78713/187410), 514.57 MiB | 515.00 KiB/s Receiving objects: 42% (80431/187410), 514.75 MiB | 495.00 KiB/s Receiving objects: 43% (80587/187410), 514.75 MiB | 495.00 KiB/s Receiving objects: 44% (82461/187410), 515.11 MiB | 430.00 KiB/s Receiving objects: 44% (82792/187410), 515.11 MiB | 430.00 KiB/s Receiving objects: 45% (84335/187410), 515.45 MiB | 392.00 KiB/s Receiving objects: 45% (85066/187410), 515.45 MiB | 392.00 KiB/s Receiving objects: 46% (86209/187410), 515.63 MiB | 377.00 KiB/s Receiving objects: 46% (87392/187410), 515.80 MiB | 360.00 KiB/s Receiving objects: 47% (88083/187410), 515.98 MiB | 359.00 KiB/s Receiving objects: 47% (89711/187410), 516.16 MiB | 358.00 KiB/s Receiving objects: 48% (89957/187410), 516.16 MiB | 358.00 KiB/s Receiving objects: 49% (91831/187410), 516.55 MiB | 366.00 KiB/s Receiving objects: 49% (91987/187410), 516.55 MiB | 366.00 KiB/s Receiving objects: 50% (93705/187410), 517.11 MiB | 409.00 KiB/s Receiving objects: 50% (93956/187410), 517.11 MiB | 409.00 KiB/s Receiving objects: 51% (95580/187410), 517.55 MiB | 433.00 KiB/s Receiving objects: 51% (95849/187410), 517.55 MiB | 433.00 KiB/s Receiving objects: 52% (97454/187410), 518.05 MiB | 466.00 KiB/s Receiving objects: 52% (97687/187410), 518.05 MiB | 466.00 KiB/s Receiving objects: 52% (99092/187410), 518.85 MiB | 568.00 KiB/s Receiving objects: 53% (99328/187410), 519.43 MiB | 649.00 KiB/s Receiving objects: 53% (100129/187410), 519.84 MiB | 671.00 KiB/s Receiving objects: 53% (101124/187410), 520.71 MiB | 767.00 KiB/s Receiving objects: 54% (101202/187410), 520.71 MiB | 767.00 KiB/s Receiving objects: 54% (102209/187410), 521.55 MiB | 864.00 KiB/s Receiving objects: 55% (103076/187410), 522.00 MiB | 896.00 KiB/s Receiving objects: 55% (104466/187410), 522.41 MiB | 900.00 KiB/s Receiving objects: 56% (104950/187410), 522.41 MiB | 900.00 KiB/s Receiving objects: 56% (106344/187410), 523.15 MiB | 844.00 KiB/s Receiving objects: 57% (106824/187410), 523.67 MiB | 869.00 KiB/s Receiving objects: 58% (108698/187410), 524.10 MiB | 865.00 KiB/s Receiving objects: 58% (108735/187410), 524.10 MiB | 865.00 KiB/s Receiving objects: 58% (110026/187410), 524.95 MiB | 870.00 KiB/s Receiving objects: 59% (110572/187410), 525.38 MiB | 867.00 KiB/s Receiving objects: 59% (111832/187410), 525.80 MiB | 860.00 KiB/s Receiving objects: 60% (112446/187410), 525.80 MiB | 860.00 KiB/s Receiving objects: 60% (113778/187410), 527.19 MiB | 916.00 KiB/s Receiving objects: 60% (113826/187410), 527.57 MiB | 883.00 KiB/s Receiving objects: 61% (114321/187410), 528.02 MiB | 887.00 KiB/s Receiving objects: 61% (114710/187410), 528.50 MiB | 907.00 KiB/s Receiving objects: 61% (115279/187410), 529.37 MiB | 904.00 KiB/s Receiving objects: 62% (116195/187410), 530.25 MiB | 915.00 KiB/s Receiving objects: 62% (116216/187410), 530.25 MiB | 915.00 KiB/s Receiving objects: 63% (118069/187410), 531.06 MiB | 876.00 KiB/s Receiving objects: 63% (118092/187410), 531.06 MiB | 876.00 KiB/s Receiving objects: 63% (119246/187410), 531.89 MiB | 878.00 KiB/s Receiving objects: 64% (119943/187410), 531.89 MiB | 878.00 KiB/s Receiving objects: 64% (121400/187410), 532.67 MiB | 837.00 KiB/s Receiving objects: 65% (121817/187410), 532.67 MiB | 837.00 KiB/s Receiving objects: 65% (123486/187410), 533.54 MiB | 848.00 KiB/s Receiving objects: 66% (123691/187410), 534.07 MiB | 862.00 KiB/s Receiving objects: 66% (124678/187410), 534.48 MiB | 861.00 KiB/s Receiving objects: 66% (125226/187410), 535.34 MiB | 861.00 KiB/s Receiving objects: 67% (125565/187410), 535.34 MiB | 861.00 KiB/s Receiving objects: 67% (126003/187410), 536.07 MiB | 861.00 KiB/s Receiving objects: 67% (126811/187410), 536.83 MiB | 846.00 KiB/s Receiving objects: 68% (127439/187410), 537.25 MiB | 838.00 KiB/s Receiving objects: 68% (127746/187410), 537.66 MiB | 813.00 KiB/s Receiving objects: 68% (128715/187410), 539.08 MiB | 846.00 KiB/s Receiving objects: 68% (128715/187410), 540.01 MiB | 890.00 KiB/s Receiving objects: 68% (129154/187410), 540.47 MiB | 914.00 KiB/s Receiving objects: 69% (129313/187410), 540.47 MiB | 914.00 KiB/s Receiving objects: 69% (130489/187410), 541.39 MiB | 940.00 KiB/s Receiving objects: 70% (131187/187410), 542.44 MiB | 991.00 KiB/s Receiving objects: 70% (131188/187410), 542.44 MiB | 991.00 KiB/s Receiving objects: 71% (133062/187410), 542.85 MiB | 986.00 KiB/s Receiving objects: 72% (134936/187410), 542.85 MiB | 986.00 KiB/s Receiving objects: 73% (136810/187410), 542.85 MiB | 986.00 KiB/s Receiving objects: 74% (138684/187410), 542.85 MiB | 986.00 KiB/s Receiving objects: 75% (140558/187410), 542.85 MiB | 986.00 KiB/s Receiving objects: 76% (142432/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 76% (142505/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 77% (144306/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 78% (146180/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 79% (148054/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 80% (149928/187410), 543.15 MiB | 921.00 KiB/s Receiving objects: 81% (151803/187410), 543.48 MiB | 889.00 KiB/s Receiving objects: 82% (153677/187410), 543.48 MiB | 889.00 KiB/s Receiving objects: 83% (155551/187410), 543.48 MiB | 889.00 KiB/s Receiving objects: 84% (157425/187410), 543.48 MiB | 889.00 KiB/s Receiving objects: 85% (159299/187410), 543.48 MiB | 889.00 KiB/s Receiving objects: 85% (160899/187410), 543.80 MiB | 857.00 KiB/s Receiving objects: 86% (161173/187410), 543.80 MiB | 857.00 KiB/s Receiving objects: 86% (161942/187410), 544.62 MiB | 845.00 KiB/s Receiving objects: 86% (162197/187410), 545.37 MiB | 766.00 KiB/s Receiving objects: 86% (162245/187410), 546.32 MiB | 786.00 KiB/s Receiving objects: 86% (162264/187410), 547.17 MiB | 838.00 KiB/s Receiving objects: 86% (162268/187410), 548.03 MiB | 870.00 KiB/s Receiving objects: 86% (162276/187410), 548.88 MiB | 887.00 KiB/s Receiving objects: 86% (162284/187410), 549.77 MiB | 877.00 KiB/s Receiving objects: 86% (162289/187410), 550.67 MiB | 891.00 KiB/s Receiving objects: 86% (162297/187410), 551.54 MiB | 897.00 KiB/s Receiving objects: 86% (162298/187410), 552.85 MiB | 900.00 KiB/s Receiving objects: 87% (163047/187410), 552.85 MiB | 900.00 KiB/s Receiving objects: 87% (163474/187410), 553.29 MiB | 900.00 KiB/s Receiving objects: 87% (164025/187410), 554.30 MiB | 923.00 KiB/s Receiving objects: 87% (164044/187410), 555.30 MiB | 953.00 KiB/s Receiving objects: 87% (164241/187410), 556.55 MiB | 936.00 KiB/s Receiving objects: 87% (164282/187410), 557.40 MiB | 931.00 KiB/s Receiving objects: 87% (164299/187410), 558.24 MiB | 891.00 KiB/s Receiving objects: 87% (164326/187410), 558.99 MiB | 834.00 KiB/s Receiving objects: 87% (164337/187410), 559.40 MiB | 829.00 KiB/s Receiving objects: 87% (164654/187410), 560.21 MiB | 829.00 KiB/s Receiving objects: 88% (164921/187410), 560.64 MiB | 833.00 KiB/s Receiving objects: 88% (166355/187410), 561.15 MiB | 850.00 KiB/s Receiving objects: 89% (166795/187410), 561.15 MiB | 850.00 KiB/s Receiving objects: 89% (167527/187410), 562.00 MiB | 853.00 KiB/s Receiving objects: 89% (167649/187410), 562.86 MiB | 878.00 KiB/s Receiving objects: 89% (167649/187410), 563.75 MiB | 896.00 KiB/s Receiving objects: 89% (168441/187410), 564.60 MiB | 897.00 KiB/s Receiving objects: 89% (168443/187410), 565.55 MiB | 904.00 KiB/s Receiving objects: 89% (168445/187410), 566.49 MiB | 920.00 KiB/s Receiving objects: 90% (168669/187410), 566.49 MiB | 920.00 KiB/s Receiving objects: 90% (169609/187410), 567.36 MiB | 917.00 KiB/s Receiving objects: 90% (169894/187410), 568.35 MiB | 944.00 KiB/s Receiving objects: 90% (169894/187410), 569.18 MiB | 937.00 KiB/s Receiving objects: 90% (169894/187410), 570.03 MiB | 906.00 KiB/s Receiving objects: 90% (169894/187410), 570.88 MiB | 895.00 KiB/s Receiving objects: 90% (169894/187410), 571.85 MiB | 920.00 KiB/s Receiving objects: 90% (169894/187410), 572.70 MiB | 889.00 KiB/s Receiving objects: 90% (169894/187410), 573.46 MiB | 874.00 KiB/s Receiving objects: 90% (169894/187410), 574.32 MiB | 875.00 KiB/s Receiving objects: 90% (169894/187410), 575.03 MiB | 842.00 KiB/s Receiving objects: 90% (169894/187410), 575.96 MiB | 833.00 KiB/s Receiving objects: 90% (169894/187410), 576.80 MiB | 831.00 KiB/s Receiving objects: 90% (169894/187410), 577.64 MiB | 852.00 KiB/s Receiving objects: 90% (169894/187410), 578.48 MiB | 875.00 KiB/s Receiving objects: 90% (169894/187410), 579.32 MiB | 877.00 KiB/s Receiving objects: 90% (169894/187410), 580.34 MiB | 898.00 KiB/s Receiving objects: 90% (169894/187410), 581.18 MiB | 898.00 KiB/s Receiving objects: 90% (169894/187410), 582.02 MiB | 899.00 KiB/s Receiving objects: 90% (169894/187410), 583.04 MiB | 938.00 KiB/s Receiving objects: 90% (169894/187410), 583.88 MiB | 940.00 KiB/s Receiving objects: 90% (169894/187410), 584.73 MiB | 903.00 KiB/s Receiving objects: 90% (169894/187410), 585.71 MiB | 929.00 KiB/s Receiving objects: 90% (169894/187410), 586.52 MiB | 921.00 KiB/s Receiving objects: 90% (169894/187410), 587.36 MiB | 884.00 KiB/s Receiving objects: 90% (169894/187410), 588.21 MiB | 881.00 KiB/s Receiving objects: 90% (169894/187410), 589.23 MiB | 918.00 KiB/s Receiving objects: 90% (169894/187410), 590.07 MiB | 901.00 KiB/s Receiving objects: 90% (169894/187410), 590.90 MiB | 901.00 KiB/s Receiving objects: 90% (169894/187410), 591.74 MiB | 899.00 KiB/s Receiving objects: 90% (169894/187410), 592.56 MiB | 891.00 KiB/s Receiving objects: 90% (169894/187410), 593.41 MiB | 855.00 KiB/s Receiving objects: 90% (169894/187410), 594.25 MiB | 854.00 KiB/s Receiving objects: 90% (169894/187410), 594.96 MiB | 824.00 KiB/s Receiving objects: 90% (169894/187410), 595.92 MiB | 855.00 KiB/s Receiving objects: 90% (169894/187410), 596.78 MiB | 859.00 KiB/s Receiving objects: 90% (169895/187410), 597.58 MiB | 849.00 KiB/s Receiving objects: 90% (169895/187410), 598.45 MiB | 874.00 KiB/s Receiving objects: 90% (169895/187410), 599.49 MiB | 931.00 KiB/s Receiving objects: 90% (169895/187410), 600.40 MiB | 917.00 KiB/s Receiving objects: 90% (169896/187410), 601.30 MiB | 941.00 KiB/s Receiving objects: 90% (169896/187410), 602.35 MiB | 980.00 KiB/s Receiving objects: 90% (169896/187410), 603.25 MiB | 984.00 KiB/s Receiving objects: 90% (169896/187410), 603.86 MiB | 887.00 KiB/s Receiving objects: 90% (169897/187410), 604.81 MiB | 898.00 KiB/s Receiving objects: 90% (169897/187410), 605.70 MiB | 897.00 KiB/s Receiving objects: 90% (169897/187410), 606.59 MiB | 857.00 KiB/s Receiving objects: 90% (169897/187410), 607.49 MiB | 894.00 KiB/s Receiving objects: 90% (169897/187410), 608.52 MiB | 954.00 KiB/s Receiving objects: 90% (169897/187410), 609.40 MiB | 940.00 KiB/s Receiving objects: 90% (169898/187410), 610.29 MiB | 939.00 KiB/s Receiving objects: 90% (169898/187410), 611.32 MiB | 972.00 KiB/s Receiving objects: 90% (169898/187410), 612.23 MiB | 974.00 KiB/s Receiving objects: 90% (169898/187410), 613.13 MiB | 944.00 KiB/s Receiving objects: 90% (169898/187410), 613.97 MiB | 936.00 KiB/s Receiving objects: 90% (169898/187410), 614.81 MiB | 925.00 KiB/s Receiving objects: 90% (170363/187410), 615.27 MiB | 893.00 KiB/s Receiving objects: 91% (170544/187410), 615.27 MiB | 893.00 KiB/s Receiving objects: 91% (171057/187410), 616.27 MiB | 915.00 KiB/s Receiving objects: 91% (171630/187410), 617.60 MiB | 912.00 KiB/s Receiving objects: 91% (171630/187410), 618.70 MiB | 978.00 KiB/s Receiving objects: 91% (171630/187410), 619.61 MiB | 987.00 KiB/s Receiving objects: 91% (171630/187410), 620.52 MiB | 965.00 KiB/s Receiving objects: 91% (171632/187410), 621.64 MiB | 1020.00 KiB/s Receiving objects: 91% (171639/187410), 622.55 MiB | 1019.00 KiB/s Receiving objects: 91% (171640/187410), 623.01 MiB | 976.00 KiB/s Receiving objects: 91% (171688/187410), 623.92 MiB | 977.00 KiB/s Receiving objects: 91% (171697/187410), 625.28 MiB | 969.00 KiB/s Receiving objects: 91% (171697/187410), 626.19 MiB | 927.00 KiB/s Receiving objects: 91% (171697/187410), 627.16 MiB | 943.00 KiB/s Receiving objects: 91% (171699/187410), 627.63 MiB | 944.00 KiB/s Receiving objects: 91% (171699/187410), 628.99 MiB | 943.00 KiB/s Receiving objects: 91% (171703/187410), 630.08 MiB | 985.00 KiB/s Receiving objects: 91% (171707/187410), 631.00 MiB | 986.00 KiB/s Receiving objects: 91% (171711/187410), 631.45 MiB | 971.00 KiB/s Receiving objects: 91% (171789/187410), 633.00 MiB | 1011.00 KiB/s Receiving objects: 91% (171798/187410), 633.46 MiB | 1013.00 KiB/s Receiving objects: 91% (171832/187410), 634.34 MiB | 966.00 KiB/s Receiving objects: 91% (171878/187410), 635.71 MiB | 964.00 KiB/s Receiving objects: 91% (171878/187410), 636.79 MiB | 991.00 KiB/s Receiving objects: 91% (171878/187410), 637.70 MiB | 960.00 KiB/s Receiving objects: 91% (171880/187410), 638.60 MiB | 965.00 KiB/s Receiving objects: 91% (171887/187410), 639.12 MiB | 982.00 KiB/s Receiving objects: 91% (171888/187410), 640.14 MiB | 1005.00 KiB/s Receiving objects: 91% (171908/187410), 641.05 MiB | 964.00 KiB/s Receiving objects: 91% (172073/187410), 641.94 MiB | 960.00 KiB/s Receiving objects: 92% (172418/187410), 641.94 MiB | 960.00 KiB/s Receiving objects: 92% (172479/187410), 642.82 MiB | 954.00 KiB/s Receiving objects: 92% (172633/187410), 643.72 MiB | 915.00 KiB/s Receiving objects: 92% (172690/187410), 644.56 MiB | 899.00 KiB/s Receiving objects: 92% (172968/187410), 645.41 MiB | 887.00 KiB/s Receiving objects: 92% (173025/187410), 646.37 MiB | 804.00 KiB/s Receiving objects: 92% (173025/187410), 646.92 MiB | 721.00 KiB/s Receiving objects: 92% (173025/187410), 647.26 MiB | 702.00 KiB/s Receiving objects: 92% (173025/187410), 647.73 MiB | 621.00 KiB/s Receiving objects: 92% (173025/187410), 648.22 MiB | 547.00 KiB/s Receiving objects: 92% (173025/187410), 648.75 MiB | 535.00 KiB/s Receiving objects: 92% (173025/187410), 649.43 MiB | 567.00 KiB/s Receiving objects: 92% (173025/187410), 649.90 MiB | 543.00 KiB/s Receiving objects: 92% (173057/187410), 650.65 MiB | 606.00 KiB/s Receiving objects: 92% (173067/187410), 651.46 MiB | 675.00 KiB/s Receiving objects: 92% (173067/187410), 652.36 MiB | 752.00 KiB/s Receiving objects: 92% (173067/187410), 653.27 MiB | 806.00 KiB/s Receiving objects: 92% (173067/187410), 654.18 MiB | 886.00 KiB/s Receiving objects: 92% (173069/187410), 654.91 MiB | 869.00 KiB/s Receiving objects: 92% (173069/187410), 655.54 MiB | 819.00 KiB/s Receiving objects: 92% (173069/187410), 656.20 MiB | 766.00 KiB/s Receiving objects: 92% (173069/187410), 656.86 MiB | 708.00 KiB/s Receiving objects: 92% (173069/187410), 657.52 MiB | 664.00 KiB/s Receiving objects: 92% (173070/187410), 658.19 MiB | 681.00 KiB/s Receiving objects: 92% (173075/187410), 658.87 MiB | 679.00 KiB/s Receiving objects: 92% (173076/187410), 659.31 MiB | 704.00 KiB/s Receiving objects: 92% (173085/187410), 660.68 MiB | 793.00 KiB/s Receiving objects: 92% (173093/187410), 661.51 MiB | 830.00 KiB/s Receiving objects: 92% (173093/187410), 662.32 MiB | 858.00 KiB/s Receiving objects: 92% (173093/187410), 662.98 MiB | 829.00 KiB/s Receiving objects: 92% (173152/187410), 663.32 MiB | 777.00 KiB/s Receiving objects: 92% (173169/187410), 663.98 MiB | 745.00 KiB/s Receiving objects: 92% (173220/187410), 665.20 MiB | 759.00 KiB/s Receiving objects: 92% (173220/187410), 666.04 MiB | 768.00 KiB/s Receiving objects: 92% (173220/187410), 667.02 MiB | 834.00 KiB/s Receiving objects: 92% (173220/187410), 667.80 MiB | 864.00 KiB/s Receiving objects: 92% (173220/187410), 668.63 MiB | 874.00 KiB/s Receiving objects: 92% (173220/187410), 669.57 MiB | 897.00 KiB/s Receiving objects: 92% (173220/187410), 670.43 MiB | 900.00 KiB/s Receiving objects: 92% (173220/187410), 671.29 MiB | 875.00 KiB/s Receiving objects: 92% (173220/187410), 672.13 MiB | 891.00 KiB/s Receiving objects: 92% (173220/187410), 672.98 MiB | 892.00 KiB/s Receiving objects: 92% (173220/187410), 673.82 MiB | 867.00 KiB/s Receiving objects: 92% (173220/187410), 674.72 MiB | 878.00 KiB/s Receiving objects: 92% (173220/187410), 675.57 MiB | 877.00 KiB/s Receiving objects: 92% (173221/187410), 676.42 MiB | 876.00 KiB/s Receiving objects: 92% (173222/187410), 676.84 MiB | 875.00 KiB/s Receiving objects: 92% (173222/187410), 678.10 MiB | 874.00 KiB/s Receiving objects: 92% (173222/187410), 678.95 MiB | 860.00 KiB/s Receiving objects: 92% (173222/187410), 679.81 MiB | 861.00 KiB/s Receiving objects: 92% (173222/187410), 680.66 MiB | 862.00 KiB/s Receiving objects: 92% (173222/187410), 681.50 MiB | 859.00 KiB/s Receiving objects: 92% (173223/187410), 682.32 MiB | 859.00 KiB/s Receiving objects: 92% (173223/187410), 683.17 MiB | 858.00 KiB/s Receiving objects: 92% (173259/187410), 683.57 MiB | 852.00 KiB/s Receiving objects: 92% (173270/187410), 684.62 MiB | 803.00 KiB/s Receiving objects: 92% (173270/187410), 685.50 MiB | 813.00 KiB/s Receiving objects: 92% (173270/187410), 686.29 MiB | 800.00 KiB/s Receiving objects: 92% (173270/187410), 687.19 MiB | 818.00 KiB/s Receiving objects: 92% (173272/187410), 687.90 MiB | 841.00 KiB/s Receiving objects: 92% (173272/187410), 688.55 MiB | 788.00 KiB/s Receiving objects: 92% (173272/187410), 689.20 MiB | 752.00 KiB/s Receiving objects: 92% (173272/187410), 689.81 MiB | 695.00 KiB/s Receiving objects: 92% (173272/187410), 690.42 MiB | 643.00 KiB/s Receiving objects: 92% (173272/187410), 691.05 MiB | 638.00 KiB/s Receiving objects: 92% (173272/187410), 691.67 MiB | 635.00 KiB/s Receiving objects: 92% (173278/187410), 691.99 MiB | 634.00 KiB/s Receiving objects: 92% (173280/187410), 693.22 MiB | 704.00 KiB/s Receiving objects: 92% (173290/187410), 694.02 MiB | 742.00 KiB/s Receiving objects: 92% (173291/187410), 694.45 MiB | 769.00 KiB/s Receiving objects: 92% (173322/187410), 695.54 MiB | 803.00 KiB/s Receiving objects: 92% (173325/187410), 696.36 MiB | 800.00 KiB/s Receiving objects: 92% (173325/187410), 697.20 MiB | 813.00 KiB/s Receiving objects: 92% (173325/187410), 698.02 MiB | 808.00 KiB/s Receiving objects: 92% (173325/187410), 698.98 MiB | 874.00 KiB/s Receiving objects: 92% (173325/187410), 699.82 MiB | 878.00 KiB/s Receiving objects: 92% (173325/187410), 700.66 MiB | 877.00 KiB/s Receiving objects: 92% (173325/187410), 701.58 MiB | 895.00 KiB/s Receiving objects: 92% (173325/187410), 702.41 MiB | 885.00 KiB/s Receiving objects: 92% (173325/187410), 703.24 MiB | 868.00 KiB/s Receiving objects: 92% (173325/187410), 704.07 MiB | 870.00 KiB/s Receiving objects: 92% (173325/187410), 705.14 MiB | 922.00 KiB/s Receiving objects: 92% (173325/187410), 706.00 MiB | 908.00 KiB/s Receiving objects: 92% (173325/187410), 706.84 MiB | 911.00 KiB/s Receiving objects: 92% (173325/187410), 707.68 MiB | 914.00 KiB/s Receiving objects: 92% (173325/187410), 708.70 MiB | 915.00 KiB/s Receiving objects: 92% (173325/187410), 709.55 MiB | 901.00 KiB/s Receiving objects: 92% (173325/187410), 710.40 MiB | 902.00 KiB/s Receiving objects: 92% (173325/187410), 711.27 MiB | 907.00 KiB/s Receiving objects: 92% (173325/187410), 712.06 MiB | 859.00 KiB/s Receiving objects: 92% (173325/187410), 712.43 MiB | 845.00 KiB/s Receiving objects: 92% (173325/187410), 713.40 MiB | 873.00 KiB/s Receiving objects: 92% (173325/187410), 714.29 MiB | 882.00 KiB/s Receiving objects: 92% (173325/187410), 715.14 MiB | 877.00 KiB/s Receiving objects: 92% (173325/187410), 715.99 MiB | 889.00 KiB/s Receiving objects: 92% (173325/187410), 716.83 MiB | 901.00 KiB/s Receiving objects: 92% (173325/187410), 717.68 MiB | 867.00 KiB/s Receiving objects: 92% (173325/187410), 718.54 MiB | 866.00 KiB/s Receiving objects: 92% (173326/187410), 719.35 MiB | 857.00 KiB/s Receiving objects: 92% (173328/187410), 719.70 MiB | 834.00 KiB/s Receiving objects: 92% (173352/187410), 721.02 MiB | 845.00 KiB/s Receiving objects: 92% (173355/187410), 721.32 MiB | 816.00 KiB/s Receiving objects: 92% (173356/187410), 722.22 MiB | 744.00 KiB/s Receiving objects: 92% (173356/187410), 722.77 MiB | 693.00 KiB/s Receiving objects: 92% (174050/187410), 723.01 MiB | 616.00 KiB/s Receiving objects: 92% (174286/187410), 724.53 MiB | 727.00 KiB/s Receiving objects: 93% (174292/187410), 724.53 MiB | 727.00 KiB/s Receiving objects: 93% (174307/187410), 725.42 MiB | 790.00 KiB/s Receiving objects: 93% (174307/187410), 726.53 MiB | 911.00 KiB/s Receiving objects: 93% (174307/187410), 727.40 MiB | 995.00 KiB/s Receiving objects: 93% (174311/187410), 728.29 MiB | 952.00 KiB/s Receiving objects: 93% (174311/187410), 729.34 MiB | 990.00 KiB/s Receiving objects: 93% (174311/187410), 730.23 MiB | 992.00 KiB/s Receiving objects: 93% (174311/187410), 731.13 MiB | 943.00 KiB/s Receiving objects: 93% (174454/187410), 731.98 MiB | 940.00 KiB/s Receiving objects: 93% (174778/187410), 732.39 MiB | 927.00 KiB/s Receiving objects: 93% (175156/187410), 734.06 MiB | 970.00 KiB/s Receiving objects: 93% (175248/187410), 734.56 MiB | 981.00 KiB/s Receiving objects: 94% (176166/187410), 735.53 MiB | 998.00 KiB/s Receiving objects: 94% (176482/187410), 735.53 MiB | 998.00 KiB/s Receiving objects: 94% (177002/187410), 736.56 MiB | 1.01 MiB/s Receiving objects: 94% (177054/187410), 737.95 MiB | 997.00 KiB/s Receiving objects: 94% (177104/187410), 738.86 MiB | 972.00 KiB/s Receiving objects: 94% (177104/187410), 739.75 MiB | 955.00 KiB/s Receiving objects: 94% (177136/187410), 740.77 MiB | 951.00 KiB/s Receiving objects: 94% (177822/187410), 741.21 MiB | 942.00 KiB/s Receiving objects: 95% (178040/187410), 741.21 MiB | 942.00 KiB/s Receiving objects: 95% (178881/187410), 742.53 MiB | 936.00 KiB/s Receiving objects: 95% (178883/187410), 743.03 MiB | 944.00 KiB/s Receiving objects: 95% (178884/187410), 744.57 MiB | 991.00 KiB/s Receiving objects: 95% (178886/187410), 745.58 MiB | 991.00 KiB/s Receiving objects: 95% (178887/187410), 746.60 MiB | 1.01 MiB/s Receiving objects: 95% (178889/187410), 747.09 MiB | 1.01 MiB/s Receiving objects: 95% (178891/187410), 748.12 MiB | 1.01 MiB/s Receiving objects: 95% (178897/187410), 749.51 MiB | 1005.00 KiB/s Receiving objects: 95% (178897/187410), 750.55 MiB | 1012.00 KiB/s Receiving objects: 95% (178897/187410), 751.61 MiB | 1021.00 KiB/s Receiving objects: 95% (178906/187410), 751.94 MiB | 978.00 KiB/s Receiving objects: 95% (178916/187410), 753.34 MiB | 972.00 KiB/s Receiving objects: 95% (178917/187410), 754.34 MiB | 1.00 MiB/s Receiving objects: 95% (178918/187410), 754.86 MiB | 972.00 KiB/s Receiving objects: 95% (178919/187410), 756.34 MiB | 996.00 KiB/s Receiving objects: 95% (178919/187410), 757.32 MiB | 1011.00 KiB/s Receiving objects: 95% (178920/187410), 758.51 MiB | 1.03 MiB/s Receiving objects: 95% (178921/187410), 759.49 MiB | 1.02 MiB/s Receiving objects: 95% (178921/187410), 760.48 MiB | 1.02 MiB/s Receiving objects: 95% (178923/187410), 760.96 MiB | 1.02 MiB/s Receiving objects: 96% (179914/187410), 761.82 MiB | 1018.00 KiB/s Receiving objects: 96% (180053/187410), 761.82 MiB | 1018.00 KiB/s Receiving objects: 96% (180609/187410), 763.20 MiB | 950.00 KiB/s Receiving objects: 96% (180609/187410), 763.98 MiB | 909.00 KiB/s Receiving objects: 96% (180609/187410), 765.08 MiB | 935.00 KiB/s Receiving objects: 96% (180609/187410), 766.00 MiB | 947.00 KiB/s Receiving objects: 96% (180609/187410), 766.98 MiB | 954.00 KiB/s Receiving objects: 96% (180609/187410), 767.80 MiB | 948.00 KiB/s Receiving objects: 96% (180609/187410), 768.92 MiB | 1013.00 KiB/s Receiving objects: 96% (180610/187410), 769.41 MiB | 982.00 KiB/s Receiving objects: 96% (181277/187410), 770.28 MiB | 970.00 KiB/s Receiving objects: 96% (181485/187410), 771.25 MiB | 968.00 KiB/s Receiving objects: 97% (181788/187410), 771.25 MiB | 968.00 KiB/s Receiving objects: 97% (182363/187410), 772.08 MiB | 969.00 KiB/s Receiving objects: 97% (183483/187410), 772.93 MiB | 908.00 KiB/s Receiving objects: 98% (183662/187410), 773.36 MiB | 891.00 KiB/s Receiving objects: 98% (183718/187410), 773.80 MiB | 896.00 KiB/s Receiving objects: 98% (184146/187410), 774.71 MiB | 892.00 KiB/s Receiving objects: 98% (184321/187410), 775.54 MiB | 874.00 KiB/s Receiving objects: 98% (184938/187410), 776.24 MiB | 840.00 KiB/s Receiving objects: 99% (185536/187410), 776.56 MiB | 819.00 KiB/s Receiving objects: 99% (185809/187410), 776.85 MiB | 789.00 KiB/s Receiving objects: 99% (186925/187410), 777.54 MiB | 745.00 KiB/s Receiving objects: 99% (186988/187410), 778.29 MiB | 718.00 KiB/s remote: Total 187410 (delta 1223), reused 756 (delta 730), pack-reused 185963 (from 3) Receiving objects: 100% (187410/187410), 778.98 MiB | 692.00 KiB/s Receiving objects: 100% (187410/187410), 779.01 MiB | 928.00 KiB/s, done. Resolving deltas: 0% (0/134687) Resolving deltas: 0% (455/134687) Resolving deltas: 0% (1274/134687) Resolving deltas: 1% (1347/134687) Resolving deltas: 1% (1389/134687) Resolving deltas: 1% (1412/134687) Resolving deltas: 1% (1436/134687) Resolving deltas: 1% (1535/134687) Resolving deltas: 1% (1766/134687) Resolving deltas: 1% (2200/134687) Resolving deltas: 1% (2549/134687) Resolving deltas: 2% (2694/134687) Resolving deltas: 2% (2766/134687) Resolving deltas: 2% (2971/134687) Resolving deltas: 2% (3667/134687) Resolving deltas: 2% (3728/134687) Resolving deltas: 2% (3752/134687) Resolving deltas: 2% (3776/134687) Resolving deltas: 2% (3796/134687) Resolving deltas: 2% (3811/134687) Resolving deltas: 2% (3823/134687) Resolving deltas: 2% (3835/134687) Resolving deltas: 2% (3852/134687) Resolving deltas: 2% (3865/134687) Resolving deltas: 2% (3880/134687) Resolving deltas: 2% (3894/134687) Resolving deltas: 2% (3905/134687) Resolving deltas: 2% (3918/134687) Resolving deltas: 2% (3927/134687) Resolving deltas: 3% (4041/134687) Resolving deltas: 3% (4665/134687) Resolving deltas: 3% (4803/134687) Resolving deltas: 3% (4962/134687) Resolving deltas: 3% (5126/134687) Resolving deltas: 3% (5174/134687) Resolving deltas: 3% (5224/134687) Resolving deltas: 3% (5270/134687) Resolving deltas: 4% (5388/134687) Resolving deltas: 4% (5449/134687) Resolving deltas: 4% (5577/134687) Resolving deltas: 4% (5603/134687) Resolving deltas: 4% (5631/134687) Resolving deltas: 4% (5659/134687) Resolving deltas: 4% (5687/134687) Resolving deltas: 4% (5713/134687) Resolving deltas: 4% (5738/134687) Resolving deltas: 4% (5764/134687) Resolving deltas: 4% (5860/134687) Resolving deltas: 4% (6103/134687) Resolving deltas: 4% (6348/134687) Resolving deltas: 4% (6571/134687) Resolving deltas: 5% (6735/134687) Resolving deltas: 5% (6790/134687) Resolving deltas: 5% (7061/134687) Resolving deltas: 5% (7084/134687) Resolving deltas: 5% (7108/134687) Resolving deltas: 5% (7132/134687) Resolving deltas: 5% (7156/134687) Resolving deltas: 5% (7179/134687) Resolving deltas: 5% (7195/134687) Resolving deltas: 5% (7211/134687) Resolving deltas: 5% (7224/134687) Resolving deltas: 5% (7236/134687) Resolving deltas: 5% (7248/134687) Resolving deltas: 5% (7262/134687) Resolving deltas: 5% (7275/134687) Resolving deltas: 5% (7377/134687) Resolving deltas: 5% (7395/134687) Resolving deltas: 5% (7407/134687) Resolving deltas: 5% (7423/134687) Resolving deltas: 5% (7948/134687) Resolving deltas: 6% (8082/134687) Resolving deltas: 6% (8291/134687) Resolving deltas: 6% (8776/134687) Resolving deltas: 7% (9429/134687) Resolving deltas: 7% (10254/134687) Resolving deltas: 8% (10775/134687) Resolving deltas: 8% (10891/134687) Resolving deltas: 8% (10916/134687) Resolving deltas: 8% (10938/134687) Resolving deltas: 8% (11464/134687) Resolving deltas: 8% (11632/134687) Resolving deltas: 8% (11645/134687) Resolving deltas: 8% (11662/134687) Resolving deltas: 8% (11672/134687) Resolving deltas: 8% (11684/134687) Resolving deltas: 8% (11693/134687) Resolving deltas: 8% (11855/134687) Resolving deltas: 9% (12122/134687) Resolving deltas: 9% (12327/134687) Resolving deltas: 9% (12342/134687) Resolving deltas: 9% (12355/134687) Resolving deltas: 9% (12607/134687) Resolving deltas: 9% (13055/134687) Resolving deltas: 9% (13361/134687) Resolving deltas: 9% (13423/134687) Resolving deltas: 10% (13469/134687) Resolving deltas: 10% (13869/134687) Resolving deltas: 10% (14145/134687) Resolving deltas: 10% (14173/134687) Resolving deltas: 10% (14200/134687) Resolving deltas: 10% (14226/134687) Resolving deltas: 10% (14315/134687) Resolving deltas: 11% (14816/134687) Resolving deltas: 11% (14893/134687) Resolving deltas: 11% (15103/134687) Resolving deltas: 11% (15120/134687) Resolving deltas: 11% (15220/134687) Resolving deltas: 11% (15637/134687) Resolving deltas: 11% (15904/134687) Resolving deltas: 11% (15934/134687) Resolving deltas: 11% (15959/134687) Resolving deltas: 11% (15991/134687) Resolving deltas: 11% (16018/134687) Resolving deltas: 11% (16051/134687) Resolving deltas: 11% (16085/134687) Resolving deltas: 11% (16113/134687) Resolving deltas: 12% (16163/134687) Resolving deltas: 12% (16712/134687) Resolving deltas: 13% (17510/134687) Resolving deltas: 13% (18164/134687) Resolving deltas: 13% (18329/134687) Resolving deltas: 13% (18602/134687) Resolving deltas: 13% (18849/134687) Resolving deltas: 14% (18857/134687) Resolving deltas: 14% (18858/134687) Resolving deltas: 14% (18872/134687) Resolving deltas: 14% (18884/134687) Resolving deltas: 14% (18898/134687) Resolving deltas: 14% (18916/134687) Resolving deltas: 14% (18930/134687) Resolving deltas: 14% (18941/134687) Resolving deltas: 14% (18959/134687) Resolving deltas: 14% (18975/134687) Resolving deltas: 14% (18989/134687) Resolving deltas: 14% (19010/134687) Resolving deltas: 14% (19027/134687) Resolving deltas: 14% (19042/134687) Resolving deltas: 14% (19064/134687) Resolving deltas: 14% (19077/134687) Resolving deltas: 14% (19090/134687) Resolving deltas: 14% (19344/134687) Resolving deltas: 14% (19746/134687) Resolving deltas: 15% (20204/134687) Resolving deltas: 15% (20246/134687) Resolving deltas: 15% (20500/134687) Resolving deltas: 15% (21211/134687) Resolving deltas: 15% (21322/134687) Resolving deltas: 16% (21550/134687) Resolving deltas: 16% (21662/134687) Resolving deltas: 16% (21716/134687) Resolving deltas: 16% (21851/134687) Resolving deltas: 16% (21883/134687) Resolving deltas: 16% (21913/134687) Resolving deltas: 16% (21944/134687) Resolving deltas: 16% (21973/134687) Resolving deltas: 16% (21999/134687) Resolving deltas: 16% (22506/134687) Resolving deltas: 16% (22683/134687) Resolving deltas: 17% (22897/134687) Resolving deltas: 17% (22922/134687) Resolving deltas: 17% (23025/134687) Resolving deltas: 17% (23067/134687) Resolving deltas: 17% (23111/134687) Resolving deltas: 17% (23490/134687) Resolving deltas: 17% (24064/134687) Resolving deltas: 18% (24244/134687) Resolving deltas: 18% (24433/134687) Resolving deltas: 18% (24470/134687) Resolving deltas: 18% (24512/134687) Resolving deltas: 18% (24548/134687) Resolving deltas: 18% (24794/134687) Resolving deltas: 18% (25472/134687) Resolving deltas: 18% (25488/134687) Resolving deltas: 18% (25507/134687) Resolving deltas: 18% (25538/134687) Resolving deltas: 18% (25554/134687) Resolving deltas: 19% (25591/134687) Resolving deltas: 19% (25594/134687) Resolving deltas: 19% (25623/134687) Resolving deltas: 19% (25676/134687) Resolving deltas: 19% (25695/134687) Resolving deltas: 19% (26082/134687) Resolving deltas: 19% (26319/134687) Resolving deltas: 19% (26584/134687) Resolving deltas: 19% (26839/134687) Resolving deltas: 20% (26938/134687) Resolving deltas: 20% (27111/134687) Resolving deltas: 20% (27129/134687) Resolving deltas: 20% (27148/134687) Resolving deltas: 20% (27160/134687) Resolving deltas: 20% (27177/134687) Resolving deltas: 20% (27209/134687) Resolving deltas: 21% (28285/134687) Resolving deltas: 21% (28910/134687) Resolving deltas: 21% (29418/134687) Resolving deltas: 22% (29632/134687) Resolving deltas: 22% (29895/134687) Resolving deltas: 22% (29927/134687) Resolving deltas: 22% (29961/134687) Resolving deltas: 22% (29992/134687) Resolving deltas: 22% (30365/134687) Resolving deltas: 22% (30475/134687) Resolving deltas: 22% (30485/134687) Resolving deltas: 22% (30497/134687) Resolving deltas: 22% (30846/134687) Resolving deltas: 23% (30979/134687) Resolving deltas: 23% (32177/134687) Resolving deltas: 24% (32325/134687) Resolving deltas: 24% (32954/134687) Resolving deltas: 25% (33672/134687) Resolving deltas: 25% (34608/134687) Resolving deltas: 26% (35019/134687) Resolving deltas: 26% (35109/134687) Resolving deltas: 26% (35661/134687) Resolving deltas: 26% (36020/134687) Resolving deltas: 26% (36154/134687) Resolving deltas: 27% (36366/134687) Resolving deltas: 27% (36380/134687) Resolving deltas: 27% (36534/134687) Resolving deltas: 27% (36688/134687) Resolving deltas: 27% (36739/134687) Resolving deltas: 27% (36788/134687) Resolving deltas: 27% (36803/134687) Resolving deltas: 27% (36818/134687) Resolving deltas: 27% (36909/134687) Resolving deltas: 27% (37122/134687) Resolving deltas: 27% (37279/134687) Resolving deltas: 28% (37713/134687) Resolving deltas: 28% (38059/134687) Resolving deltas: 28% (38334/134687) Resolving deltas: 28% (38355/134687) Resolving deltas: 28% (38381/134687) Resolving deltas: 28% (38404/134687) Resolving deltas: 28% (38423/134687) Resolving deltas: 28% (38443/134687) Resolving deltas: 28% (38463/134687) Resolving deltas: 28% (38488/134687) Resolving deltas: 28% (38507/134687) Resolving deltas: 29% (39060/134687) Resolving deltas: 29% (39282/134687) Resolving deltas: 29% (39460/134687) Resolving deltas: 29% (39547/134687) Resolving deltas: 29% (39631/134687) Resolving deltas: 29% (39996/134687) Resolving deltas: 29% (40052/134687) Resolving deltas: 29% (40084/134687) Resolving deltas: 29% (40122/134687) Resolving deltas: 29% (40167/134687) Resolving deltas: 29% (40184/134687) Resolving deltas: 29% (40201/134687) Resolving deltas: 29% (40218/134687) Resolving deltas: 29% (40237/134687) Resolving deltas: 29% (40265/134687) Resolving deltas: 29% (40288/134687) Resolving deltas: 29% (40316/134687) Resolving deltas: 29% (40341/134687) Resolving deltas: 29% (40361/134687) Resolving deltas: 29% (40382/134687) Resolving deltas: 30% (40407/134687) Resolving deltas: 30% (40432/134687) Resolving deltas: 30% (40454/134687) Resolving deltas: 30% (40479/134687) Resolving deltas: 30% (40504/134687) Resolving deltas: 30% (40533/134687) Resolving deltas: 30% (40565/134687) Resolving deltas: 30% (40600/134687) Resolving deltas: 30% (40640/134687) Resolving deltas: 30% (40664/134687) Resolving deltas: 30% (40681/134687) Resolving deltas: 30% (40705/134687) Resolving deltas: 30% (40814/134687) Resolving deltas: 31% (41753/134687) Resolving deltas: 31% (42268/134687) Resolving deltas: 32% (43100/134687) Resolving deltas: 33% (44447/134687) Resolving deltas: 33% (44969/134687) Resolving deltas: 34% (45794/134687) Resolving deltas: 34% (47135/134687) Resolving deltas: 35% (47141/134687) Resolving deltas: 35% (47675/134687) Resolving deltas: 35% (47691/134687) Resolving deltas: 35% (47708/134687) Resolving deltas: 35% (47769/134687) Resolving deltas: 36% (48488/134687) Resolving deltas: 36% (49305/134687) Resolving deltas: 36% (49502/134687) Resolving deltas: 36% (49786/134687) Resolving deltas: 37% (49835/134687) Resolving deltas: 37% (50282/134687) Resolving deltas: 38% (51182/134687) Resolving deltas: 38% (51360/134687) Resolving deltas: 38% (51824/134687) Resolving deltas: 38% (51921/134687) Resolving deltas: 38% (52004/134687) Resolving deltas: 38% (52038/134687) Resolving deltas: 38% (52071/134687) Resolving deltas: 38% (52206/134687) Resolving deltas: 39% (52528/134687) Resolving deltas: 39% (52736/134687) Resolving deltas: 39% (52953/134687) Resolving deltas: 39% (53158/134687) Resolving deltas: 39% (53377/134687) Resolving deltas: 39% (53413/134687) Resolving deltas: 39% (53460/134687) Resolving deltas: 39% (53525/134687) Resolving deltas: 40% (53875/134687) Resolving deltas: 40% (54257/134687) Resolving deltas: 40% (54674/134687) Resolving deltas: 40% (54731/134687) Resolving deltas: 40% (54849/134687) Resolving deltas: 40% (55004/134687) Resolving deltas: 40% (55132/134687) Resolving deltas: 40% (55169/134687) Resolving deltas: 40% (55203/134687) Resolving deltas: 41% (55222/134687) Resolving deltas: 41% (55242/134687) Resolving deltas: 41% (55265/134687) Resolving deltas: 41% (55284/134687) Resolving deltas: 41% (55300/134687) Resolving deltas: 41% (55316/134687) Resolving deltas: 41% (55329/134687) Resolving deltas: 41% (55333/134687) Resolving deltas: 41% (55338/134687) Resolving deltas: 41% (55342/134687) Resolving deltas: 41% (55935/134687) Resolving deltas: 41% (56172/134687) Resolving deltas: 42% (56569/134687) Resolving deltas: 42% (56571/134687) Resolving deltas: 43% (57916/134687) Resolving deltas: 43% (58403/134687) Resolving deltas: 43% (58902/134687) Resolving deltas: 43% (59117/134687) Resolving deltas: 43% (59151/134687) Resolving deltas: 43% (59258/134687) Resolving deltas: 44% (59263/134687) Resolving deltas: 44% (59327/134687) Resolving deltas: 44% (59366/134687) Resolving deltas: 44% (59391/134687) Resolving deltas: 44% (59413/134687) Resolving deltas: 45% (60610/134687) Resolving deltas: 45% (60654/134687) Resolving deltas: 45% (61059/134687) Resolving deltas: 45% (61083/134687) Resolving deltas: 45% (61109/134687) Resolving deltas: 45% (61131/134687) Resolving deltas: 46% (61957/134687) Resolving deltas: 46% (62164/134687) Resolving deltas: 47% (63303/134687) Resolving deltas: 47% (63429/134687) Resolving deltas: 47% (64200/134687) Resolving deltas: 47% (64626/134687) Resolving deltas: 48% (64650/134687) Resolving deltas: 49% (65997/134687) Resolving deltas: 49% (66317/134687) Resolving deltas: 49% (66374/134687) Resolving deltas: 50% (67344/134687) Resolving deltas: 50% (67513/134687) Resolving deltas: 50% (67535/134687) Resolving deltas: 50% (67553/134687) Resolving deltas: 50% (67576/134687) Resolving deltas: 50% (67630/134687) Resolving deltas: 51% (68691/134687) Resolving deltas: 51% (68841/134687) Resolving deltas: 51% (69932/134687) Resolving deltas: 52% (70038/134687) Resolving deltas: 52% (70298/134687) Resolving deltas: 53% (71385/134687) Resolving deltas: 53% (71572/134687) Resolving deltas: 53% (72657/134687) Resolving deltas: 53% (72665/134687) Resolving deltas: 53% (72671/134687) Resolving deltas: 54% (72731/134687) Resolving deltas: 54% (73657/134687) Resolving deltas: 55% (74078/134687) Resolving deltas: 55% (75030/134687) Resolving deltas: 56% (75425/134687) Resolving deltas: 57% (76772/134687) Resolving deltas: 57% (77641/134687) Resolving deltas: 58% (78119/134687) Resolving deltas: 58% (78559/134687) Resolving deltas: 59% (79466/134687) Resolving deltas: 60% (80813/134687) Resolving deltas: 60% (81132/134687) Resolving deltas: 61% (82160/134687) Resolving deltas: 62% (83506/134687) Resolving deltas: 62% (84375/134687) Resolving deltas: 63% (84853/134687) Resolving deltas: 64% (86200/134687) Resolving deltas: 65% (87547/134687) Resolving deltas: 65% (87736/134687) Resolving deltas: 66% (88894/134687) Resolving deltas: 67% (90241/134687) Resolving deltas: 67% (91116/134687) Resolving deltas: 68% (91588/134687) Resolving deltas: 69% (92935/134687) Resolving deltas: 70% (94281/134687) Resolving deltas: 70% (94391/134687) Resolving deltas: 71% (95628/134687) Resolving deltas: 71% (95839/134687) Resolving deltas: 71% (96316/134687) Resolving deltas: 71% (96933/134687) Resolving deltas: 72% (96975/134687) Resolving deltas: 73% (98322/134687) Resolving deltas: 73% (98678/134687) Resolving deltas: 74% (99669/134687) Resolving deltas: 74% (100085/134687) Resolving deltas: 75% (101016/134687) Resolving deltas: 75% (101436/134687) Resolving deltas: 76% (102363/134687) Resolving deltas: 76% (103614/134687) Resolving deltas: 77% (103709/134687) Resolving deltas: 78% (105056/134687) Resolving deltas: 78% (105319/134687) Resolving deltas: 79% (106403/134687) Resolving deltas: 79% (107412/134687) Resolving deltas: 80% (107750/134687) Resolving deltas: 80% (108763/134687) Resolving deltas: 81% (109097/134687) Resolving deltas: 81% (110055/134687) Resolving deltas: 82% (110444/134687) Resolving deltas: 83% (111791/134687) Resolving deltas: 83% (111928/134687) Resolving deltas: 83% (112250/134687) Resolving deltas: 83% (113091/134687) Resolving deltas: 84% (113138/134687) Resolving deltas: 84% (114378/134687) Resolving deltas: 85% (114484/134687) Resolving deltas: 85% (115063/134687) Resolving deltas: 85% (115354/134687) Resolving deltas: 85% (115745/134687) Resolving deltas: 86% (115831/134687) Resolving deltas: 86% (116079/134687) Resolving deltas: 86% (116400/134687) Resolving deltas: 86% (116522/134687) Resolving deltas: 86% (116640/134687) Resolving deltas: 86% (116760/134687) Resolving deltas: 86% (116885/134687) Resolving deltas: 86% (117016/134687) Resolving deltas: 86% (117152/134687) Resolving deltas: 87% (117178/134687) Resolving deltas: 87% (117295/134687) Resolving deltas: 87% (117458/134687) Resolving deltas: 87% (117630/134687) Resolving deltas: 87% (117808/134687) Resolving deltas: 87% (118002/134687) Resolving deltas: 87% (118200/134687) Resolving deltas: 87% (118416/134687) Resolving deltas: 88% (118525/134687) Resolving deltas: 88% (118659/134687) Resolving deltas: 88% (118946/134687) Resolving deltas: 88% (119308/134687) Resolving deltas: 89% (119872/134687) Resolving deltas: 89% (119906/134687) Resolving deltas: 89% (120639/134687) Resolving deltas: 89% (120681/134687) Resolving deltas: 89% (120725/134687) Resolving deltas: 89% (120771/134687) Resolving deltas: 89% (120814/134687) Resolving deltas: 89% (120857/134687) Resolving deltas: 89% (120900/134687) Resolving deltas: 89% (120943/134687) Resolving deltas: 89% (120986/134687) Resolving deltas: 89% (121030/134687) Resolving deltas: 89% (121077/134687) Resolving deltas: 89% (121125/134687) Resolving deltas: 89% (121172/134687) Resolving deltas: 90% (121219/134687) Resolving deltas: 90% (121220/134687) Resolving deltas: 90% (121264/134687) Resolving deltas: 90% (121311/134687) Resolving deltas: 90% (121356/134687) Resolving deltas: 90% (121401/134687) Resolving deltas: 90% (121447/134687) Resolving deltas: 90% (121496/134687) Resolving deltas: 90% (121546/134687) Resolving deltas: 90% (121597/134687) Resolving deltas: 90% (121648/134687) Resolving deltas: 90% (121697/134687) Resolving deltas: 90% (121744/134687) Resolving deltas: 90% (121792/134687) Resolving deltas: 90% (121839/134687) Resolving deltas: 90% (121887/134687) Resolving deltas: 90% (121936/134687) Resolving deltas: 90% (121988/134687) Resolving deltas: 90% (122039/134687) Resolving deltas: 90% (122093/134687) Resolving deltas: 90% (122147/134687) Resolving deltas: 90% (122201/134687) Resolving deltas: 90% (122250/134687) Resolving deltas: 90% (122300/134687) Resolving deltas: 90% (122350/134687) Resolving deltas: 90% (122401/134687) Resolving deltas: 90% (122453/134687) Resolving deltas: 90% (122508/134687) Resolving deltas: 90% (122563/134687) Resolving deltas: 91% (122566/134687) Resolving deltas: 91% (122619/134687) Resolving deltas: 91% (122674/134687) Resolving deltas: 91% (122729/134687) Resolving deltas: 91% (122781/134687) Resolving deltas: 91% (122834/134687) Resolving deltas: 91% (122887/134687) Resolving deltas: 91% (122942/134687) Resolving deltas: 91% (122998/134687) Resolving deltas: 91% (123057/134687) Resolving deltas: 91% (123116/134687) Resolving deltas: 91% (123172/134687) Resolving deltas: 91% (123238/134687) Resolving deltas: 91% (123295/134687) Resolving deltas: 91% (123351/134687) Resolving deltas: 91% (123408/134687) Resolving deltas: 91% (123465/134687) Resolving deltas: 91% (123543/134687) Resolving deltas: 91% (123602/134687) Resolving deltas: 91% (123661/134687) Resolving deltas: 91% (123725/134687) Resolving deltas: 91% (123791/134687) Resolving deltas: 91% (123855/134687) Resolving deltas: 92% (123913/134687) Resolving deltas: 92% (123922/134687) Resolving deltas: 92% (123984/134687) Resolving deltas: 92% (124046/134687) Resolving deltas: 92% (124108/134687) Resolving deltas: 92% (124171/134687) Resolving deltas: 92% (124235/134687) Resolving deltas: 92% (124300/134687) Resolving deltas: 92% (124369/134687) Resolving deltas: 92% (124441/134687) Resolving deltas: 92% (124513/134687) Resolving deltas: 92% (124586/134687) Resolving deltas: 92% (124654/134687) Resolving deltas: 92% (124723/134687) Resolving deltas: 92% (124792/134687) Resolving deltas: 92% (124863/134687) Resolving deltas: 92% (124936/134687) Resolving deltas: 92% (125011/134687) Resolving deltas: 92% (125087/134687) Resolving deltas: 92% (125167/134687) Resolving deltas: 92% (125247/134687) Resolving deltas: 93% (125259/134687) Resolving deltas: 93% (125321/134687) Resolving deltas: 93% (125396/134687) Resolving deltas: 93% (125473/134687) Resolving deltas: 93% (125551/134687) Resolving deltas: 93% (125645/134687) Resolving deltas: 93% (125726/134687) Resolving deltas: 93% (125813/134687) Resolving deltas: 93% (125900/134687) Resolving deltas: 93% (125992/134687) Resolving deltas: 93% (126085/134687) Resolving deltas: 93% (126182/134687) Resolving deltas: 93% (126271/134687) Resolving deltas: 93% (126363/134687) Resolving deltas: 93% (126455/134687) Resolving deltas: 93% (126551/134687) Resolving deltas: 94% (126606/134687) Resolving deltas: 94% (126648/134687) Resolving deltas: 94% (126756/134687) Resolving deltas: 94% (126867/134687) Resolving deltas: 94% (126979/134687) Resolving deltas: 94% (127086/134687) Resolving deltas: 94% (127201/134687) Resolving deltas: 94% (127316/134687) Resolving deltas: 94% (127437/134687) Resolving deltas: 94% (127557/134687) Resolving deltas: 94% (127681/134687) Resolving deltas: 94% (127814/134687) Resolving deltas: 95% (127953/134687) Resolving deltas: 95% (128105/134687) Resolving deltas: 95% (128265/134687) Resolving deltas: 95% (128424/134687) Resolving deltas: 95% (128598/134687) Resolving deltas: 95% (128773/134687) Resolving deltas: 95% (128961/134687) Resolving deltas: 95% (129165/134687) Resolving deltas: 96% (129300/134687) Resolving deltas: 96% (129395/134687) Resolving deltas: 96% (129661/134687) Resolving deltas: 96% (129984/134687) Resolving deltas: 96% (130463/134687) Resolving deltas: 97% (130647/134687) Resolving deltas: 97% (130945/134687) Resolving deltas: 97% (131015/134687) Resolving deltas: 97% (131021/134687) Resolving deltas: 97% (131227/134687) Resolving deltas: 97% (131230/134687) Resolving deltas: 97% (131234/134687) Resolving deltas: 97% (131252/134687) Resolving deltas: 97% (131747/134687) Resolving deltas: 97% (131877/134687) Resolving deltas: 97% (131908/134687) Resolving deltas: 97% (131991/134687) Resolving deltas: 98% (131994/134687) Resolving deltas: 98% (132380/134687) Resolving deltas: 98% (132642/134687) Resolving deltas: 98% (132978/134687) Resolving deltas: 99% (133341/134687) Resolving deltas: 99% (133702/134687) Resolving deltas: 99% (134467/134687) Resolving deltas: 99% (134480/134687) Resolving deltas: 99% (134495/134687) Resolving deltas: 99% (134573/134687) Resolving deltas: 100% (134687/134687) Resolving deltas: 100% (134687/134687), done. ==>(B Validating source files with sha512sums...(B langgraph ... Passed ]3008;end=b64b51be4b4146f2a79eac0668ce87a9\]3008;start=0db98c29f0f744289f650356389b4eb9;user=root;hostname=blacephalon.felixc.at;machineid=72144a64db6f4720ade5ccd1e3c98c82;bootid=6041f8794d434adca4ce2f34a952bd8e;pid=3649672;pidfdid=7843560;comm=systemd-nspawn;container=arch-nspawn-3649672;type=container\]11;?\]2;🔵 Container arch-nspawn-3649672 on blacephalon.felixc.at\]3008;start=b0daeac83c4d46f69e1b32ab7eaaa5fd;user=root;hostname=arch-nspawn-3649672;machineid=d92f3269a8f64291aea833a0be5a7690;bootid=b560aece31124a5b86859b3abf8ce2b5;pid=14;pidfdid=7843845;comm=sudo;targetuser=builduser;type=session\==>(B Making package: python-langgraph 1.2.11-1 (Thu Sep 10 17:31:12 2026)(B ==>(B Checking runtime dependencies...(B ==>(B Installing missing dependencies...(B ]3008;start=c062e97eda624aacab91d7e9cf26666d;user=builduser;hostname=arch-nspawn-3649672;machineid=d92f3269a8f64291aea833a0be5a7690;bootid=b560aece31124a5b86859b3abf8ce2b5;pid=887;pidfdid=7844836;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (35) New Version Net Change Download Size extra/libyaml 0.2.5-3 0.16 MiB extra/python-annotated-types 0.8.0-1 0.12 MiB 0.02 MiB extra/python-anyio 4.15.1-1 2.24 MiB 0.31 MiB extra/python-certifi 2026.07.22-1 0.02 MiB extra/python-charset-normalizer 3.5.1-1 0.63 MiB extra/python-distro 1.9.0-4 0.20 MiB extra/python-h11 0.16.0-2 0.29 MiB 0.06 MiB extra/python-httpcore 1.0.9-3 1.04 MiB 0.12 MiB extra/python-httpx 0.28.1-7 2.83 MiB 0.37 MiB extra/python-idna 3.19-1 0.66 MiB extra/python-jsonpatch 1.33-6 0.11 MiB 0.03 MiB extra/python-jsonpointer 3.1.1-1 0.04 MiB 0.01 MiB extra/python-langchain-protocol 0.0.19-1 0.09 MiB 0.02 MiB extra/python-langsmith 0.11.2-1.1 9.97 MiB 1.30 MiB extra/python-orjson 3.12.0-1 0.68 MiB 0.26 MiB extra/python-ormsgpack 1.12.2-1 0.43 MiB 0.19 MiB extra/python-packaging 26.3-1 1.58 MiB extra/python-pydantic-core 3:2.46.5-1 5.35 MiB 1.67 MiB extra/python-requests 2.34.2-1 0.76 MiB extra/python-requests-toolbelt 1.0.0-6 0.44 MiB 0.08 MiB extra/python-sniffio 1.3.1-5 0.04 MiB 0.01 MiB extra/python-tenacity 9.2.0-1 0.38 MiB 0.06 MiB extra/python-typing-inspection 0.4.4-1 0.13 MiB 0.03 MiB extra/python-urllib3 2.6.3-1 1.44 MiB extra/python-uuid-utils 0.17.1-1 0.69 MiB 0.26 MiB extra/python-websockets 16.1.1-1 2.02 MiB 0.28 MiB extra/python-yaml 6.0.3-2 0.93 MiB extra/python-zstandard 0.25.0-3 1.45 MiB 0.45 MiB extra/python-langchain-core 1.6.2-1 7.83 MiB 1.03 MiB extra/python-langgraph-checkpoint 4.2.0-1 0.69 MiB 0.11 MiB extra/python-langgraph-prebuilt 1.1.0-1 0.44 MiB 0.08 MiB extra/python-langgraph-sdk 0.4.4-1 2.25 MiB 0.25 MiB extra/python-pydantic 2.13.5-1 6.05 MiB 0.87 MiB extra/python-typing_extensions 4.16.0-1 0.53 MiB extra/python-xxhash 4.0.1-1 0.08 MiB 0.02 MiB Total Download Size: 7.93 MiB Total Installed Size: 52.56 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pydantic-core-3:2.46.5-1-riscv64 downloading... python-langsmith-0.11.2-1.1-any downloading... python-langchain-core-1.6.2-1-any downloading... python-pydantic-2.13.5-1-any downloading... python-zstandard-0.25.0-3-riscv64 downloading... python-httpx-0.28.1-7-any downloading... python-anyio-4.15.1-1-any downloading... python-websockets-16.1.1-1-riscv64 downloading... python-uuid-utils-0.17.1-1-riscv64 downloading... python-orjson-3.12.0-1-riscv64 downloading... python-langgraph-sdk-0.4.4-1-any downloading... python-ormsgpack-1.12.2-1-riscv64 downloading... python-httpcore-1.0.9-3-any downloading... python-langgraph-checkpoint-4.2.0-1-any downloading... python-requests-toolbelt-1.0.0-6-any downloading... python-langgraph-prebuilt-1.1.0-1-any downloading... python-tenacity-9.2.0-1-any downloading... python-h11-0.16.0-2-any downloading... python-jsonpatch-1.33-6-any downloading... python-typing-inspection-0.4.4-1-any downloading... python-xxhash-4.0.1-1-riscv64 downloading... python-annotated-types-0.8.0-1-any downloading... python-langchain-protocol-0.0.19-1-any downloading... python-sniffio-1.3.1-5-any downloading... python-jsonpointer-3.1.1-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-certifi... installing python-h11... installing python-httpcore... Optional dependencies for python-httpcore python-h2: for HTTP/2 support python-socksio: for SOCKS support python-anyio: for asyncio backend [pending] python-trio: for trio backend python-sniffio: for async support [pending] installing python-idna... installing python-anyio... Optional dependencies for python-anyio python-trio: trio backend python-outcome: trio backend python-uvloop: use uvloop for asyncio backend python-pytest: pytest plugin installing python-httpx... Optional dependencies for python-httpx python-brotli: for brotli response decompression python-brotlicffi: for brotli response decompression python-zstandard: for zstd response decompression [pending] python-h2: HTTP/2 support python-socksio: SOCKS proxy support python-click: command line client support python-rich: command line client support python-pygments: command line client support python-trio: alternative async library installing python-jsonpointer... installing python-jsonpatch... installing python-typing_extensions... installing python-langchain-protocol... installing python-distro... installing python-orjson... installing python-packaging... installing python-annotated-types... installing python-typing-inspection... installing python-pydantic-core... installing python-pydantic... Optional dependencies for python-pydantic mypy: for type validation with mypy python-dotenv: for .env file support python-email-validator: for email validation python-hypothesis: for hypothesis plugin when using legacy v1 installing python-charset-normalizer... installing python-urllib3... Optional dependencies for python-urllib3 python-brotli: Brotli support python-brotlicffi: Brotli support python-h2: HTTP/2 support python-pysocks: SOCKS support installing python-requests... Optional dependencies for python-requests python-chardet: alternative character encoding library python-pysocks: SOCKS proxy support installing python-requests-toolbelt... installing python-sniffio... installing python-uuid-utils... installing python-websockets... installing python-xxhash... installing python-zstandard... Optional dependencies for python-zstandard python-cffi installing python-langsmith... Optional dependencies for python-langsmith python-langchain-core: LangChain runnable integration support [pending] python-cachetools: LiveKit and Pipecat tracing support python-pytest: LangSmith pytest plugin support python-rich: enhanced pytest output support python-vcrpy: VCR support python-opentelemetry-api: OpenTelemetry tracing support python-opentelemetry-sdk: OpenTelemetry tracing support python-opentelemetry-exporter-otlp-proto-http: OpenTelemetry export support installing python-tenacity... Optional dependencies for python-tenacity python-tornado: for Tornado coroutines support installing libyaml... installing python-yaml... installing python-langchain-core... installing python-ormsgpack... installing python-langgraph-checkpoint... installing python-langgraph-prebuilt... installing python-langgraph-sdk... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h]3008;end=c062e97eda624aacab91d7e9cf26666d\==>(B Checking buildtime dependencies...(B ==>(B Installing missing dependencies...(B ]3008;start=f622e18c699944b3af3de6c666eb3455;user=builduser;hostname=arch-nspawn-3649672;machineid=d92f3269a8f64291aea833a0be5a7690;bootid=b560aece31124a5b86859b3abf8ce2b5;pid=1071;pidfdid=7845119;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... warning: insufficient columns available for table display Packages (39) jemalloc-1:5.3.1-3 perl-error-0.17030-3 perl-mailtools-2.22-3 perl-timedate-2.35-1 postgresql-libs-18.6-1 python-cffi-2.1.1-1 python-click-8.3.3-1 python-daiquiri-3.4.0-2 python-editables-0.6-1 python-execnet-2.1.2-3 python-fixtures-4.3.2-1 python-iniconfig-2.3.0-1 python-jinja-1:3.1.6-3.1 python-json-logger-4.1.0-1 python-markupsafe-3.0.3-1 python-pathspec-1.1.1-1 python-pluggy-1.6.0-3.1 python-psutil-7.2.2-1 python-psycopg-3.3.5-1 python-psycopg-pool-3.3.1-1 python-pycparser-3.00-1 python-pygments-2.21.0-1 python-pyproject-hooks-1.2.0-6 python-trove-classifiers-2026.6.1.19-1 python-xattr-1.3.0-1 zlib-ng-2.3.3-1 git-2.55.0-1 pifpaf-3.4.0-2 python-build-1.6.0-1 python-hatchling-1.30.1-1 python-installer-1.0.1-1 python-langgraph-checkpoint-postgres-3.1.2-1 python-pytest-1:9.1.1-1 python-pytest-mock-3.14.1-1 python-pytest-xdist-3.8.0-3 python-redis-8.1.0-1 python-syrupy-6.0.0-1 python-wheel-0.48.0-1 valkey-9.1.2-1 Total Download Size: 7.59 MiB Total Installed Size: 105.22 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... postgresql-libs-18.6-1-riscv64 downloading... valkey-9.1.2-1-riscv64 downloading... python-psycopg-3.3.5-1-riscv64 downloading... python-redis-8.1.0-1-any downloading... jemalloc-1:5.3.1-3-riscv64 downloading... python-psutil-7.2.2-1-riscv64 downloading... python-hatchling-1.30.1-1-any downloading... python-syrupy-6.0.0-1-any downloading... python-execnet-2.1.2-3-any downloading... python-pytest-xdist-3.8.0-3-any downloading... python-langgraph-checkpoint-postgres-3.1.2-1-any downloading... pifpaf-3.4.0-2-any downloading... python-psycopg-pool-3.3.1-1-any downloading... python-fixtures-4.3.2-1-any downloading... python-daiquiri-3.4.0-2-any downloading... python-xattr-1.3.0-1-riscv64 downloading... python-json-logger-4.1.0-1-any downloading... python-pytest-mock-3.14.1-1-any downloading... python-editables-0.6-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-editables... installing python-pathspec... Optional dependencies for python-pathspec python-google-re2: re2 backend installing python-pluggy... installing python-trove-classifiers... installing python-hatchling... installing python-installer... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand installing python-click... installing python-json-logger... installing python-daiquiri... installing python-fixtures... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support installing python-psutil... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext installing python-xattr... installing pifpaf... installing postgresql-libs... installing python-psycopg... installing python-psycopg-pool... installing python-langgraph-checkpoint-postgres... installing python-iniconfig... installing python-pygments... installing python-pytest... installing python-pytest-mock... installing python-execnet... installing python-pytest-xdist... Optional dependencies for python-pytest-xdist python-psutil: to use psutil for detection of the number of CPUs available [installed] python-setproctitle: to update the process title installing python-redis... Optional dependencies for python-redis python-cryptography: OCSP certificate validation python-hiredis: faster performance via hiredis python-pyopenssl: OCSP certificate validation python-requests: OCSP certificate validation [installed] installing python-syrupy... Optional dependencies for python-syrupy python-attrs: attrs serializer plugin python-pydantic: Pydantic serializer plugin [installed] installing jemalloc... Optional dependencies for jemalloc perl: for jeprof [installed] installing valkey... :: Running post-transaction hooks... (1/5) Creating system user accounts... Creating group 'git' with GID 968. Creating user 'git' (git daemon user) with UID 968 and GID 968. Creating group 'valkey' with GID 967. Creating user 'valkey' (Redis in-memory data structure store) with UID 967 and GID 967. (2/5) Creating temporary files... (3/5) Reloading system manager configuration... Skipped: Current root is not booted. (4/5) Arming ConditionNeedsUpdate... (5/5) Checking for old perl modules... [?25h]3008;end=f622e18c699944b3af3de6c666eb3455\==>(B Retrieving sources...(B ==> WARNING:(B Skipping all source file integrity checks.(B ==>(B Extracting sources...(B  ->(B Creating working copy of langgraph git repo...(B Cloning into 'langgraph'... done. Updating files: 17% (115/673) Updating files: 18% (122/673) Updating files: 19% (128/673) Updating files: 20% (135/673) Updating files: 21% (142/673) Updating files: 22% (149/673) Updating files: 23% (155/673) Updating files: 24% (162/673) Updating files: 25% (169/673) Updating files: 26% (175/673) Updating files: 27% (182/673) Updating files: 28% (189/673) Updating files: 29% (196/673) Updating files: 30% (202/673) Updating files: 31% (209/673) Updating files: 32% (216/673) Updating files: 33% (223/673) Updating files: 34% (229/673) Updating files: 35% (236/673) Updating files: 36% (243/673) Updating files: 37% (250/673) Updating files: 38% (256/673) Updating files: 39% (263/673) Updating files: 40% (270/673) Updating files: 41% (276/673) Updating files: 41% (277/673) Updating files: 42% (283/673) Updating files: 43% (290/673) Updating files: 44% (297/673) Updating files: 45% (303/673) Updating files: 46% (310/673) Updating files: 47% (317/673) Updating files: 48% (324/673) Updating files: 49% (330/673) Updating files: 50% (337/673) Updating files: 51% (344/673) Updating files: 52% (350/673) Updating files: 53% (357/673) Updating files: 54% (364/673) Updating files: 55% (371/673) Updating files: 56% (377/673) Updating files: 57% (384/673) Updating files: 58% (391/673) Updating files: 59% (398/673) Updating files: 60% (404/673) Updating files: 61% (411/673) Updating files: 62% (418/673) Updating files: 63% (424/673) Updating files: 64% (431/673) Updating files: 65% (438/673) Updating files: 66% (445/673) Updating files: 67% (451/673) Updating files: 68% (458/673) Updating files: 68% (461/673) Updating files: 69% (465/673) Updating files: 70% (472/673) Updating files: 71% (478/673) Updating files: 72% (485/673) Updating files: 73% (492/673) Updating files: 74% (499/673) Updating files: 75% (505/673) Updating files: 76% (512/673) Updating files: 77% (519/673) Updating files: 78% (525/673) Updating files: 79% (532/673) Updating files: 80% (539/673) Updating files: 81% (546/673) Updating files: 82% (552/673) Updating files: 83% (559/673) Updating files: 84% (566/673) Updating files: 85% (573/673) Updating files: 86% (579/673) Updating files: 87% (586/673) Updating files: 88% (593/673) Updating files: 89% (599/673) Updating files: 90% (606/673) Updating files: 91% (613/673) Updating files: 92% (620/673) Updating files: 93% (626/673) Updating files: 94% (633/673) Updating files: 95% (640/673) Updating files: 96% (647/673) Updating files: 97% (653/673) Updating files: 98% (660/673) Updating files: 98% (663/673) Updating files: 99% (667/673) Updating files: 100% (673/673) Updating files: 100% (673/673), done. Updating files: 69% (37/53) Updating files: 71% (38/53) Updating files: 73% (39/53) Updating files: 75% (40/53) Updating files: 77% (41/53) Updating files: 79% (42/53) Updating files: 81% (43/53) Updating files: 83% (44/53) Updating files: 84% (45/53) Updating files: 86% (46/53) Updating files: 88% (47/53) Updating files: 90% (48/53) Updating files: 92% (49/53) Updating files: 94% (50/53) Updating files: 96% (51/53) Updating files: 98% (52/53) Updating files: 100% (53/53) Updating files: 100% (53/53), done. Switched to a new branch 'makepkg' ==>(B Starting prepare()...(B ==>(B Starting build()...(B * Getting build dependencies for wheel... * Building wheel... Successfully built langgraph-1.2.11-py3-none-any.whl ==>(B Starting check()...(B ============================= test session starts ============================== platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 rootdir: /build/python-langgraph/src/langgraph/libs/langgraph configfile: pyproject.toml plugins: anyio-4.15.1, syrupy-6.0.0, langsmith-0.11.2, xdist-3.8.0, mock-3.14.1 collected 1372 items / 1 skipped tests/test_algo.py .. [ 0%] tests/test_channels.py .................................. [ 2%] tests/test_checkpoint_migration.py .......... [ 3%] tests/test_config_async.py ...... [ 3%] tests/test_delta_channel_benchmark.py s [ 3%] tests/test_delta_channel_exit_mode.py ............ [ 4%] tests/test_delta_channel_id_stability.py ... [ 4%] tests/test_delta_channel_migration.py ................ [ 6%] tests/test_delta_channel_supersteps_bound.py .... [ 6%] tests/test_delta_channel_update_state.py ........... [ 7%] tests/test_deprecation.py .................... [ 8%] tests/test_graph_callbacks.py ........... [ 9%] tests/test_interleave_arrival_order.py ............... [ 10%] tests/test_interrupt_migration.py ... [ 10%] tests/test_interruption.py ...... [ 11%] tests/test_large_cases.py ..................... [ 12%] tests/test_large_cases_async.py ........... [ 13%] tests/test_managed_values.py . [ 13%] tests/test_messages_state.py .................. [ 14%] tests/test_parent_command.py . [ 15%] tests/test_parent_command_async.py . [ 15%] tests/test_pregel.py ................................................... [ 18%] ........................................................................ [ 24%] ........................................................................ [ 29%] ................ [ 30%] tests/test_pregel_async.py .......................................FFF... [ 33%] ........................................................................ [ 38%] .................................................................... [ 43%] tests/test_pregel_debug.py .......... [ 44%] tests/test_pregel_stream_events_v3.py .................................. [ 47%] ........................................................................ [ 52%] ... [ 52%] tests/test_pydantic.py .... [ 52%] tests/test_remote_graph_v3.py .......................................... [ 55%] ...... [ 56%] tests/test_retry.py .................................................... [ 60%] ...............................................F..... [ 64%] tests/test_runnable.py ....... [ 64%] tests/test_runtime.py ................................... [ 67%] tests/test_serde_allowlist.py ............ [ 68%] tests/test_state.py .................. [ 69%] tests/test_stream_before_builtins.py ...... [ 69%] tests/test_stream_data_transformers.py ................................. [ 72%] ............. [ 73%] tests/test_stream_events_v3.py ......................................... [ 76%] ............. [ 77%] tests/test_stream_events_v3_e2e.py .................................. [ 79%] tests/test_stream_events_v3_kwarg_forwarding.py ...... [ 79%] tests/test_stream_lifecycle_transformer.py ........................... [ 81%] tests/test_stream_messages_transformer.py .............................. [ 84%] ........... [ 84%] tests/test_stream_subgraph_transformer.py ........................... [ 86%] tests/test_subgraph_persistence.py ......... [ 87%] tests/test_subgraph_persistence_async.py ......... [ 88%] tests/test_time_travel.py .............................................. [ 91%] .... [ 91%] tests/test_time_travel_async.py ........................................ [ 94%] ... [ 94%] tests/test_tool_stream_handler.py ........ [ 95%] tests/test_trace_policy.py ...... [ 95%] tests/test_tracing_interops.py s [ 96%] tests/test_type_checking.py .....s. [ 96%] tests/test_utils.py ............................................... [100%] =================================== FAILURES =================================== _________________________ test_imp_nested[memory-sync] _________________________ cls = func = . at 0x3fad6909e0> when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3.14/site-packages/_pytest/runner.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3.14/site-packages/_pytest/runner.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_runtest_call' methods = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] kwargs = {'item': }, firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0x3fae9f56a0> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3.14/site-packages/_pytest/logging.py:865: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: res = yield result = Result(res, None) except BaseException as exc: result = Result(None, exc) try: teardown.send(result) except StopIteration: pass except BaseException as e: _warn_teardown_exception(hook_name, hook_impl, e) raise else: _raise_wrapfail(teardown, "has second yield") finally: teardown.close() > return result.get_result() ^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_result(self) -> ResultType: """Get the result(s) for this hook call. If the hook was marked as a ``firstresult`` only a single value will be returned, otherwise a list of results. """ __tracebackhide__ = True exc = self._exception tb = self._traceback if exc is None: return cast(ResultType, self._result) else: > raise exc.with_traceback(tb) /usr/lib/python3.14/site-packages/pluggy/_result.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: > res = yield ^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3.14/site-packages/_pytest/runner.py:184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self) -> None: """Execute the underlying test function.""" > self.ihook.pytest_pyfunc_call(pyfuncitem=self) /usr/lib/python3.14/site-packages/_pytest/python.py:1707: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'pyfuncitem': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_pyfunc_call' methods = [>] kwargs = {'pyfuncitem': } firstresult = True def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyfuncitem = @pytest.hookimpl(tryfirst=True) def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: def run_with_hypothesis(**kwargs: Any) -> None: with get_runner(backend_name, backend_options) as runner: runner.run_test(original_func, kwargs) backend = pyfuncitem.funcargs.get("anyio_backend") if backend: backend_name, backend_options = extract_backend_and_options(backend) if hasattr(pyfuncitem.obj, "hypothesis"): # Wrap the inner test function unless it's already wrapped original_func = pyfuncitem.obj.hypothesis.inner_test if original_func.__qualname__ != run_with_hypothesis.__qualname__: if iscoroutinefunction(original_func): pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis return None if iscoroutinefunction(pyfuncitem.obj): funcargs = pyfuncitem.funcargs testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} with get_runner(backend_name, backend_options) as runner: try: > runner.run_test(pyfuncitem.obj, testargs) /usr/lib/python3.14/site-packages/anyio/pytest_plugin.py:292: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'sync'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) except Exception as exc: self._exceptions.append(exc) except OutcomeException: raise except BaseException: # A BaseException (e.g. KeyboardInterrupt, SystemExit) interrupted the event loop before # the test completed. Cancel _runner_task so it does not resume when the event # loop is re-entered during async generator fixture teardown. if self._runner_task is not None and not self._runner_task.done(): self._runner_task.cancel() self._send_stream.close() try: self.get_loop().run_until_complete(self._runner_task) except CancelledError: pass finally: self._runner_task = None raise > self._raise_async_exceptions() /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _raise_async_exceptions(self) -> None: # Re-raise any exceptions raised in asynchronous callbacks if self._exceptions: exceptions, self._exceptions = self._exceptions, [] if len(exceptions) == 1: > raise exceptions[0] /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2380: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'sync'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: > self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> future = def run_until_complete(self, future): """Run until the Future is done. If the argument is a coroutine, it is wrapped in a Task. WARNING: It would be disastrous to call run_until_complete() with the same coroutine twice -- it would wrap it in two different Tasks and that can't be good. Return the Future's result, or raise its exception. """ self._check_closed() self._check_running() new_task = not futures.isfuture(future) future = tasks.ensure_future(future, loop=self) if new_task: # An exception is raised if the future didn't complete, so there # is no need to log the "destroy pending task" message future._log_destroy_pending = False future.add_done_callback(_run_until_complete_cb) try: self.run_forever() except: if new_task and future.done() and not future.cancelled(): # The coroutine raised a BaseException. Consume the exception # to not log a warning, the caller doesn't have access to the # local task. future.exception() raise finally: future.remove_done_callback(_run_until_complete_cb) if not future.done(): raise RuntimeError('Event loop stopped before Future completed.') > return future.result() ^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/base_events.py:720: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = func = , args = () kwargs = {'async_checkpointer': , 'durability': 'sync'} async def _call_in_runner_task( self, func: Callable[P, Awaitable[T_Retval]], /, *args: P.args, **kwargs: P.kwargs, ) -> T_Retval: if not self._runner_task: self._send_stream, receive_stream = create_memory_object_stream[ tuple[Awaitable[Any], asyncio.Future] ](1) self._runner_task = self.get_loop().create_task( self._run_tests_and_fixtures(receive_stream) ) coro = func(*args, **kwargs) future: asyncio.Future[T_Retval] = self.get_loop().create_future() self._send_stream.send_nowait((coro, future)) > return await future ^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2431: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = receive_stream = MemoryObjectReceiveStream(_state=_MemoryObjectStreamState(max_buffer_size=1, buffer=deque([]), open_send_channels=1, o..._info=AsyncIOTaskInfo(id=273492204624, name='Task-23273'), item=None)}), waiting_senders=OrderedDict()), _closed=False) async def _run_tests_and_fixtures( self, receive_stream: MemoryObjectReceiveStream[ tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]] ], ) -> None: from _pytest.outcomes import OutcomeException with receive_stream, self._send_stream: async for coro, future in receive_stream: try: > retval = await coro ^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2397: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ async_checkpointer = durability = 'sync' @NEEDS_CONTEXTVARS async def test_imp_nested( async_checkpointer: BaseCheckpointSaver, durability: Durability ) -> None: async def mynode(input: list[str]) -> list[str]: return [it + "a" for it in input] builder = StateGraph(list[str]) builder.add_node(mynode) builder.add_edge(START, "mynode") add_a = builder.compile() @task def submapper(input: int) -> str: return str(input) @task async def mapper(input: int) -> str: await asyncio.sleep(input / 100) return await submapper(input) * 2 @entrypoint(checkpointer=async_checkpointer) async def graph(input: list[int]) -> list[str]: futures = [mapper(i) for i in input] mapped = await asyncio.gather(*futures) answer = interrupt("question") final = [m + answer for m in mapped] return await add_a.ainvoke(final) assert graph.get_input_jsonschema() == { "type": "array", "items": {"type": "integer"}, "title": "LangGraphInput", } assert graph.get_output_jsonschema() == { "type": "array", "items": {"type": "string"}, "title": "LangGraphOutput", } thread1 = {"configurable": {"thread_id": "1"}} > assert [c async for c in graph.astream([0, 1], thread1, durability=durability)] == [ {"submapper": "0"}, {"mapper": "00"}, {"submapper": "1"}, {"mapper": "11"}, { "__interrupt__": ( Interrupt( value="question", id=AnyStr(), ), ) }, ] E AssertionError: assert [{'submapper'...e684695f'),)}] == [{'submapper'...n', id=''),)}] E E At index 1 diff: {'submapper': '1'} != {'mapper': '00'} E Use -v to get more diff tests/test_pregel_async.py:2383: AssertionError ________________________ test_imp_nested[memory-async] _________________________ cls = func = . at 0x3fad719a60> when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3.14/site-packages/_pytest/runner.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3.14/site-packages/_pytest/runner.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_runtest_call' methods = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] kwargs = {'item': }, firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0x3fae9f56a0> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3.14/site-packages/_pytest/logging.py:865: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: res = yield result = Result(res, None) except BaseException as exc: result = Result(None, exc) try: teardown.send(result) except StopIteration: pass except BaseException as e: _warn_teardown_exception(hook_name, hook_impl, e) raise else: _raise_wrapfail(teardown, "has second yield") finally: teardown.close() > return result.get_result() ^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_result(self) -> ResultType: """Get the result(s) for this hook call. If the hook was marked as a ``firstresult`` only a single value will be returned, otherwise a list of results. """ __tracebackhide__ = True exc = self._exception tb = self._traceback if exc is None: return cast(ResultType, self._result) else: > raise exc.with_traceback(tb) /usr/lib/python3.14/site-packages/pluggy/_result.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: > res = yield ^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3.14/site-packages/_pytest/runner.py:184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self) -> None: """Execute the underlying test function.""" > self.ihook.pytest_pyfunc_call(pyfuncitem=self) /usr/lib/python3.14/site-packages/_pytest/python.py:1707: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'pyfuncitem': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_pyfunc_call' methods = [>] kwargs = {'pyfuncitem': } firstresult = True def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyfuncitem = @pytest.hookimpl(tryfirst=True) def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: def run_with_hypothesis(**kwargs: Any) -> None: with get_runner(backend_name, backend_options) as runner: runner.run_test(original_func, kwargs) backend = pyfuncitem.funcargs.get("anyio_backend") if backend: backend_name, backend_options = extract_backend_and_options(backend) if hasattr(pyfuncitem.obj, "hypothesis"): # Wrap the inner test function unless it's already wrapped original_func = pyfuncitem.obj.hypothesis.inner_test if original_func.__qualname__ != run_with_hypothesis.__qualname__: if iscoroutinefunction(original_func): pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis return None if iscoroutinefunction(pyfuncitem.obj): funcargs = pyfuncitem.funcargs testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} with get_runner(backend_name, backend_options) as runner: try: > runner.run_test(pyfuncitem.obj, testargs) /usr/lib/python3.14/site-packages/anyio/pytest_plugin.py:292: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'async'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) except Exception as exc: self._exceptions.append(exc) except OutcomeException: raise except BaseException: # A BaseException (e.g. KeyboardInterrupt, SystemExit) interrupted the event loop before # the test completed. Cancel _runner_task so it does not resume when the event # loop is re-entered during async generator fixture teardown. if self._runner_task is not None and not self._runner_task.done(): self._runner_task.cancel() self._send_stream.close() try: self.get_loop().run_until_complete(self._runner_task) except CancelledError: pass finally: self._runner_task = None raise > self._raise_async_exceptions() /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _raise_async_exceptions(self) -> None: # Re-raise any exceptions raised in asynchronous callbacks if self._exceptions: exceptions, self._exceptions = self._exceptions, [] if len(exceptions) == 1: > raise exceptions[0] /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2380: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'async'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: > self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> future = def run_until_complete(self, future): """Run until the Future is done. If the argument is a coroutine, it is wrapped in a Task. WARNING: It would be disastrous to call run_until_complete() with the same coroutine twice -- it would wrap it in two different Tasks and that can't be good. Return the Future's result, or raise its exception. """ self._check_closed() self._check_running() new_task = not futures.isfuture(future) future = tasks.ensure_future(future, loop=self) if new_task: # An exception is raised if the future didn't complete, so there # is no need to log the "destroy pending task" message future._log_destroy_pending = False future.add_done_callback(_run_until_complete_cb) try: self.run_forever() except: if new_task and future.done() and not future.cancelled(): # The coroutine raised a BaseException. Consume the exception # to not log a warning, the caller doesn't have access to the # local task. future.exception() raise finally: future.remove_done_callback(_run_until_complete_cb) if not future.done(): raise RuntimeError('Event loop stopped before Future completed.') > return future.result() ^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/base_events.py:720: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = func = , args = () kwargs = {'async_checkpointer': , 'durability': 'async'} async def _call_in_runner_task( self, func: Callable[P, Awaitable[T_Retval]], /, *args: P.args, **kwargs: P.kwargs, ) -> T_Retval: if not self._runner_task: self._send_stream, receive_stream = create_memory_object_stream[ tuple[Awaitable[Any], asyncio.Future] ](1) self._runner_task = self.get_loop().create_task( self._run_tests_and_fixtures(receive_stream) ) coro = func(*args, **kwargs) future: asyncio.Future[T_Retval] = self.get_loop().create_future() self._send_stream.send_nowait((coro, future)) > return await future ^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2431: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = receive_stream = MemoryObjectReceiveStream(_state=_MemoryObjectStreamState(max_buffer_size=1, buffer=deque([]), open_send_channels=1, o..._info=AsyncIOTaskInfo(id=273496110512, name='Task-23306'), item=None)}), waiting_senders=OrderedDict()), _closed=False) async def _run_tests_and_fixtures( self, receive_stream: MemoryObjectReceiveStream[ tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]] ], ) -> None: from _pytest.outcomes import OutcomeException with receive_stream, self._send_stream: async for coro, future in receive_stream: try: > retval = await coro ^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2397: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ async_checkpointer = durability = 'async' @NEEDS_CONTEXTVARS async def test_imp_nested( async_checkpointer: BaseCheckpointSaver, durability: Durability ) -> None: async def mynode(input: list[str]) -> list[str]: return [it + "a" for it in input] builder = StateGraph(list[str]) builder.add_node(mynode) builder.add_edge(START, "mynode") add_a = builder.compile() @task def submapper(input: int) -> str: return str(input) @task async def mapper(input: int) -> str: await asyncio.sleep(input / 100) return await submapper(input) * 2 @entrypoint(checkpointer=async_checkpointer) async def graph(input: list[int]) -> list[str]: futures = [mapper(i) for i in input] mapped = await asyncio.gather(*futures) answer = interrupt("question") final = [m + answer for m in mapped] return await add_a.ainvoke(final) assert graph.get_input_jsonschema() == { "type": "array", "items": {"type": "integer"}, "title": "LangGraphInput", } assert graph.get_output_jsonschema() == { "type": "array", "items": {"type": "string"}, "title": "LangGraphOutput", } thread1 = {"configurable": {"thread_id": "1"}} > assert [c async for c in graph.astream([0, 1], thread1, durability=durability)] == [ {"submapper": "0"}, {"mapper": "00"}, {"submapper": "1"}, {"mapper": "11"}, { "__interrupt__": ( Interrupt( value="question", id=AnyStr(), ), ) }, ] E AssertionError: assert [{'submapper'...5b757ac4'),)}] == [{'submapper'...n', id=''),)}] E E At index 1 diff: {'submapper': '1'} != {'mapper': '00'} E Use -v to get more diff tests/test_pregel_async.py:2383: AssertionError _________________________ test_imp_nested[memory-exit] _________________________ cls = func = . at 0x3fad71aae0> when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3.14/site-packages/_pytest/runner.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3.14/site-packages/_pytest/runner.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_runtest_call' methods = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] kwargs = {'item': }, firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0x3fae9f56a0> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3.14/site-packages/_pytest/logging.py:865: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: res = yield result = Result(res, None) except BaseException as exc: result = Result(None, exc) try: teardown.send(result) except StopIteration: pass except BaseException as e: _warn_teardown_exception(hook_name, hook_impl, e) raise else: _raise_wrapfail(teardown, "has second yield") finally: teardown.close() > return result.get_result() ^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_result(self) -> ResultType: """Get the result(s) for this hook call. If the hook was marked as a ``firstresult`` only a single value will be returned, otherwise a list of results. """ __tracebackhide__ = True exc = self._exception tb = self._traceback if exc is None: return cast(ResultType, self._result) else: > raise exc.with_traceback(tb) /usr/lib/python3.14/site-packages/pluggy/_result.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: > res = yield ^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3.14/site-packages/_pytest/runner.py:184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self) -> None: """Execute the underlying test function.""" > self.ihook.pytest_pyfunc_call(pyfuncitem=self) /usr/lib/python3.14/site-packages/_pytest/python.py:1707: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'pyfuncitem': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_pyfunc_call' methods = [>] kwargs = {'pyfuncitem': } firstresult = True def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyfuncitem = @pytest.hookimpl(tryfirst=True) def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: def run_with_hypothesis(**kwargs: Any) -> None: with get_runner(backend_name, backend_options) as runner: runner.run_test(original_func, kwargs) backend = pyfuncitem.funcargs.get("anyio_backend") if backend: backend_name, backend_options = extract_backend_and_options(backend) if hasattr(pyfuncitem.obj, "hypothesis"): # Wrap the inner test function unless it's already wrapped original_func = pyfuncitem.obj.hypothesis.inner_test if original_func.__qualname__ != run_with_hypothesis.__qualname__: if iscoroutinefunction(original_func): pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis return None if iscoroutinefunction(pyfuncitem.obj): funcargs = pyfuncitem.funcargs testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} with get_runner(backend_name, backend_options) as runner: try: > runner.run_test(pyfuncitem.obj, testargs) /usr/lib/python3.14/site-packages/anyio/pytest_plugin.py:292: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'exit'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) except Exception as exc: self._exceptions.append(exc) except OutcomeException: raise except BaseException: # A BaseException (e.g. KeyboardInterrupt, SystemExit) interrupted the event loop before # the test completed. Cancel _runner_task so it does not resume when the event # loop is re-entered during async generator fixture teardown. if self._runner_task is not None and not self._runner_task.done(): self._runner_task.cancel() self._send_stream.close() try: self.get_loop().run_until_complete(self._runner_task) except CancelledError: pass finally: self._runner_task = None raise > self._raise_async_exceptions() /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2494: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _raise_async_exceptions(self) -> None: # Re-raise any exceptions raised in asynchronous callbacks if self._exceptions: exceptions, self._exceptions = self._exceptions, [] if len(exceptions) == 1: > raise exceptions[0] /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2380: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = test_func = kwargs = {'async_checkpointer': , 'durability': 'exit'} def run_test( self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] ) -> None: from _pytest.outcomes import OutcomeException try: > self.get_loop().run_until_complete( self._call_in_runner_task(test_func, **kwargs) ) /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> future = def run_until_complete(self, future): """Run until the Future is done. If the argument is a coroutine, it is wrapped in a Task. WARNING: It would be disastrous to call run_until_complete() with the same coroutine twice -- it would wrap it in two different Tasks and that can't be good. Return the Future's result, or raise its exception. """ self._check_closed() self._check_running() new_task = not futures.isfuture(future) future = tasks.ensure_future(future, loop=self) if new_task: # An exception is raised if the future didn't complete, so there # is no need to log the "destroy pending task" message future._log_destroy_pending = False future.add_done_callback(_run_until_complete_cb) try: self.run_forever() except: if new_task and future.done() and not future.cancelled(): # The coroutine raised a BaseException. Consume the exception # to not log a warning, the caller doesn't have access to the # local task. future.exception() raise finally: future.remove_done_callback(_run_until_complete_cb) if not future.done(): raise RuntimeError('Event loop stopped before Future completed.') > return future.result() ^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/base_events.py:720: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = func = , args = () kwargs = {'async_checkpointer': , 'durability': 'exit'} async def _call_in_runner_task( self, func: Callable[P, Awaitable[T_Retval]], /, *args: P.args, **kwargs: P.kwargs, ) -> T_Retval: if not self._runner_task: self._send_stream, receive_stream = create_memory_object_stream[ tuple[Awaitable[Any], asyncio.Future] ](1) self._runner_task = self.get_loop().create_task( self._run_tests_and_fixtures(receive_stream) ) coro = func(*args, **kwargs) future: asyncio.Future[T_Retval] = self.get_loop().create_future() self._send_stream.send_nowait((coro, future)) > return await future ^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2431: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = receive_stream = MemoryObjectReceiveStream(_state=_MemoryObjectStreamState(max_buffer_size=1, buffer=deque([]), open_send_channels=1, o..._info=AsyncIOTaskInfo(id=273496112528, name='Task-23339'), item=None)}), waiting_senders=OrderedDict()), _closed=False) async def _run_tests_and_fixtures( self, receive_stream: MemoryObjectReceiveStream[ tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]] ], ) -> None: from _pytest.outcomes import OutcomeException with receive_stream, self._send_stream: async for coro, future in receive_stream: try: > retval = await coro ^^^^^^^^^^ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2397: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ async_checkpointer = durability = 'exit' @NEEDS_CONTEXTVARS async def test_imp_nested( async_checkpointer: BaseCheckpointSaver, durability: Durability ) -> None: async def mynode(input: list[str]) -> list[str]: return [it + "a" for it in input] builder = StateGraph(list[str]) builder.add_node(mynode) builder.add_edge(START, "mynode") add_a = builder.compile() @task def submapper(input: int) -> str: return str(input) @task async def mapper(input: int) -> str: await asyncio.sleep(input / 100) return await submapper(input) * 2 @entrypoint(checkpointer=async_checkpointer) async def graph(input: list[int]) -> list[str]: futures = [mapper(i) for i in input] mapped = await asyncio.gather(*futures) answer = interrupt("question") final = [m + answer for m in mapped] return await add_a.ainvoke(final) assert graph.get_input_jsonschema() == { "type": "array", "items": {"type": "integer"}, "title": "LangGraphInput", } assert graph.get_output_jsonschema() == { "type": "array", "items": {"type": "string"}, "title": "LangGraphOutput", } thread1 = {"configurable": {"thread_id": "1"}} > assert [c async for c in graph.astream([0, 1], thread1, durability=durability)] == [ {"submapper": "0"}, {"mapper": "00"}, {"submapper": "1"}, {"mapper": "11"}, { "__interrupt__": ( Interrupt( value="question", id=AnyStr(), ), ) }, ] E AssertionError: assert [{'submapper'...ff379e5a'),)}] == [{'submapper'...n', id=''),)}] E E At index 1 diff: {'submapper': '1'} != {'mapper': '00'} E Use -v to get more diff tests/test_pregel_async.py:2383: AssertionError ____________ test_error_handler_resumes_after_crash_multiple_nodes _____________ cls = func = . at 0x3fabfae400> when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3.14/site-packages/_pytest/runner.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3.14/site-packages/_pytest/runner.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_runtest_call' methods = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] kwargs = {'item': } firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0x3fae9f56a0> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3.14/site-packages/_pytest/logging.py:865: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: res = yield result = Result(res, None) except BaseException as exc: result = Result(None, exc) try: teardown.send(result) except StopIteration: pass except BaseException as e: _warn_teardown_exception(hook_name, hook_impl, e) raise else: _raise_wrapfail(teardown, "has second yield") finally: teardown.close() > return result.get_result() ^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def get_result(self) -> ResultType: """Get the result(s) for this hook call. If the hook was marked as a ``firstresult`` only a single value will be returned, otherwise a list of results. """ __tracebackhide__ = True exc = self._exception tb = self._traceback if exc is None: return cast(ResultType, self._result) else: > raise exc.with_traceback(tb) /usr/lib/python3.14/site-packages/pluggy/_result.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_impl = > hook_name = 'pytest_runtest_call' args = [] def run_old_style_hookwrapper( hook_impl: HookImpl, hook_name: str, args: Sequence[object] ) -> Teardown: """ backward compatibility wrapper to run a old style hookwrapper as a wrapper """ teardown: Teardown = cast(Teardown, hook_impl.function(*args)) try: next(teardown) except StopIteration: _raise_wrapfail(teardown, "did not yield") try: > res = yield ^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3.14/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [> _state='suspended' _in_suspended=False> _capture_fixture=None>>, ...] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3.14/site-packages/_pytest/runner.py:184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self) -> None: """Execute the underlying test function.""" > self.ihook.pytest_pyfunc_call(pyfuncitem=self) /usr/lib/python3.14/site-packages/_pytest/python.py:1707: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'pyfuncitem': } def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0x3fb2789d30> hook_name = 'pytest_pyfunc_call' methods = [>] kwargs = {'pyfuncitem': } firstresult = True def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3.14/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_pyfunc_call' hook_impls = [>] caller_kwargs = {'pyfuncitem': } firstresult = True def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyfuncitem = @hookimpl(trylast=True) def pytest_pyfunc_call(pyfuncitem: Function) -> object | None: testfunction = pyfuncitem.obj if is_async_function(testfunction): async_fail(pyfuncitem.nodeid) funcargs = pyfuncitem.funcargs testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} > result = testfunction(**testargs) ^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/site-packages/_pytest/python.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def test_error_handler_resumes_after_crash_multiple_nodes(): """When multiple nodes fail in the same superstep and all have error handlers: - error handlers start running while other nodes may still be in-flight - resuming re-schedules each handler (not re-executes the original nodes) """ class State(TypedDict): results: Annotated[list[str], operator.add] call_count = {"a": 0, "b": 0, "handler_a": 0, "handler_b": 0} handler_a_started = threading.Event() def node_a(state: State) -> State: call_count["a"] += 1 raise RuntimeError("a failed") def node_b(state: State) -> State: call_count["b"] += 1 # Block until handler_a has started — proves the error handler runs # concurrently with in-flight nodes in the same superstep. assert handler_a_started.wait(timeout=5), "handler_a never started" raise RuntimeError("b failed") handler_should_fail = [True] def handler_a(state: State, error: NodeError) -> State: call_count["handler_a"] += 1 assert error.node == "a" assert "a failed" in str(error.error) handler_a_started.set() if handler_should_fail[0]: raise RuntimeError("handler_a crash") return {"results": [f"recovered_a:{error.node}"]} def handler_b(state: State, error: NodeError) -> State: call_count["handler_b"] += 1 assert error.node == "b" assert "b failed" in str(error.error) if handler_should_fail[0]: raise RuntimeError("handler_b crash") return {"results": [f"recovered_b:{error.node}"]} checkpointer = MemorySaver() graph = ( StateGraph(State) .add_node("a", node_a, error_handler=handler_a) .add_node("b", node_b, error_handler=handler_b) .add_edge(START, "a") .add_edge(START, "b") .compile(checkpointer=checkpointer) ) config = {"configurable": {"thread_id": "t1"}} # First invoke: node_a fails immediately -> handler_a starts (sets event) -> # node_b unblocks and fails -> handler_b starts -> both handlers crash with pytest.raises(RuntimeError): graph.invoke({"results": []}, config) assert call_count["a"] == 1 assert call_count["b"] == 1 assert call_count["handler_a"] == 1 > assert call_count["handler_b"] == 1 E assert 0 == 1 tests/test_retry.py:2809: AssertionError =============================== warnings summary =============================== tests/test_interleave_arrival_order.py::TestInterleaveArrivalOrder::test_arrival_order_not_round_robin /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_interleave_arrival_order.py:144: LangChainBetaWarning: The v3 streaming protocol on Pregel is experimental. run = GraphRunStream(None, mux, wire_pump=False) tests/test_interleave_arrival_order.py::TestInterleaveIntegration::test_interleave_values_and_messages /build/python-langgraph/src/langgraph/libs/langgraph/langgraph/pregel/main.py:3708: LangChainBetaWarning: The v3 streaming protocol on Pregel is experimental. return self._pregel_stream_v3( tests/test_large_cases.py::test_prebuilt_tool_chat /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_large_cases.py:1315: LangGraphDeprecatedSinceV10: create_react_agent has been moved to `langchain.agents`. Please update your import to `from langchain.agents import create_agent`. Deprecated in LangGraph V1.0 to be removed in V2.0. app = create_react_agent(model, tools) tests/test_large_cases.py: 20 warnings tests/test_large_cases_async.py: 9 warnings tests/test_pregel_async.py: 29 warnings tests/test_trace_policy.py: 10 warnings /build/python-langgraph/src/langgraph/libs/langgraph/tests/fake_tracer.py:58: PydanticDeprecatedSince20: The `copy` method is deprecated; use `model_copy` instead. See the docstring of `BaseModel.copy` for details about how to handle `include` and `exclude`. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.13/migration/ return run.copy( tests/test_large_cases_async.py::test_conditional_graph_state[memory] /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2397: LangChainDeprecationWarning: astream_log is deprecated. Use astream instead. retval = await coro tests/test_large_cases_async.py::test_prebuilt_tool_chat /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_large_cases_async.py:1070: LangGraphDeprecatedSinceV10: create_react_agent has been moved to `langchain.agents`. Please update your import to `from langchain.agents import create_agent`. Deprecated in LangGraph V1.0 to be removed in V2.0. app = create_react_agent(model, tools) tests/test_pregel_stream_events_v3.py::TestStreamV2Async::test_values_projection /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_pregel_stream_events_v3.py:566: LangChainBetaWarning: The v3 streaming protocol on Pregel is experimental. run = await _build_simple_graph().astream_events( tests/test_pregel_stream_events_v3.py::TestStreamV2Async::test_values_projection /build/python-langgraph/src/langgraph/libs/langgraph/langgraph/pregel/main.py:3612: LangChainBetaWarning: The v3 streaming protocol on Pregel is experimental. return AsyncGraphRunStream(graph_aiter, mux) tests/test_runnable.py::test_config_ensured_async /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_runnable.py:414: RuntimeWarning: coroutine 'test_config_ensured_async..func' was never awaited await RunnableCallable(func).ainvoke("test") Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. tests/test_stream_events_v3.py::TestV2Invoke::test_values_default /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:384: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert result["value"] == "x_a_b" tests/test_stream_events_v3.py::TestV2Invoke::test_values_default /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:385: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert result["items"] == ["a", "b"] tests/test_stream_events_v3.py::TestV2Invoke::test_invoke_v2_graph_output_interrupt_compat /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:423: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `key in result` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert INTERRUPT in result tests/test_stream_events_v3.py::TestV2Invoke::test_invoke_v2_graph_output_interrupt_compat /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:424: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert result[INTERRUPT] == result.interrupts tests/test_stream_events_v3.py::TestV2Invoke::test_invoke_v2_graph_output_interrupt_compat /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:425: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert len(result[INTERRUPT]) > 0 tests/test_stream_events_v3.py::TestV2Invoke::test_invoke_v2_graph_output_no_interrupts /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:432: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `key in result` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert INTERRUPT not in result tests/test_stream_events_v3.py::TestV2InvokeAsync::test_values_default /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:719: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert result["value"] == "x_a_b" tests/test_stream_events_v3.py::TestV2InvokeAsync::test_values_default /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:720: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `result[key]` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert result["items"] == ["a", "b"] tests/test_stream_events_v3.py::TestV2InvokeAsync::test_ainvoke_v2_graph_output_no_interrupts /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_events_v3.py:789: LangGraphDeprecatedSinceV11: Accessing GraphOutput via `key in result` is deprecated. Use `result.value` to access the output value directly, or `result.interrupts` for interrupts. Deprecated in LangGraph V1.1 to be removed in V3.0. assert INTERRUPT not in result tests/test_stream_messages_transformer.py::TestEndToEnd::test_async_node_calling_astream_v2 /build/python-langgraph/src/langgraph/libs/langgraph/tests/test_stream_messages_transformer.py:594: LangChainBetaWarning: The method `BaseChatModel._achat_model_stream_v3` is in beta. It is actively being worked on, so the API may change. stream = await model.astream_events(state["messages"], version="v3") -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html --------------------------- snapshot report summary ---------------------------- 58 snapshots passed. ============================= slowest 5 durations ============================== 127.93s call tests/test_pregel_async.py::test_batch_many_processes_in_out 117.58s call tests/test_pregel.py::test_batch_many_processes_in_out 87.03s call tests/test_pregel_async.py::test_invoke_many_processes_in_out 66.55s call tests/test_pregel.py::test_invoke_many_processes_in_out 47.36s call tests/test_pregel.py::test_pregel_loop_refcount =========================== short test summary info ============================ FAILED tests/test_pregel_async.py::test_imp_nested[memory-sync] - AssertionEr... FAILED tests/test_pregel_async.py::test_imp_nested[memory-async] - AssertionE... FAILED tests/test_pregel_async.py::test_imp_nested[memory-exit] - AssertionEr... FAILED tests/test_retry.py::test_error_handler_resumes_after_crash_multiple_nodes ===== 4 failed, 1365 passed, 4 skipped, 86 warnings in 1719.18s (0:28:39) ====== WARNING [pifpaf.util] `psutil.Popen(pid=1353, status='terminated', exitcode=1)` is already gone, sending SIGKILL to its process group ==> ERROR:(B A failure occurred in check().(B  Aborting...(B ]3008;end=b0daeac83c4d46f69e1b32ab7eaaa5fd\[!p]104\[?7h]3008;end=0db98c29f0f744289f650356389b4eb9\==> ERROR:(B Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build(B [?12l[?25h[?12l[?25h]3008;end=0c8caff67e064e13acf7d594f7a83f95\[?12l[?25hreceiving incremental file list python-langgraph-1.2.11-1-riscv64-build.log python-langgraph-1.2.11-1-riscv64-check.log python-langgraph-1.2.11-1-riscv64-prepare.log sent 81 bytes received 21,736 bytes 8,726.80 bytes/sec total size is 208,098 speedup is 9.54