==>(B Building on delphox(B ==>(B Checking for remote environment...(B ==>(B Syncing package to remote host...(B sending incremental file list created directory packages/python-fsspec ./ .SRCINFO 2,153 100% 0.00kB/s 0:00:00 2,153 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 81 100% 79.10kB/s 0:00:00 81 100% 79.10kB/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 3,269 100% 3.12MB/s 0:00:00 3,269 100% 3.12MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 179 100% 174.80kB/s 0:00:00 179 100% 174.80kB/s 0:00:00 (xfr#5, to-chk=3/9) python-fsspec-2026.9.0-1.log 858 100% 837.89kB/s 0:00:00 858 100% 837.89kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 3,537 bytes received 189 bytes 2,484.00 bytes/sec total size is 6,544 speedup is 1.76 ==>(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-fsspec(B  ->(B repo: extra(B  ->(B arch: riscv64(B  ->(B worker: felix-0(B ==>(B Building python-fsspec for [extra] (riscv64)(B ]3008;start=dc1962aeef764760af86cf7e6e232f14;user=root;hostname=delphox.felixc.at;machineid=3d7c30bf6b8c4473ac5c4b58ccf9ab2b;bootid=b60bdcea6aa941fea19b42a0616b648f;pid=3864476;comm=systemd-nspawn;container=arch-nspawn-3864476;type=container\]11;?\]2;🔵 Container arch-nspawn-3864476 on delphox.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104\[?7h]3008;end=dc1962aeef764760af86cf7e6e232f14\==>(B Building in chroot for [extra] (riscv64)...(B ==>(B Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...(Bdone(B ==>(B Making package: python-fsspec 2026.9.0-1 (Sat Sep 26 07:01:43 2026)(B ==>(B Retrieving sources...(B  ->(B Cloning python-fsspec git repo...(B Cloning into bare repository '/home/felix/packages/python-fsspec/python-fsspec'... remote: Enumerating objects: 25106, done. remote: Counting objects: 0% (1/580) remote: Counting objects: 1% (6/580) remote: Counting objects: 2% (12/580) remote: Counting objects: 3% (18/580) remote: Counting objects: 4% (24/580) remote: Counting objects: 5% (29/580) remote: Counting objects: 6% (35/580) remote: Counting objects: 7% (41/580) remote: Counting objects: 8% (47/580) remote: Counting objects: 9% (53/580) remote: Counting objects: 10% (58/580) remote: Counting objects: 11% (64/580) remote: Counting objects: 12% (70/580) remote: Counting objects: 13% (76/580) remote: Counting objects: 14% (82/580) remote: Counting objects: 15% (87/580) remote: Counting objects: 16% (93/580) remote: Counting objects: 17% (99/580) remote: Counting objects: 18% (105/580) remote: Counting objects: 19% (111/580) remote: Counting objects: 20% (116/580) remote: Counting objects: 21% (122/580) remote: Counting objects: 22% (128/580) remote: Counting objects: 23% (134/580) remote: Counting objects: 24% (140/580) remote: Counting objects: 25% (145/580) remote: Counting objects: 26% (151/580) remote: Counting objects: 27% (157/580) remote: Counting objects: 28% (163/580) remote: Counting objects: 29% (169/580) remote: Counting objects: 30% (174/580) remote: Counting objects: 31% (180/580) remote: Counting objects: 32% (186/580) remote: Counting objects: 33% (192/580) remote: Counting objects: 34% (198/580) remote: Counting objects: 35% (203/580) remote: Counting objects: 36% (209/580) remote: Counting objects: 37% (215/580) remote: Counting objects: 38% (221/580) remote: Counting objects: 39% (227/580) remote: Counting objects: 40% (232/580) remote: Counting objects: 41% (238/580) remote: Counting objects: 42% (244/580) remote: Counting objects: 43% (250/580) remote: Counting objects: 44% (256/580) remote: Counting objects: 45% (261/580) remote: Counting objects: 46% (267/580) remote: Counting objects: 47% (273/580) remote: Counting objects: 48% (279/580) remote: Counting objects: 49% (285/580) remote: Counting objects: 50% (290/580) remote: Counting objects: 51% (296/580) remote: Counting objects: 52% (302/580) remote: Counting objects: 53% (308/580) remote: Counting objects: 54% (314/580) remote: Counting objects: 55% (319/580) remote: Counting objects: 56% (325/580) remote: Counting objects: 57% (331/580) remote: Counting objects: 58% (337/580) remote: Counting objects: 59% (343/580) remote: Counting objects: 60% (348/580) remote: Counting objects: 61% (354/580) remote: Counting objects: 62% (360/580) remote: Counting objects: 63% (366/580) remote: Counting objects: 64% (372/580) remote: Counting objects: 65% (377/580) remote: Counting objects: 66% (383/580) remote: Counting objects: 67% (389/580) remote: Counting objects: 68% (395/580) remote: Counting objects: 69% (401/580) remote: Counting objects: 70% (406/580) remote: Counting objects: 71% (412/580) remote: Counting objects: 72% (418/580) remote: Counting objects: 73% (424/580) remote: Counting objects: 74% (430/580) remote: Counting objects: 75% (435/580) remote: Counting objects: 76% (441/580) remote: Counting objects: 77% (447/580) remote: Counting objects: 78% (453/580) remote: Counting objects: 79% (459/580) remote: Counting objects: 80% (464/580) remote: Counting objects: 81% (470/580) remote: Counting objects: 82% (476/580) remote: Counting objects: 83% (482/580) remote: Counting objects: 84% (488/580) remote: Counting objects: 85% (493/580) remote: Counting objects: 86% (499/580) remote: Counting objects: 87% (505/580) remote: Counting objects: 88% (511/580) remote: Counting objects: 89% (517/580) remote: Counting objects: 90% (522/580) remote: Counting objects: 91% (528/580) remote: Counting objects: 92% (534/580) remote: Counting objects: 93% (540/580) remote: Counting objects: 94% (546/580) remote: Counting objects: 95% (551/580) remote: Counting objects: 96% (557/580) remote: Counting objects: 97% (563/580) remote: Counting objects: 98% (569/580) remote: Counting objects: 99% (575/580) remote: Counting objects: 100% (580/580) remote: Counting objects: 100% (580/580), done. remote: Compressing objects: 0% (1/313) remote: Compressing objects: 1% (4/313) remote: Compressing objects: 2% (7/313) remote: Compressing objects: 3% (10/313) remote: Compressing objects: 4% (13/313) remote: Compressing objects: 5% (16/313) remote: Compressing objects: 6% (19/313) remote: Compressing objects: 7% (22/313) remote: Compressing objects: 8% (26/313) remote: Compressing objects: 9% (29/313) remote: Compressing objects: 10% (32/313) remote: Compressing objects: 11% (35/313) remote: Compressing objects: 12% (38/313) remote: Compressing objects: 13% (41/313) remote: Compressing objects: 14% (44/313) remote: Compressing objects: 15% (47/313) remote: Compressing objects: 16% (51/313) remote: Compressing objects: 17% (54/313) remote: Compressing objects: 18% (57/313) remote: Compressing objects: 19% (60/313) remote: Compressing objects: 20% (63/313) remote: Compressing objects: 21% (66/313) remote: Compressing objects: 22% (69/313) remote: Compressing objects: 23% (72/313) remote: Compressing objects: 24% (76/313) remote: Compressing objects: 25% (79/313) remote: Compressing objects: 26% (82/313) remote: Compressing objects: 27% (85/313) remote: Compressing objects: 28% (88/313) remote: Compressing objects: 29% (91/313) remote: Compressing objects: 30% (94/313) remote: Compressing objects: 31% (98/313) remote: Compressing objects: 32% (101/313) remote: Compressing objects: 33% (104/313) remote: Compressing objects: 34% (107/313) remote: Compressing objects: 35% (110/313) remote: Compressing objects: 36% (113/313) remote: Compressing objects: 37% (116/313) remote: Compressing objects: 38% (119/313) remote: Compressing objects: 39% (123/313) remote: Compressing objects: 40% (126/313) remote: Compressing objects: 41% (129/313) remote: Compressing objects: 42% (132/313) remote: Compressing objects: 43% (135/313) remote: Compressing objects: 44% (138/313) remote: Compressing objects: 45% (141/313) remote: Compressing objects: 46% (144/313) remote: Compressing objects: 47% (148/313) remote: Compressing objects: 48% (151/313) remote: Compressing objects: 49% (154/313) remote: Compressing objects: 50% (157/313) remote: Compressing objects: 51% (160/313) remote: Compressing objects: 52% (163/313) remote: Compressing objects: 53% (166/313) remote: Compressing objects: 54% (170/313) remote: Compressing objects: 55% (173/313) remote: Compressing objects: 56% (176/313) remote: Compressing objects: 57% (179/313) remote: Compressing objects: 58% (182/313) remote: Compressing objects: 59% (185/313) remote: Compressing objects: 60% (188/313) remote: Compressing objects: 61% (191/313) remote: Compressing objects: 62% (195/313) remote: Compressing objects: 63% (198/313) remote: Compressing objects: 64% (201/313) remote: Compressing objects: 65% (204/313) remote: Compressing objects: 66% (207/313) remote: Compressing objects: 67% (210/313) remote: Compressing objects: 68% (213/313) remote: Compressing objects: 69% (216/313) remote: Compressing objects: 70% (220/313) remote: Compressing objects: 71% (223/313) remote: Compressing objects: 72% (226/313) remote: Compressing objects: 73% (229/313) remote: Compressing objects: 74% (232/313) remote: Compressing objects: 75% (235/313) remote: Compressing objects: 76% (238/313) remote: Compressing objects: 77% (242/313) remote: Compressing objects: 78% (245/313) remote: Compressing objects: 79% (248/313) remote: Compressing objects: 80% (251/313) remote: Compressing objects: 81% (254/313) remote: Compressing objects: 82% (257/313) remote: Compressing objects: 83% (260/313) remote: Compressing objects: 84% (263/313) remote: Compressing objects: 85% (267/313) remote: Compressing objects: 86% (270/313) remote: Compressing objects: 87% (273/313) remote: Compressing objects: 88% (276/313) remote: Compressing objects: 89% (279/313) remote: Compressing objects: 90% (282/313) remote: Compressing objects: 91% (285/313) remote: Compressing objects: 92% (288/313) remote: Compressing objects: 93% (292/313) remote: Compressing objects: 94% (295/313) remote: Compressing objects: 95% (298/313) remote: Compressing objects: 96% (301/313) remote: Compressing objects: 97% (304/313) remote: Compressing objects: 98% (307/313) remote: Compressing objects: 99% (310/313) remote: Compressing objects: 100% (313/313) remote: Compressing objects: 100% (313/313), done. Receiving objects: 0% (1/25106) Receiving objects: 1% (252/25106) Receiving objects: 2% (503/25106) Receiving objects: 3% (754/25106) Receiving objects: 4% (1005/25106) Receiving objects: 5% (1256/25106) Receiving objects: 6% (1507/25106) Receiving objects: 7% (1758/25106) Receiving objects: 8% (2009/25106) Receiving objects: 9% (2260/25106) Receiving objects: 10% (2511/25106) Receiving objects: 11% (2762/25106) Receiving objects: 12% (3013/25106), 1.16 MiB | 2.30 MiB/s Receiving objects: 13% (3264/25106), 1.16 MiB | 2.30 MiB/s Receiving objects: 14% (3515/25106), 1.16 MiB | 2.30 MiB/s Receiving objects: 14% (3591/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 15% (3766/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 16% (4017/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 17% (4269/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 18% (4520/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 19% (4771/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 20% (5022/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 21% (5273/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 22% (5524/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 23% (5775/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 24% (6026/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 25% (6277/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 26% (6528/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 27% (6779/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 28% (7030/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 29% (7281/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 30% (7532/25106), 1.75 MiB | 1.72 MiB/s Receiving objects: 31% (7783/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 32% (8034/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 33% (8285/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 34% (8537/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 35% (8788/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 36% (9039/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 37% (9290/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 38% (9541/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 39% (9792/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 40% (10043/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 41% (10294/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 42% (10545/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 43% (10796/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 44% (11047/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 45% (11298/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 46% (11549/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 47% (11800/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 48% (12051/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 49% (12302/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 50% (12553/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 51% (12805/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 52% (13056/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 53% (13307/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 54% (13558/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 55% (13809/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 56% (14060/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 57% (14311/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 58% (14562/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 59% (14813/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 60% (15064/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 61% (15315/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 62% (15566/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 63% (15817/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 63% (15983/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 64% (16068/25106), 2.63 MiB | 1.73 MiB/s Receiving objects: 65% (16319/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 66% (16570/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 67% (16822/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 68% (17073/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 69% (17324/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 70% (17575/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 71% (17826/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 72% (18077/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 73% (18328/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 74% (18579/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 75% (18830/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 76% (19081/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 77% (19332/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 78% (19583/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 79% (19834/25106), 4.05 MiB | 2.00 MiB/s Receiving objects: 79% (20084/25106), 9.94 MiB | 3.29 MiB/s Receiving objects: 80% (20085/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 81% (20336/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 82% (20587/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 83% (20838/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 84% (21090/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 85% (21341/25106), 13.51 MiB | 3.84 MiB/s Receiving objects: 85% (21532/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 86% (21592/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 87% (21843/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 88% (22094/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 89% (22345/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 90% (22596/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 91% (22847/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 92% (23098/25106), 13.89 MiB | 3.45 MiB/s Receiving objects: 93% (23349/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 94% (23600/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 95% (23851/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 96% (24102/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 97% (24353/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 98% (24604/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 99% (24855/25106), 14.15 MiB | 3.13 MiB/s remote: Total 25106 (delta 456), reused 284 (delta 266), pack-reused 24526 (from 3) Receiving objects: 100% (25106/25106), 14.15 MiB | 3.13 MiB/s Receiving objects: 100% (25106/25106), 14.95 MiB | 3.13 MiB/s, done. Resolving deltas: 0% (0/19069) Resolving deltas: 1% (191/19069) Resolving deltas: 2% (382/19069) Resolving deltas: 3% (573/19069) Resolving deltas: 4% (763/19069) Resolving deltas: 5% (954/19069) Resolving deltas: 6% (1145/19069) Resolving deltas: 7% (1335/19069) Resolving deltas: 8% (1526/19069) Resolving deltas: 9% (1717/19069) Resolving deltas: 9% (1895/19069) Resolving deltas: 10% (1907/19069) Resolving deltas: 11% (2098/19069) Resolving deltas: 12% (2289/19069) Resolving deltas: 12% (2429/19069) Resolving deltas: 13% (2479/19069) Resolving deltas: 14% (2670/19069) Resolving deltas: 15% (2861/19069) Resolving deltas: 16% (3052/19069) Resolving deltas: 17% (3242/19069) Resolving deltas: 18% (3433/19069) Resolving deltas: 19% (3624/19069) Resolving deltas: 20% (3814/19069) Resolving deltas: 21% (4005/19069) Resolving deltas: 22% (4196/19069) Resolving deltas: 23% (4386/19069) Resolving deltas: 24% (4577/19069) Resolving deltas: 25% (4768/19069) Resolving deltas: 26% (4958/19069) Resolving deltas: 27% (5149/19069) Resolving deltas: 28% (5340/19069) Resolving deltas: 29% (5531/19069) Resolving deltas: 30% (5721/19069) Resolving deltas: 31% (5912/19069) Resolving deltas: 32% (6103/19069) Resolving deltas: 32% (6185/19069) Resolving deltas: 33% (6293/19069) Resolving deltas: 34% (6484/19069) Resolving deltas: 35% (6675/19069) Resolving deltas: 36% (6865/19069) Resolving deltas: 37% (7056/19069) Resolving deltas: 38% (7247/19069) Resolving deltas: 39% (7437/19069) Resolving deltas: 40% (7628/19069) Resolving deltas: 41% (7819/19069) Resolving deltas: 42% (8009/19069) Resolving deltas: 43% (8200/19069) Resolving deltas: 44% (8391/19069) Resolving deltas: 45% (8582/19069) Resolving deltas: 46% (8772/19069) Resolving deltas: 47% (8963/19069) Resolving deltas: 48% (9154/19069) Resolving deltas: 49% (9344/19069) Resolving deltas: 50% (9535/19069) Resolving deltas: 51% (9726/19069) Resolving deltas: 52% (9916/19069) Resolving deltas: 53% (10107/19069) Resolving deltas: 54% (10298/19069) Resolving deltas: 55% (10488/19069) Resolving deltas: 56% (10679/19069) Resolving deltas: 57% (10870/19069) Resolving deltas: 58% (11061/19069) Resolving deltas: 59% (11251/19069) Resolving deltas: 59% (11351/19069) Resolving deltas: 60% (11442/19069) Resolving deltas: 61% (11633/19069) Resolving deltas: 62% (11823/19069) Resolving deltas: 63% (12014/19069) Resolving deltas: 64% (12205/19069) Resolving deltas: 65% (12395/19069) Resolving deltas: 66% (12586/19069) Resolving deltas: 67% (12777/19069) Resolving deltas: 68% (12967/19069) Resolving deltas: 69% (13158/19069) Resolving deltas: 70% (13349/19069) Resolving deltas: 71% (13539/19069) Resolving deltas: 72% (13730/19069) Resolving deltas: 73% (13921/19069) Resolving deltas: 74% (14112/19069) Resolving deltas: 75% (14302/19069) Resolving deltas: 76% (14493/19069) Resolving deltas: 77% (14684/19069) Resolving deltas: 78% (14874/19069) Resolving deltas: 79% (15065/19069) Resolving deltas: 80% (15256/19069) Resolving deltas: 81% (15446/19069) Resolving deltas: 82% (15637/19069) Resolving deltas: 83% (15828/19069) Resolving deltas: 84% (16018/19069) Resolving deltas: 85% (16209/19069) Resolving deltas: 86% (16400/19069) Resolving deltas: 87% (16591/19069) Resolving deltas: 88% (16781/19069) Resolving deltas: 89% (16972/19069) Resolving deltas: 90% (17163/19069) Resolving deltas: 91% (17353/19069) Resolving deltas: 92% (17544/19069) Resolving deltas: 93% (17735/19069) Resolving deltas: 94% (17925/19069) Resolving deltas: 95% (18116/19069) Resolving deltas: 96% (18307/19069) Resolving deltas: 97% (18497/19069) Resolving deltas: 98% (18688/19069) Resolving deltas: 99% (18879/19069) Resolving deltas: 100% (19069/19069) Resolving deltas: 100% (19069/19069), done. ==>(B Validating source files with sha512sums...(B python-fsspec ... Passed ==>(B Validating source files with b2sums...(B python-fsspec ... Passed ]3008;start=251d6d7f36b74cd69e4f2db4c9ea8c2d;user=root;hostname=delphox.felixc.at;machineid=3d7c30bf6b8c4473ac5c4b58ccf9ab2b;bootid=b60bdcea6aa941fea19b42a0616b648f;pid=3865699;comm=systemd-nspawn;container=arch-nspawn-3865699;type=container\]11;?\]2;🔵 Container arch-nspawn-3865699 on delphox.felixc.at\]3008;start=0f1e55fee8a0491384fdc349281a00fe;user=root;hostname=arch-nspawn-3865699;machineid=8a9b7ccad9cf4f899e8d17b9819e78eb;bootid=01f2d707d4ac4824b94e1f97472ac1c3;pid=14;comm=sudo;targetuser=builduser;type=session\==>(B Making package: python-fsspec 2026.9.0-1 (Fri Sep 25 23:03:10 2026)(B ==>(B Checking runtime dependencies...(B ==>(B Checking buildtime dependencies...(B ==>(B Installing missing dependencies...(B ]3008;start=518424c090f8415aabfd9eef5a1182a0;user=builduser;hostname=arch-nspawn-3865699;machineid=8a9b7ccad9cf4f899e8d17b9819e78eb;bootid=01f2d707d4ac4824b94e1f97472ac1c3;pid=890;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... warning: insufficient columns available for table display Packages (199) abseil-cpp-20260817.0-2 apache-orc-2.3.1-4 argon2-20190702-6 arrow-25.0.1-6 aws-c-auth-0.10.1-1 aws-c-cal-0.9.13-1 aws-c-common-0.12.6-1 aws-c-compression-0.3.2-1 aws-c-event-stream-0.7.0-1 aws-c-http-0.10.14-1 aws-c-io-0.26.3-1 aws-c-mqtt-0.15.2-1 aws-c-s3-0.12.2-1 aws-c-sdkutils-0.2.4-1 aws-checksums-0.2.10-1 aws-crt-cpp-0.38.5-1 aws-sdk-cpp-core-1.11.792-1 aws-sdk-cpp-iam-1.11.792-1 aws-sdk-cpp-s3-1.11.792-1 blas-3.12.1-2 c-ares-1.34.8-1 cblas-3.12.1-2 gflags-2.2.2-6 google-glog-0.7.1-2.1 grpc-1.84.0-1 gtest-1.18.0-1 ipython-9.17.1-1 jupyter-nbclient-0.11.0-1.1 jupyter-nbconvert-7.17.1-2 jupyter-nbformat-5.11.1-1 jupyter-notebook-shim-0.2.4-4 jupyter-server-2.21.1-1 jupyterlab-4.6.4-1 jupyterlab-pygments-0.3.0-4 lapack-3.12.1-2 libgit2-1:1.9.7-1 libpgm-5.3.128-4 libsodium-1.0.22-1 libutf8proc-2.11.3-1 libyaml-0.2.5-3 llhttp-9.3.1-1 perl-error-0.17030-3 perl-mailtools-2.22-3 perl-timedate-2.35-1 protobuf-36.1-1 python-aiohappyeyeballs-2.7.1-1 python-aiosignal-1.4.0-3 python-anyio-4.15.1-1 python-argcomplete-3.7.2-1 python-argon2-cffi-25.1.0-2 python-argon2-cffi-bindings-25.1.0-2 python-asttokens-3.0.2-1 python-async-lru-2.3.0-1 python-attrs-26.1.0-1 python-autocommand-2.2.2-9 python-babel-2.18.0-1 python-bcrypt-5.0.0-2 python-beautifulsoup4-4.15.0-1 python-bleach-6.4.0-1 python-certifi-2026.07.22-1 python-cffi-2.1.1-1 python-charset-normalizer-3.5.1-1 python-click-8.3.3-1 python-colorama-0.4.6-6 python-comm-0.2.3-2 python-cramjam-2.11.0-3 python-cryptography-50.0.1-1 python-dateutil-2.9.0-8.1 python-defusedxml-0.7.1-8 python-editables-0.6-1 python-executing-2.2.1-3.1 python-fastjsonschema-2.21.2-2 python-fluidity-0.2.1-8 python-frozenlist-1.8.0-2 python-fsspec-2026.7.0-1 python-h11-0.16.0-2 python-heapdict-1.0.1-9 python-httpcore-1.0.9-3 python-httpx-0.28.1-7 python-idna-3.20-1 python-importlib-metadata-9.0.1-1 python-iniconfig-2.3.0-1 python-invoke-3.0.3-1 python-ipykernel-7.3.0-1.1 python-ipython-pygments-lexers-1.1.1-3.1 python-jaraco.collections-5.1.0-3 python-jaraco.context-6.1.2-1 python-jaraco.functools-4.1.0-3 python-jaraco.text-4.0.0-4 python-jedi-0.20.0-1 python-json-logger-4.1.0-1 python-json5-0.15.0-1 python-jsonschema-4.26.0-1.1 python-jsonschema-specifications-2025.9.1-2 python-jupyter-builder-1.2.3-1 python-jupyter-client-8.10.0-1.1 python-jupyter-core-5.9.1-2 python-jupyter-events-0.12.1-1 python-jupyterlab-server-2.28.1-1 python-lexicon-3.0.0-2 python-locket-1.0.0-7 python-markdown-it-py-4.2.0-1 python-markupsafe-3.0.3-1 python-matplotlib-inline-0.2.2-1.1 python-mdurl-0.1.2-9 python-mistune-1:3.3.4-1 python-more-itertools-11.1.0-1 python-multidict-6.7.1-1 python-nest-asyncio-1.6.0-5 python-packaging-26.3-1 python-pandocfilters-1.5.1-4 python-parso-1:0.8.7-1 python-partd-1.4.2-2 python-pathspec-1.1.1-1 python-pexpect-4.9.0-7.1 python-platformdirs-4.11.14-1 python-pluggy-1.6.0-3.1 python-prometheus_client-0.26.0-1 python-prompt_toolkit-3.0.53-1 python-propcache-0.4.1-2 python-psutil-7.2.2-1 python-ptyprocess-0.7.0-9 python-pure-eval-0.2.3-3 python-pyasynchat-1.0.5-1 python-pyasyncore-1.0.5-1 python-pycparser-3.00-1 python-pygments-2.21.0-1 python-pynacl-1.6.2-1 python-pyproject-hooks-1.3.3-1 python-pyspnego-0.12.2-1 python-pytz-2026.1-1 python-pyzmq-27.2.0-1 python-referencing-0.37.0-3.1 python-rich-15.0.0-1 python-rpds-py-2026.6.3-1 python-ruamel-yaml-0.19.1-1 python-ruamel.yaml.clib-0.2.15-2 python-send2trash-2.1.0-1 python-setuptools-1:84.0.0-1 python-setuptools-scm-10.3.3-1 python-six-1.17.0-3 python-sortedcontainers-2.4.0-8 python-soupsieve-2.10-1 python-stack-data-0.6.3-5 python-tblib-3.2.2-2 python-tinycss2-1.5.1-2 python-toolz-1.1.0-2 python-tornado-6.5.10-1 python-traitlets-5.16.1-1 python-trove-classifiers-2026.9.21.13-1 python-typing_extensions-4.16.0-1 python-urllib3-2.6.3-1 python-vcrpy-8.3.0-1 python-vcs-versioning-2.4.1-1 python-wcwidth-0.9.1-1 python-webencodings-0.5.1-13 python-websocket-client-1.9.2-1 python-wrapt-2.4.1-1 python-yaml-6.0.3-2 python-yarl-1.23.0-1 python-zict-3.0.0-5 python-zipp-3.21.0-4 re2-2:2025.11.05-6 s2n-tls-1.7.2-1 snappy-1.2.2-3 thrift-0.22.0-6 zeromq-4.3.5-3 zlib-ng-2.3.3-1 git-2.55.0-1 jupyter-notebook-7.6.3-1 python-aiohttp-3.13.5-1 python-build-1.6.0-1 python-cloudpickle-3.1.2-3 python-dask-2026.8.0-1.1 python-distributed-2026.8.0-1 python-fastparquet-2026.5.0-1 python-hatch-vcs-0.5.0-4.1 python-hatchling-1.30.1-1 python-installer-1.0.1-1 python-jinja-1:3.1.6-3.1 python-libarchive-c-5.3-1 python-lz4-4.4.5-2 python-msgpack-1.1.2-2 python-numpy-2.5.3-1 python-pandas-2.3.3-7 python-paramiko-5.0.0-1 python-pyarrow-25.0.1-1 python-pyftpdlib-2.2.0-1 python-pygit2-1.20.1-1 python-pytest-1:9.1.1-1 python-pytest-asyncio-1.4.0-1 python-pytest-mock-3.14.1-1 python-pytest-rerunfailures-16.7-1 python-pytest-vcr-1.0.2-10 python-requests-2.34.2-1 python-smbprotocol-1.17.0-1 python-snappy-0.7.2-3 python-tqdm-4.70.1-1 python-wheel-0.48.0-1 Total Download Size: 86.33 MiB Total Installed Size: 642.20 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pandas-2.3.3-7-riscv64 downloading... arrow-25.0.1-6-riscv64 downloading... python-babel-2.18.0-1-any downloading... grpc-1.84.0-1-riscv64 downloading... jupyterlab-4.6.4-1-any downloading... jupyter-notebook-7.6.3-1-any downloading... python-pyarrow-25.0.1-1-riscv64 downloading... python-dask-2026.8.0-1.1-any downloading... python-jedi-0.20.0-1-any downloading... thrift-0.22.0-6-riscv64 downloading... aws-sdk-cpp-s3-1.11.792-1-riscv64 downloading... python-distributed-2026.8.0-1-any downloading... python-cramjam-2.11.0-3-riscv64 downloading... python-cryptography-50.0.1-1-riscv64 downloading... ipython-9.17.1-1-any downloading... python-tornado-6.5.10-1-riscv64 downloading... python-jupyter-builder-1.2.3-1-any downloading... aws-sdk-cpp-iam-1.11.792-1-riscv64 downloading... python-prompt_toolkit-3.0.53-1-any downloading... python-aiohttp-3.13.5-1-riscv64 downloading... aws-sdk-cpp-core-1.11.792-1-riscv64 downloading... apache-orc-2.3.1-4-riscv64 downloading... python-rich-15.0.0-1-any downloading... python-fastparquet-2026.5.0-1-riscv64 downloading... jupyter-server-2.21.1-1-any downloading... python-wcwidth-0.9.1-1-riscv64 downloading... python-fsspec-2026.7.0-1-any downloading... python-httpx-0.28.1-7-any downloading... python-pyzmq-27.2.0-1-riscv64 downloading... s2n-tls-1.7.2-1-riscv64 downloading... python-paramiko-5.0.0-1-any downloading... python-pygit2-1.20.1-1-riscv64 downloading... python-bleach-6.4.0-1-any downloading... python-anyio-4.15.1-1-any downloading... python-cffi-2.1.1-1-riscv64 downloading... aws-crt-cpp-0.38.5-1-riscv64 downloading... jupyter-nbconvert-7.17.1-2-any downloading... python-ruamel-yaml-0.19.1-1-any downloading... python-rpds-py-2026.6.3-1-riscv64 downloading... python-pyspnego-0.12.2-1-any downloading... c-ares-1.34.8-1-riscv64 downloading... python-smbprotocol-1.17.0-1-any downloading... re2-2:2025.11.05-6-riscv64 downloading... python-vcs-versioning-2.4.1-1-any downloading... python-jupyter-client-8.10.0-1.1-any downloading... python-ipykernel-7.3.0-1.1-any downloading... python-bcrypt-5.0.0-2-riscv64 downloading... aws-c-common-0.12.6-1-riscv64 downloading... python-psutil-7.2.2-1-riscv64 downloading... python-beautifulsoup4-4.15.0-1-any downloading... python-parso-1:0.8.7-1-any downloading... python-jsonschema-4.26.0-1.1-any downloading... python-invoke-3.0.3-1-any downloading... aws-c-http-0.10.14-1-riscv64 downloading... python-traitlets-5.16.1-1-any downloading... python-websocket-client-1.9.2-1-any downloading... aws-c-mqtt-0.15.2-1-riscv64 downloading... python-pyftpdlib-2.2.0-1-any downloading... python-mistune-1:3.3.4-1-any downloading... python-markdown-it-py-4.2.0-1-any downloading... python-ruamel.yaml.clib-0.2.15-2-riscv64 downloading... aws-c-io-0.26.3-1-riscv64 downloading... python-toolz-1.1.0-2-any downloading... python-prometheus_client-0.26.0-1-any downloading... aws-c-s3-0.12.2-1-riscv64 downloading... python-wrapt-2.4.1-1-riscv64 downloading... python-pynacl-1.6.2-1-riscv64 downloading... python-httpcore-1.0.9-3-any downloading... python-yarl-1.23.0-1-riscv64 downloading... python-jupyterlab-server-2.28.1-1-any downloading... python-pycparser-3.00-1-any downloading... aws-c-auth-0.10.1-1-riscv64 downloading... python-pexpect-4.9.0-7.1-any downloading... python-vcrpy-8.3.0-1-any downloading... jupyter-nbformat-5.11.1-1-any downloading... python-zict-3.0.0-5-any downloading... python-msgpack-1.1.2-2-riscv64 downloading... python-soupsieve-2.10-1-any downloading... python-idna-3.20-1-any downloading... aws-checksums-0.2.10-1-riscv64 downloading... python-multidict-6.7.1-1-riscv64 downloading... python-referencing-0.37.0-3.1-any downloading... python-jupyter-core-5.9.1-2-any downloading... python-h11-0.16.0-2-any downloading... python-executing-2.2.1-3.1-any downloading... python-tinycss2-1.5.1-2-any downloading... python-json5-0.15.0-1-any downloading... python-platformdirs-4.11.14-1-any downloading... python-sortedcontainers-2.4.0-8-any downloading... jupyter-nbclient-0.11.0-1.1-any downloading... python-stack-data-0.6.3-5-any downloading... python-setuptools-scm-10.3.3-1-any downloading... python-importlib-metadata-9.0.1-1-any downloading... python-asttokens-3.0.2-1-any downloading... python-colorama-0.4.6-6-any downloading... python-frozenlist-1.8.0-2-riscv64 downloading... aws-c-sdkutils-0.2.4-1-riscv64 downloading... python-pytest-rerunfailures-16.7-1-any downloading... aws-c-event-stream-0.7.0-1-riscv64 downloading... python-propcache-0.4.1-2-riscv64 downloading... python-partd-1.4.2-2-any downloading... aws-c-cal-0.9.13-1-riscv64 downloading... python-lz4-4.4.5-2-riscv64 downloading... python-cloudpickle-3.1.2-3-any downloading... python-libarchive-c-5.3-1-any downloading... python-pytest-asyncio-1.4.0-1-any downloading... python-jupyter-events-0.12.1-1-any downloading... python-defusedxml-0.7.1-8-any downloading... python-ptyprocess-0.7.0-9-any downloading... python-send2trash-2.1.0-1-any downloading... python-pure-eval-0.2.3-3-any downloading... python-json-logger-4.1.0-1-any downloading... python-argon2-cffi-25.1.0-2-any downloading... python-aiohappyeyeballs-2.7.1-1-any downloading... python-trove-classifiers-2026.9.21.13-1-any downloading... python-pyproject-hooks-1.3.3-1-any downloading... jupyter-notebook-shim-0.2.4-4-any downloading... python-webencodings-0.5.1-13-any downloading... python-zipp-3.21.0-4-any downloading... python-pyasyncore-1.0.5-1-any downloading... python-tblib-3.2.2-2-any downloading... python-async-lru-2.3.0-1-any downloading... python-mdurl-0.1.2-9-any downloading... python-matplotlib-inline-0.2.2-1.1-any downloading... python-argon2-cffi-bindings-25.1.0-2-riscv64 downloading... python-snappy-0.7.2-3-any downloading... jupyterlab-pygments-0.3.0-4-any downloading... python-ipython-pygments-lexers-1.1.1-3.1-any downloading... python-fluidity-0.2.1-8-any downloading... python-comm-0.2.3-2-any downloading... python-pandocfilters-1.5.1-4-any downloading... python-jsonschema-specifications-2025.9.1-2-any downloading... python-pyasynchat-1.0.5-1-any downloading... python-nest-asyncio-1.6.0-5-any downloading... python-aiosignal-1.4.0-3-any downloading... python-lexicon-3.0.0-2-any downloading... aws-c-compression-0.3.2-1-riscv64 downloading... python-locket-1.0.0-7-any downloading... python-pytest-vcr-1.0.2-10-any downloading... python-heapdict-1.0.1-9-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-packaging... 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-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... 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 [pending] installing python-setuptools... installing python-vcs-versioning... Optional dependencies for python-vcs-versioning python-rich: formatting of log messages [pending] installing python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler [pending] installing python-hatch-vcs... installing python-installer... installing python-pygments... installing python-ipython-pygments-lexers... installing python-parso... installing python-jedi... installing python-argcomplete... installing python-typing_extensions... installing python-traitlets... installing python-matplotlib-inline... Optional dependencies for python-matplotlib-inline python-matplotlib installing python-ptyprocess... installing python-pexpect... installing python-wcwidth... installing python-prompt_toolkit... Optional dependencies for python-prompt_toolkit python-pygments: for color schemes and lexers [installed] installing python-psutil... installing python-asttokens... installing python-executing... installing python-pure-eval... installing python-stack-data... installing ipython... Optional dependencies for ipython python-black: to auto format with Black python-pickleshare: for the ip.db database yapf: to auto format with YAPF installing python-fastjsonschema... installing python-attrs... installing python-rpds-py... installing python-referencing... installing python-jsonschema-specifications... installing python-jsonschema... Optional dependencies for python-jsonschema python-isoduration: for duration format python-fqdn: for hostname format python-idna: for idn-hostname format [pending] python-jsonpointer: for json-pointer & relative-json-pointer format python-rfc3339-validator: for date-time format python-rfc3987: for iri, iri-reference, uri & uri-reference format python-uri-template: for uri-template format python-webcolors: for color format installing python-jupyter-core... installing jupyter-nbformat... installing python-six... installing python-dateutil... installing libsodium... installing libpgm... installing zeromq... Optional dependencies for zeromq cppzmq: C++ binding for libzmq installing python-pyzmq... installing python-tornado... Optional dependencies for python-tornado python-pycurl: for tornado.curl_httpclient python-twisted: for tornado.platform.twisted installing python-jupyter-client... installing jupyter-nbclient... installing jupyterlab-pygments... installing python-soupsieve... installing python-beautifulsoup4... Optional dependencies for python-beautifulsoup4 python-cchardet: alternative to autodetect character encodings python-chardet: to autodetect character encodings python-lxml: alternative HTML parser python-html5lib: alternative HTML parser installing python-webencodings... installing python-bleach... Optional dependencies for python-bleach python-tinycss2: for CSS sanitisation [pending] installing python-defusedxml... installing python-zipp... installing python-importlib-metadata... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support [pending] installing python-mistune... installing python-pandocfilters... installing python-tinycss2... installing jupyter-nbconvert... Optional dependencies for jupyter-nbconvert pandoc: non-html conversion output python-playwright: for webPDF conversion support 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 [pending] installing argon2... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext [installed] installing python-argon2-cffi-bindings... installing python-argon2-cffi... installing python-colorama... installing python-click... installing python-json-logger... installing python-mdurl... installing python-markdown-it-py... Optional dependencies for python-markdown-it-py python-mdit_py_plugins: core plugins python-linkify-it-py: linkify extension installing python-rich... installing libyaml... installing python-yaml... installing python-jupyter-events... installing python-prometheus_client... Optional dependencies for python-prometheus_client python-snappy: snappy compression support [pending] python-aiohttp: aiohttp server support [pending] python-django: django exporter support installing python-send2trash... installing python-websocket-client... installing jupyter-server... Optional dependencies for jupyter-server python-jupyter-server-terminals: terminals support installing jupyter-notebook-shim... installing python-async-lru... 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 [installed] python-trio: for trio backend python-sniffio: for async support 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 python-h2: HTTP/2 support python-socksio: SOCKS proxy support python-click: command line client support [installed] python-rich: command line client support [installed] python-pygments: command line client support [installed] python-trio: alternative async library installing python-comm... installing python-nest-asyncio... installing python-ipykernel... Optional dependencies for python-ipykernel python-debugpy: debugger support installing python-jupyter-builder... installing python-pytz... installing python-babel... installing python-json5... 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-ruamel.yaml.clib... installing python-ruamel-yaml... installing python-jupyterlab-server... installing jupyterlab... Optional dependencies for jupyterlab jupyter-collaboration: collaborative mode jupyterlab-lsp: LSP extension jupyterlab-widgets: ipywidgets support npm: to install extensions installing jupyter-notebook... installing llhttp... installing python-aiohappyeyeballs... installing python-frozenlist... installing python-aiosignal... installing python-multidict... installing python-propcache... installing python-yarl... installing python-aiohttp... Optional dependencies for python-aiohttp gunicorn: to deploy using Gunicorn python-aiodns: for fast DNS resolving python-brotli: for Brotli transfer-encodings support installing python-cloudpickle... installing python-fsspec... Optional dependencies for python-fsspec python-aiohttp: HTTP support [installed] python-distributed: Dask support [pending] python-libarchive-c: archives support [pending] python-lz4: LZ4 compression support [pending] python-paramiko: SFTP support [pending] python-pyarrow: Arrow/Parquet support [pending] python-pygit2: git support [pending] python-requests: web protocols support [installed] python-smbprotocol: SMB support [pending] python-snappy: snappy compression support [pending] python-tqdm: progress bar support [pending] installing python-locket... installing python-toolz... installing python-partd... Optional dependencies for python-partd python-blosc python-numpy [pending] python-pandas [pending] python-pyzmq [installed] installing python-dask... Optional dependencies for python-dask python-distributed: distributed computing [pending] python-graphviz: graph visualization using the graphviz engine python-jinja: HTML representations of Dask objects in Jupyter notebooks [installed] python-lz4: transparent use of lz4 compression algorithm [pending] python-matplotlib: color map support for graph visualization python-numpy: arrays and dataframes support [pending] python-pandas: dataframes support [pending] python-psutil: more accurate CPU count [installed] python-pyarrow: Apache Arrow, for parquet support [pending] python-scipy: for dask.array.stats, dask.array.fft, and dask.array.linalg.lu python-snappy: snappy compression for reading/writing Avro or Parquet files [pending] python-sqlalchemy: writing and reading from SQL databases python-xarray: N-D labeled arrays and datasets python-xxhash: faster hashing of arrays installing python-msgpack... installing python-sortedcontainers... installing python-tblib... installing python-heapdict... installing python-zict... installing python-distributed... installing python-cramjam... installing blas... installing cblas... installing lapack... installing python-numpy... Optional dependencies for python-numpy blas-openblas: faster linear algebra installing python-pandas... Optional dependencies for python-pandas python-pandas-datareader: pandas.io.data replacement (recommended) python-numexpr: accelerating certain numerical operations (recommended) python-bottleneck: accelerating certain types of nan evaluations (recommended) python-matplotlib: plotting python-jinja: conditional formatting with DataFrame.style [installed] python-tabulate: printing in Markdown-friendly format python-scipy: miscellaneous statistical functions python-numba: alternative execution engine python-xarray: pandas-like API for N-dimensional data python-xlrd: Excel XLS input python-xlwt: Excel XLS output python-openpyxl: Excel XLSX input/output python-xlsxwriter: alternative Excel XLSX output python-beautifulsoup4: read_html function (in any case) [installed] python-html5lib: read_html function (and/or python-lxml) python-lxml: read_xml, to_xml and read_html function (and/or python-html5lib) python-sqlalchemy: SQL database support python-psycopg2: PostgreSQL engine for sqlalchemy python-pymysql: MySQL engine for sqlalchemy python-pytables: HDF5-based reading / writing python-blosc: for msgpack compression using blosc zlib: compression for msgpack [installed] python-pyarrow: Parquet, ORC and feather reading/writing [pending] python-fsspec: handling files aside from local and HTTP [installed] python-qtpy: read_clipboard function (only one needed) xclip: read_clipboard function (only one needed) xsel: read_clipboard function (only one needed) python-brotli: Brotli compression python-snappy: Snappy compression [pending] python-zstandard: Zstandard (zstd) compression installing python-fastparquet... installing python-libarchive-c... installing python-lz4... installing python-bcrypt... installing python-cryptography... installing python-pynacl... installing python-fluidity... installing python-lexicon... installing python-invoke... installing python-paramiko... installing gtest... Optional dependencies for gtest python: gmock generator [installed] installing abseil-cpp... installing protobuf... installing snappy... installing apache-orc... installing aws-c-common... installing aws-c-cal... installing aws-c-compression... installing s2n-tls... installing aws-c-io... installing aws-c-http... installing aws-c-sdkutils... installing aws-c-auth... installing aws-checksums... installing aws-c-event-stream... installing aws-c-mqtt... installing aws-c-s3... installing aws-crt-cpp... installing aws-sdk-cpp-core... installing aws-sdk-cpp-iam... installing aws-sdk-cpp-s3... installing gflags... installing google-glog... installing c-ares... installing re2... installing grpc... installing libutf8proc... installing thrift... Optional dependencies for thrift qt5-base: TQTcpServer (Qt5) support installing arrow... installing python-pyarrow... Optional dependencies for python-pyarrow python-cffi: interact with C code [installed] python-pandas: Pandas integration [installed] python-fsspec: Filesystem Spec support [installed] installing python-pyasyncore... installing python-pyasynchat... installing python-pyftpdlib... Optional dependencies for python-pyftpdlib python-pyopenssl: FTPS support python-psutil: to keep track of FTP server memory usage [installed] installing libgit2... installing python-pygit2... installing python-iniconfig... installing python-pytest... installing python-pytest-asyncio... installing python-pytest-mock... installing python-pytest-rerunfailures... Optional dependencies for python-pytest-rerunfailures python-pytest-xdist: for recovering from crashes installing python-wrapt... installing python-vcrpy... installing python-pytest-vcr... installing python-pyspnego... Optional dependencies for python-pyspnego python-gssapi: Kerberos support python-krb5: Kerberos support python-ruamel-yaml: YAML configuration [installed] installing python-smbprotocol... Optional dependencies for python-smbprotocol python-gssapi: Kerberos support installing python-snappy... installing python-tqdm... Optional dependencies for python-tqdm python-requests: telegram [installed] :: Running post-transaction hooks... (1/4) Creating system user accounts... Creating group 'git' with GID 968. Creating user 'git' (git daemon user) with UID 968 and GID 968. (2/4) Reloading system manager configuration... Skipped: Current root is not booted. (3/4) Arming ConditionNeedsUpdate... (4/4) Checking for old perl modules... [?25h]3008;end=518424c090f8415aabfd9eef5a1182a0\==>(B Retrieving sources...(B ==> WARNING:(B Skipping all source file integrity checks.(B ==>(B Extracting sources...(B  ->(B Creating working copy of python-fsspec git repo...(B Cloning into 'python-fsspec'... done. Switched to a new branch 'makepkg' ==>(B Starting build()...(B * Getting build dependencies for wheel... * Building wheel... Successfully built fsspec-2026.9.0-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-fsspec/src/python-fsspec configfile: pyproject.toml plugins: anyio-4.15.1, asyncio-1.4.0, mock-3.14.1, rerunfailures-16.7, vcr-1.0.2 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 2243 items / 79 deselected / 6 skipped / 2164 selected fsspec/implementations/tests/local/local_test.py ....................... [ 1%] ........................................................................ [ 4%] ........................................ [ 6%] fsspec/implementations/tests/memory/memory_test.py ..................... [ 7%] ........................................................................ [ 10%] ............................................ [ 12%] fsspec/implementations/tests/test_archive.py ........................... [ 13%] ........................................................................ [ 17%] ........................... [ 18%] fsspec/implementations/tests/test_arrow.py ............................. [ 19%] .......................... [ 20%] fsspec/implementations/tests/test_asyn_wrapper.py .............. [ 21%] fsspec/implementations/tests/test_cached.py ..........FFFFFFF......FFF.. [ 22%] .................................F............FFFF...................... [ 26%] .................... [ 27%] fsspec/implementations/tests/test_common.py .... [ 27%] fsspec/implementations/tests/test_dask.py . [ 27%] fsspec/implementations/tests/test_data.py .. [ 27%] fsspec/implementations/tests/test_dirfs.py ............................. [ 28%] ........................................................................ [ 32%] ....................s................................................... [ 35%] ........... [ 35%] fsspec/implementations/tests/test_ftp.py FFFFFFFFFFF.... [ 36%] fsspec/implementations/tests/test_git.py ... [ 36%] fsspec/implementations/tests/test_http_sync.py ......................... [ 37%] ............... [ 38%] fsspec/implementations/tests/test_jupyter.py . [ 38%] fsspec/implementations/tests/test_libarchive.py F [ 38%] fsspec/implementations/tests/test_local.py .s........................... [ 40%] ..................................................sss................... [ 43%] .......ss........ss.sssss.......sss....s............................s [ 46%] fsspec/implementations/tests/test_memory.py ............................ [ 47%] ........................... [ 49%] fsspec/implementations/tests/test_reference.py .................s....... [ 50%] ...sssss. [ 50%] fsspec/implementations/tests/test_sftp.py sssssssssssssssss......... [ 51%] fsspec/implementations/tests/test_smb.py ssssssssssssssssss [ 52%] fsspec/implementations/tests/test_tar.py ............................... [ 54%] .... [ 54%] fsspec/implementations/tests/test_webhdfs.py ssssssssssssssss [ 55%] fsspec/implementations/tests/test_zip.py ............................... [ 56%] .......... [ 56%] fsspec/tests/test_api.py ...............x...... [ 57%] fsspec/tests/test_async.py ............................. [ 59%] fsspec/tests/test_cache_threads.py ... [ 59%] fsspec/tests/test_caches.py ............................................ [ 61%] ........................................................................ [ 64%] ............................................................ [ 67%] fsspec/tests/test_callbacks.py ........ [ 67%] fsspec/tests/test_chained.py . [ 68%] fsspec/tests/test_compression.py ...... [ 68%] fsspec/tests/test_config.py ....... [ 68%] fsspec/tests/test_core.py .............................................. [ 70%] .........sF..FFF.s [ 71%] fsspec/tests/test_file.py FFFFFFFFF.F [ 72%] fsspec/tests/test_generic.py ...... [ 72%] fsspec/tests/test_mapping.py ................................... [ 73%] fsspec/tests/test_parquet.py ........................................... [ 75%] ........................................................................ [ 79%] ..................... [ 80%] fsspec/tests/test_prefetcher.py ........................................ [ 82%] .................... [ 83%] fsspec/tests/test_registry.py ......s [ 83%] fsspec/tests/test_spec.py ....................x......................... [ 85%] ................FFFFFFFFFF.............................................. [ 88%] ........................................................................ [ 92%] .............................................................. [ 95%] fsspec/tests/test_utils.py ............................................. [ 97%] ............................................................... [100%] =================================== FAILURES =================================== ___________________________ test_blockcache_workflow ___________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmp_path = PosixPath('/tmp/pytest-of-builduser/pytest-0/test_blockcache_workflow0') def test_blockcache_workflow(ftp_writable, tmp_path): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:216: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:00] concurrency model: async [I 2026-09-25 23:11:00] masquerade (NAT) address: None [I 2026-09-25 23:11:00] passive ports: None [I 2026-09-25 23:11:00] >>> starting FTP server on 0.0.0.0:2121, pid=1813 <<< ___________________________ test_workflow[filecache] ___________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'filecache' @pytest.mark.parametrize("impl", ["filecache", "blockcache", "cached"]) def test_workflow(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-thd4atcz', '/mp-mw88nb1i', '/mp-wfkr85h3', '/mp-youpj2gj', '/mp-m_yeis7y', '/mp-91qibl3p'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:05] concurrency model: async [I 2026-09-25 23:11:05] masquerade (NAT) address: None [I 2026-09-25 23:11:05] passive ports: None [I 2026-09-25 23:11:05] >>> starting FTP server on 0.0.0.0:2121, pid=1815 <<< __________________________ test_workflow[blockcache] ___________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'blockcache' @pytest.mark.parametrize("impl", ["filecache", "blockcache", "cached"]) def test_workflow(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-5khuptxi', '/mp-obllr3pf', '/mp-t6f9s4pe', '/mp-ajkars1d', '/mp-51oihnxh', '/mp-xfhu1pt5'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:08] concurrency model: async [I 2026-09-25 23:11:08] masquerade (NAT) address: None [I 2026-09-25 23:11:08] passive ports: None [I 2026-09-25 23:11:08] >>> starting FTP server on 0.0.0.0:2121, pid=1817 <<< ____________________________ test_workflow[cached] _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'cached' @pytest.mark.parametrize("impl", ["filecache", "blockcache", "cached"]) def test_workflow(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-er7ghvnw', '/mp-pov5mgpn', '/mp-8w8s72ab', '/mp-zhrrzbuu', '/mp-o5seq2qp', '/mp-z5n2k817'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:12] concurrency model: async [I 2026-09-25 23:11:12] masquerade (NAT) address: None [I 2026-09-25 23:11:12] passive ports: None [I 2026-09-25 23:11:12] >>> starting FTP server on 0.0.0.0:2121, pid=1819 <<< ____________________________ test_glob[simplecache] ____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'simplecache' @pytest.mark.parametrize("impl", ["simplecache", "blockcache", "cached"]) def test_glob(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-7cnd4wgg', '/mp-xkbu8sxr', '/mp-7z61r8fm', '/mp-meuwyo6w', '/mp-hgh17y5f', '/mp-w_1ddvlx'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:16] concurrency model: async [I 2026-09-25 23:11:16] masquerade (NAT) address: None [I 2026-09-25 23:11:16] passive ports: None [I 2026-09-25 23:11:16] >>> starting FTP server on 0.0.0.0:2121, pid=1821 <<< ____________________________ test_glob[blockcache] _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'blockcache' @pytest.mark.parametrize("impl", ["simplecache", "blockcache", "cached"]) def test_glob(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-a5wm3ciq', '/mp-0_fgtsr0', '/mp-idzpigmm', '/mp-13db34_a', '/mp-k1edjc8y', '/mp-_wgh8v2j'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:19] concurrency model: async [I 2026-09-25 23:11:19] masquerade (NAT) address: None [I 2026-09-25 23:11:19] passive ports: None [I 2026-09-25 23:11:19] >>> starting FTP server on 0.0.0.0:2121, pid=1823 <<< ______________________________ test_glob[cached] _______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), impl = 'cached' @pytest.mark.parametrize("impl", ["simplecache", "blockcache", "cached"]) def test_glob(ftp_writable, impl): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-de_52968', '/mp-bfyfl70r', '/mp-ml7k_ihk', '/mp-i1x0iyeh', '/mp-855tr4wb', '/mp-lep3t3mq'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:23] concurrency model: async [I 2026-09-25 23:11:23] masquerade (NAT) address: None [I 2026-09-25 23:11:23] passive ports: None [I 2026-09-25 23:11:23] >>> starting FTP server on 0.0.0.0:2121, pid=1825 <<< ________________________________ test_blocksize ________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_blocksize(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:539: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:31] concurrency model: async [I 2026-09-25 23:11:31] masquerade (NAT) address: None [I 2026-09-25 23:11:31] passive ports: None [I 2026-09-25 23:11:31] >>> starting FTP server on 0.0.0.0:2121, pid=1827 <<< ________________________ test_blockcache_multiinstance _________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_blockcache_multiinstance(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:557: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-cakrex5j', '/mp-rl1d09_p', '/mp-pvso6k1z', '/mp-p3fux5qo', '/mp-oqf5l1sb', '/mp-pjwut_jl'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:35] concurrency model: async [I 2026-09-25 23:11:35] masquerade (NAT) address: None [I 2026-09-25 23:11:35] passive ports: None [I 2026-09-25 23:11:35] >>> starting FTP server on 0.0.0.0:2121, pid=1829 <<< __________________________ test_metadata_save_blocked __________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') caplog = <_pytest.logging.LogCaptureFixture object at 0x3f8b73d7f0> def test_metadata_save_blocked(ftp_writable, caplog): import logging host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:590: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-erd4akzy', '/mp-embm75xe', '/mp-z3nt8km0', '/mp-kavadj6l', '/mp-n3azuv30', '/mp-2erdglf1'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:38] concurrency model: async [I 2026-09-25 23:11:38] masquerade (NAT) address: None [I 2026-09-25 23:11:38] passive ports: None [I 2026-09-25 23:11:38] >>> starting FTP server on 0.0.0.0:2121, pid=1831 <<< _________________________ test_cached_open_close_read __________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_cached_open_close_read(ftp_writable): # Regression test for host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:925: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:43] concurrency model: async [I 2026-09-25 23:11:43] masquerade (NAT) address: None [I 2026-09-25 23:11:43] passive ports: None [I 2026-09-25 23:11:43] >>> starting FTP server on 0.0.0.0:2121, pid=1833 <<< _________________________ test_multi_cat[simplecache] __________________________ protocol = 'simplecache', ftp_writable = ('localhost', 2121, 'user', 'pass') @pytest.mark.parametrize( "protocol", ["simplecache", "filecache", "blockcache", "cached"] ) def test_multi_cat(protocol, ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:1071: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:47] concurrency model: async [I 2026-09-25 23:11:47] masquerade (NAT) address: None [I 2026-09-25 23:11:47] passive ports: None [I 2026-09-25 23:11:47] >>> starting FTP server on 0.0.0.0:2121, pid=1835 <<< __________________________ test_multi_cat[filecache] ___________________________ protocol = 'filecache', ftp_writable = ('localhost', 2121, 'user', 'pass') @pytest.mark.parametrize( "protocol", ["simplecache", "filecache", "blockcache", "cached"] ) def test_multi_cat(protocol, ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:1071: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-hj_iwoqe', '/mp-pvbr2wko', '/mp-7yins4bd', '/mp-y0iwz58i', '/mp-553rrx4n', '/mp-bt4baj4t'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:52] concurrency model: async [I 2026-09-25 23:11:52] masquerade (NAT) address: None [I 2026-09-25 23:11:52] passive ports: None [I 2026-09-25 23:11:52] >>> starting FTP server on 0.0.0.0:2121, pid=1837 <<< __________________________ test_multi_cat[blockcache] __________________________ protocol = 'blockcache', ftp_writable = ('localhost', 2121, 'user', 'pass') @pytest.mark.parametrize( "protocol", ["simplecache", "filecache", "blockcache", "cached"] ) def test_multi_cat(protocol, ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:1071: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-j9ym3d48', '/mp-b3lih3h7', '/mp-fgyy920m', '/mp-tfd8gd35', '/mp-gqux_pvo', '/mp-0ov5xzad'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:56] concurrency model: async [I 2026-09-25 23:11:56] masquerade (NAT) address: None [I 2026-09-25 23:11:56] passive ports: None [I 2026-09-25 23:11:56] >>> starting FTP server on 0.0.0.0:2121, pid=1839 <<< ____________________________ test_multi_cat[cached] ____________________________ protocol = 'cached', ftp_writable = ('localhost', 2121, 'user', 'pass') @pytest.mark.parametrize( "protocol", ["simplecache", "filecache", "blockcache", "cached"] ) def test_multi_cat(protocol, ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/tests/test_cached.py:1071: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-insi01lq', '/mp-ol2umbbr', '/mp-wldz7y7c', '/mp-iu2a0ynl', '/mp-c5qyrrzo', '/mp-zn7lw0pa'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:11:59] concurrency model: async [I 2026-09-25 23:11:59] masquerade (NAT) address: None [I 2026-09-25 23:11:59] passive ports: None [I 2026-09-25 23:11:59] >>> starting FTP server on 0.0.0.0:2121, pid=1841 <<< _____________________________ test_complex[bytes] ______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), cache_type = 'bytes' @pytest.mark.parametrize("cache_type", ["bytes", "mmap"]) def test_complex(ftp_writable, cache_type): from fsspec.core import BytesCache host, port, user, pw = ftp_writable > files = open_files( "ftp:///ou*", host=host, port=port, username=user, password=pw, block_size=10000, cache_type=cache_type, ) /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:122: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( /build/python-fsspec/src/python-fsspec/fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:27] concurrency model: async [I 2026-09-25 23:12:27] masquerade (NAT) address: None [I 2026-09-25 23:12:27] passive ports: None [I 2026-09-25 23:12:27] >>> starting FTP server on 0.0.0.0:2121, pid=1870 <<< ______________________________ test_complex[mmap] ______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), cache_type = 'mmap' @pytest.mark.parametrize("cache_type", ["bytes", "mmap"]) def test_complex(ftp_writable, cache_type): from fsspec.core import BytesCache host, port, user, pw = ftp_writable > files = open_files( "ftp:///ou*", host=host, port=port, username=user, password=pw, block_size=10000, cache_type=cache_type, ) /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:122: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( /build/python-fsspec/src/python-fsspec/fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-j97phyty', '/mp-zf4n2k37', '/mp-b4y6luik', '/mp-hbx06p1t', '/mp-m27isrvt', '/mp-gfz9s0ov'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:31] concurrency model: async [I 2026-09-25 23:12:31] masquerade (NAT) address: None [I 2026-09-25 23:12:31] passive ports: None [I 2026-09-25 23:12:31] >>> starting FTP server on 0.0.0.0:2121, pid=1872 <<< _______________________________ test_write_small _______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_write_small(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:142: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-gmy0j3u1', '/mp-6kxpz3h8', '/mp-w94rdg_a', '/mp-rnk9mwdr', '/mp-p0u3accn', '/mp-8e3rsarz'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:35] concurrency model: async [I 2026-09-25 23:12:35] masquerade (NAT) address: None [I 2026-09-25 23:12:35] passive ports: None [I 2026-09-25 23:12:35] >>> starting FTP server on 0.0.0.0:2121, pid=1874 <<< ________________________________ test_with_url _________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_with_url(ftp_writable): host, port, user, pw = ftp_writable > fo = fsspec.open(f"ftp://{user}:{pw}@{host}:{port}/out", "wb") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:150: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/core.py:512: in open out = open_files( /build/python-fsspec/src/python-fsspec/fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( /build/python-fsspec/src/python-fsspec/fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-mi9_oo9u', '/mp-l3uok3mu', '/mp-s0l85j5w', '/mp-cu8kti9n', '/mp-xc5j4bj2', '/mp-m5wfe7_g'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:38] concurrency model: async [I 2026-09-25 23:12:38] masquerade (NAT) address: None [I 2026-09-25 23:12:38] passive ports: None [I 2026-09-25 23:12:38] >>> starting FTP server on 0.0.0.0:2121, pid=1876 <<< ____________________________ test_write_big[bytes] _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), cache_type = 'bytes' @pytest.mark.parametrize("cache_type", ["bytes", "mmap"]) def test_write_big(ftp_writable, cache_type): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw, block_size=1000, cache_type=cache_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-c8dlhen7', '/mp-amypi2wk', '/mp-7in1__af', '/mp-6bbrvmr5', '/mp-2tkkrvqe', '/mp-16anogi1'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:41] concurrency model: async [I 2026-09-25 23:12:41] masquerade (NAT) address: None [I 2026-09-25 23:12:41] passive ports: None [I 2026-09-25 23:12:41] >>> starting FTP server on 0.0.0.0:2121, pid=1878 <<< _____________________________ test_write_big[mmap] _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass'), cache_type = 'mmap' @pytest.mark.parametrize("cache_type", ["bytes", "mmap"]) def test_write_big(ftp_writable, cache_type): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw, block_size=1000, cache_type=cache_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-uh5m2zd0', '/mp-g31xkchg', '/mp-ra4t8k4_', '/mp-4fcqnc3v', '/mp-55tmz_h7', '/mp-1mk8i6o5'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:45] concurrency model: async [I 2026-09-25 23:12:45] masquerade (NAT) address: None [I 2026-09-25 23:12:45] passive ports: None [I 2026-09-25 23:12:45] >>> starting FTP server on 0.0.0.0:2121, pid=1880 <<< _______________________________ test_transaction _______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_transaction(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-v65b1ebk', '/mp-adn603qy', '/mp-sgjseli_', '/mp-0ackhfoi', '/mp-w5xszefp', '/mp-urtkpuik'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:48] concurrency model: async [I 2026-09-25 23:12:48] masquerade (NAT) address: None [I 2026-09-25 23:12:48] passive ports: None [I 2026-09-25 23:12:48] >>> starting FTP server on 0.0.0.0:2121, pid=1882 <<< _________________________ test_transaction_with_cache __________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_transaction_with_cache0') def test_transaction_with_cache(ftp_writable, tmpdir): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-d98dmm0w', '/mp-ibsxz2s0', '/mp-tgo74wif', '/mp-awabnvxe', '/mp-xze_9pwj', '/mp-1h1rp_t_'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:51] concurrency model: async [I 2026-09-25 23:12:51] masquerade (NAT) address: None [I 2026-09-25 23:12:51] passive ports: None [I 2026-09-25 23:12:51] >>> starting FTP server on 0.0.0.0:2121, pid=1884 <<< _________________________________ test_cat_get _________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_cat_get0') def test_cat_get(ftp_writable, tmpdir): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw, block_size=500) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-85edpi_2', '/mp-45i5_hp7', '/mp-oyz7ua3n', '/mp-mmu32anz', '/mp-ieujkn1d', '/mp-9mdw683a'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:54] concurrency model: async [I 2026-09-25 23:12:54] masquerade (NAT) address: None [I 2026-09-25 23:12:54] passive ports: None [I 2026-09-25 23:12:54] >>> starting FTP server on 0.0.0.0:2121, pid=1886 <<< __________________________________ test_mkdir __________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_mkdir(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:221: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-89pppyt_', '/mp-hcoe23rn', '/mp-_6t0hm0n', '/mp-l0xfhxct', '/mp-7tgsvjcq', '/mp-py4yq87t'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:12:57] concurrency model: async [I 2026-09-25 23:12:57] masquerade (NAT) address: None [I 2026-09-25 23:12:57] passive ports: None [I 2026-09-25 23:12:57] >>> starting FTP server on 0.0.0.0:2121, pid=1888 <<< ____________________________ test_rm_get_recursive _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = '/tmp/pytest-of-builduser/pytest-0/test_rm_get_recursive0' def test_rm_get_recursive(ftp_writable, tmpdir): tmpdir = str(tmpdir) host, port, user, pw = ftp_writable > fs = FTPFileSystem(host, port, user, pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_ftp.py:236: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-2a0g9vaw', '/mp-4agxm1zn', '/mp-cjmbo06v', '/mp-djl0_vlu', '/mp-gfmret5s', '/mp-spn90wgc'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:13:00] concurrency model: async [I 2026-09-25 23:13:00] masquerade (NAT) address: None [I 2026-09-25 23:13:00] passive ports: None [I 2026-09-25 23:13:00] >>> starting FTP server on 0.0.0.0:2121, pid=1890 <<< __________________________________ test_cache __________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_cache(ftp_writable): host, port, username, password = "localhost", 2121, "user", "pass" with temparchive(archive_data) as archive_file: > with fsspec.open( "ftp:///archive.7z", "wb", host=host, port=port, username=username, password=password, ) as f: /build/python-fsspec/src/python-fsspec/fsspec/implementations/tests/test_libarchive.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /build/python-fsspec/src/python-fsspec/fsspec/core.py:512: in open out = open_files( /build/python-fsspec/src/python-fsspec/fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( /build/python-fsspec/src/python-fsspec/fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:111: in __init__ self._connect() /build/python-fsspec/src/python-fsspec/fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- [I 2026-09-25 23:13:20.055 ServerApp] Shutting down 3 extensions --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:13:21] concurrency model: async [I 2026-09-25 23:13:21] masquerade (NAT) address: None [I 2026-09-25 23:13:21] passive ports: None [I 2026-09-25 23:13:21] >>> starting FTP server on 0.0.0.0:2121, pid=1965 <<< ____________________________ test_url_kwargs_chain _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_url_kwargs_chain(ftp_writable): host, port, username, password = ftp_writable data = b"hello" > with fsspec.open( "ftp:///afile", "wb", host=host, port=port, username=username, password=password ) as f: fsspec/tests/test_core.py:377: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/core.py:512: in open out = open_files( fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:13:57] concurrency model: async [I 2026-09-25 23:13:57] masquerade (NAT) address: None [I 2026-09-25 23:13:57] passive ports: None [I 2026-09-25 23:13:57] >>> starting FTP server on 0.0.0.0:2121, pid=1996 <<< ________________________________ test_url_to_fs ________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_url_to_fs(ftp_writable): host, port, username, password = ftp_writable data = b"hello" > with fsspec.open(f"ftp://{username}:{password}@{host}:{port}/afile", "wb") as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_core.py:412: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/core.py:512: in open out = open_files( fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:01] concurrency model: async [I 2026-09-25 23:14:01] masquerade (NAT) address: None [I 2026-09-25 23:14:01] passive ports: None [I 2026-09-25 23:14:01] >>> starting FTP server on 0.0.0.0:2121, pid=1998 <<< _________________________ test_target_protocol_options _________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_target_protocol_options(ftp_writable): host, port, username, password = ftp_writable data = {"afile": b"hello"} options = {"host": host, "port": port, "username": username, "password": password} with ( tempzip(data) as lfile, > fsspec.open("ftp:///archive.zip", "wb", **options) as f, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ): fsspec/tests/test_core.py:445: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/core.py:512: in open out = open_files( fsspec/core.py:299: in open_files fs, fs_token, paths = get_fs_token_paths( fsspec/core.py:688: in get_fs_token_paths fs = filesystem(protocol, **inkwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/registry.py:329: in filesystem return cls(**storage_options) ^^^^^^^^^^^^^^^^^^^^^^ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-yv0keju7', '/mp-jrupmvv5', '/mp-mcb39ump', '/mp-_5y7tqt1', '/mp-9j5bphd4', '/mp-jngv7iyh'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:06] concurrency model: async [I 2026-09-25 23:14:06] masquerade (NAT) address: None [I 2026-09-25 23:14:06] passive ports: None [I 2026-09-25 23:14:06] >>> starting FTP server on 0.0.0.0:2121, pid=2000 <<< _______________________________ test_chained_url _______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_chained_url(ftp_writable): host, port, username, password = ftp_writable data = {"afile": b"hello"} cls = fsspec.get_filesystem_class("ftp") > fs = cls(host=host, port=port, username=username, password=password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_core.py:462: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-arnye6nt', '/mp-q12ppamp', '/mp-kgh3ifmw', '/mp-ag8maflk', '/mp-4yl9a34c', '/mp-neuac37b'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:10] concurrency model: async [I 2026-09-25 23:14:10] masquerade (NAT) address: None [I 2026-09-25 23:14:10] passive ports: None [I 2026-09-25 23:14:10] >>> starting FTP server on 0.0.0.0:2121, pid=2002 <<< _________________________________ test_pickle __________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_pickle(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:13] concurrency model: async [I 2026-09-25 23:14:13] masquerade (NAT) address: None [I 2026-09-25 23:14:13] passive ports: None [I 2026-09-25 23:14:13] >>> starting FTP server on 0.0.0.0:2121, pid=2004 <<< __________________________ test_file_read_attributes ___________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_file_read_attributes(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-j_pr05b2', '/mp-gkzdcjqe', '/mp-q0nt0md1', '/mp-hk6h8d79', '/mp-fkheitxe', '/mp-cxte3sd8'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:17] concurrency model: async [I 2026-09-25 23:14:17] masquerade (NAT) address: None [I 2026-09-25 23:14:17] passive ports: None [I 2026-09-25 23:14:17] >>> starting FTP server on 0.0.0.0:2121, pid=2006 <<< __________________________________ test_seek ___________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_seek(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-c7htxa3g', '/mp-n9ax1qft', '/mp-_2sjkuom', '/mp-qib7h7ze', '/mp-ggq1qmso', '/mp-8_nqfpks'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:20] concurrency model: async [I 2026-09-25 23:14:20] masquerade (NAT) address: None [I 2026-09-25 23:14:20] passive ports: None [I 2026-09-25 23:14:20] >>> starting FTP server on 0.0.0.0:2121, pid=2008 <<< _____________________________ test_file_idempotent _____________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_file_idempotent(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:66: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-7itdt9ln', '/mp-kieeqkze', '/mp-e42s0quu', '/mp-7n96wlnr', '/mp-852r81ij', '/mp-4eif_srt'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:23] concurrency model: async [I 2026-09-25 23:14:23] masquerade (NAT) address: None [I 2026-09-25 23:14:23] passive ports: None [I 2026-09-25 23:14:23] >>> starting FTP server on 0.0.0.0:2121, pid=2010 <<< __________________________ test_file_text_attributes ___________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_file_text_attributes(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-hamn90qo', '/mp-ce1c0xu4', '/mp-9j60vks9', '/mp-_yosm4nl', '/mp-zk7w_k06', '/mp-tj3f1q2v'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:26] concurrency model: async [I 2026-09-25 23:14:26] masquerade (NAT) address: None [I 2026-09-25 23:14:26] passive ports: None [I 2026-09-25 23:14:26] >>> starting FTP server on 0.0.0.0:2121, pid=2012 <<< __________________________ test_file_write_attributes __________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_file_write_attributes(ftp_writable): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:102: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-ghfh51lr', '/mp-qpgr_1bq', '/mp-8s5_dn3v', '/mp-76kp5lov', '/mp-sgydj91j', '/mp-7rrp0pgr'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:29] concurrency model: async [I 2026-09-25 23:14:29] masquerade (NAT) address: None [I 2026-09-25 23:14:29] passive ports: None [I 2026-09-25 23:14:29] >>> starting FTP server on 0.0.0.0:2121, pid=2014 <<< ______________________________ test_midread_cache ______________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_midread_cache(ftp_writable): host, port, user, pw = ftp_writable > fs = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-l6wjc99q', '/mp-6vci2c9j', '/mp-u68w_cvu', '/mp-fk9ch6rc', '/mp-ee96h00t', '/mp-ngn1dwjb'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:32] concurrency model: async [I 2026-09-25 23:14:32] masquerade (NAT) address: None [I 2026-09-25 23:14:32] passive ports: None [I 2026-09-25 23:14:32] >>> starting FTP server on 0.0.0.0:2121, pid=2016 <<< _______________________________ test_read_block ________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_read_block(ftp_writable): # not the same as test_read_block in test_utils, this depends on the # behaviour of the bytest caching from fsspec.utils import read_block host, port, user, pw = ftp_writable > fs = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-7o0bhgjl', '/mp-8u63kpx9', '/mp-7eh0ehmh', '/mp-8j5r12rg', '/mp-oiywl8ou', '/mp-n3yyudkx'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:36] concurrency model: async [I 2026-09-25 23:14:36] masquerade (NAT) address: None [I 2026-09-25 23:14:36] passive ports: None [I 2026-09-25 23:14:36] >>> starting FTP server on 0.0.0.0:2121, pid=2018 <<< ________________________________ test_with_gzip ________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_with_gzip(ftp_writable): import gzip data = b"some compressible stuff" host, port, user, pw = ftp_writable > fs = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-zr0u67dm', '/mp-uujfr5_9', '/mp-6wz81znx', '/mp-_tni8sbr', '/mp-m7kdjzft', '/mp-c3tqximz'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:39] concurrency model: async [I 2026-09-25 23:14:39] masquerade (NAT) address: None [I 2026-09-25 23:14:39] passive ports: None [I 2026-09-25 23:14:39] >>> starting FTP server on 0.0.0.0:2121, pid=2020 <<< ________________________________ test_with_zip _________________________________ ftp_writable = ('localhost', 2121, 'user', 'pass') def test_with_zip(ftp_writable): import zipfile data = b"hello zip" host, port, user, pw = ftp_writable > fs = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_file.py:191: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:14:42] concurrency model: async [I 2026-09-25 23:14:42] masquerade (NAT) address: None [I 2026-09-25 23:14:42] passive ports: None [I 2026-09-25 23:14:42] >>> starting FTP server on 0.0.0.0:2121, pid=2022 <<< ______________________ test_readinto_with_multibyte[int8] ______________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_i0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:08] concurrency model: async [I 2026-09-25 23:19:08] masquerade (NAT) address: None [I 2026-09-25 23:19:08] passive ports: None [I 2026-09-25 23:19:08] >>> starting FTP server on 0.0.0.0:2121, pid=2069 <<< _____________________ test_readinto_with_multibyte[int16] ______________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_i0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-pmkcmoxp', '/mp-_2740ev2', '/mp-o2nh_lrz', '/mp-qyijo74r', '/mp-5vittri6', '/mp-dh9fdy9t'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:11] concurrency model: async [I 2026-09-25 23:19:11] masquerade (NAT) address: None [I 2026-09-25 23:19:11] passive ports: None [I 2026-09-25 23:19:11] >>> starting FTP server on 0.0.0.0:2121, pid=2071 <<< _____________________ test_readinto_with_multibyte[int32] ______________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_i0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-aw8klij1', '/mp-o4uximfv', '/mp-69vbkidj', '/mp-hwz2nniq', '/mp-n_m376db', '/mp-dxo1ad1y'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:15] concurrency model: async [I 2026-09-25 23:19:15] masquerade (NAT) address: None [I 2026-09-25 23:19:15] passive ports: None [I 2026-09-25 23:19:15] >>> starting FTP server on 0.0.0.0:2121, pid=2073 <<< _____________________ test_readinto_with_multibyte[int64] ______________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_i0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-wkff_zdz', '/mp-jwoi39tj', '/mp-298tc690', '/mp-m0dldimz', '/mp-93fjt2n3', '/mp-snhl_k7j'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:19] concurrency model: async [I 2026-09-25 23:19:19] masquerade (NAT) address: None [I 2026-09-25 23:19:19] passive ports: None [I 2026-09-25 23:19:19] >>> starting FTP server on 0.0.0.0:2121, pid=2075 <<< _____________________ test_readinto_with_multibyte[uint8] ______________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_u0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-jtkkfjj_', '/mp-h79xs6rv', '/mp-q9c7ob9r', '/mp-w10yriz4', '/mp-a4_84xd2', '/mp-sclxhukz'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:22] concurrency model: async [I 2026-09-25 23:19:22] masquerade (NAT) address: None [I 2026-09-25 23:19:22] passive ports: None [I 2026-09-25 23:19:22] >>> starting FTP server on 0.0.0.0:2121, pid=2077 <<< _____________________ test_readinto_with_multibyte[uint16] _____________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_u0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-e3sgjg0a', '/mp-wv578uen', '/mp-ehla6s7l', '/mp-e4x0e62q', '/mp-tkby8u3v', '/mp-v3diw1jf'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:26] concurrency model: async [I 2026-09-25 23:19:26] masquerade (NAT) address: None [I 2026-09-25 23:19:26] passive ports: None [I 2026-09-25 23:19:26] >>> starting FTP server on 0.0.0.0:2121, pid=2079 <<< _____________________ test_readinto_with_multibyte[uint32] _____________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_u0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-1ybwt01v', '/mp-yh6amdjl', '/mp-srbl2wd5', '/mp-wcvvh621', '/mp-llshf477', '/mp-j658f4if'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:29] concurrency model: async [I 2026-09-25 23:19:29] masquerade (NAT) address: None [I 2026-09-25 23:19:29] passive ports: None [I 2026-09-25 23:19:29] >>> starting FTP server on 0.0.0.0:2121, pid=2081 <<< _____________________ test_readinto_with_multibyte[uint64] _____________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_u0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-1xd9thhq', '/mp-24kif0sf', '/mp-lvu3tq9t', '/mp-q97u6951', '/mp-_gotaxvo', '/mp-bc01exxc'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:33] concurrency model: async [I 2026-09-25 23:19:33] masquerade (NAT) address: None [I 2026-09-25 23:19:33] passive ports: None [I 2026-09-25 23:19:33] >>> starting FTP server on 0.0.0.0:2121, pid=2083 <<< ____________________ test_readinto_with_multibyte[float32] _____________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_f0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-1awqjbxs', '/mp-qsmw1o8x', '/mp-h5fhz_70', '/mp-bh7l18m2', '/mp-ripx0d_n', '/mp-rqn55bwu'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:37] concurrency model: async [I 2026-09-25 23:19:37] masquerade (NAT) address: None [I 2026-09-25 23:19:37] passive ports: None [I 2026-09-25 23:19:37] >>> starting FTP server on 0.0.0.0:2121, pid=2085 <<< ____________________ test_readinto_with_multibyte[float64] _____________________ ftp_writable = ('localhost', 2121, 'user', 'pass') tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_readinto_with_multibyte_f0') dt = @pytest.mark.parametrize( "dt", [ np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, ], ) def test_readinto_with_multibyte(ftp_writable, tmpdir, dt): host, port, user, pw = ftp_writable > ftp = FTPFileSystem(host=host, port=port, username=user, password=pw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/tests/test_spec.py:1288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fsspec/spec.py:128: in __call__ obj = super().__call__(*args, **kwargs, **strip_tokenize_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ fsspec/implementations/ftp.py:111: in __init__ self._connect() fsspec/implementations/ftp.py:133: in _connect self.ftp.connect(self.host, self.port) /usr/lib/python3.14/ftplib.py:158: in connect self.sock = socket.create_connection((self.host, self.port), self.timeout, /usr/lib/python3.14/socket.py:874: in create_connection raise exceptions[0] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 2121), timeout = 30, source_address = None all_errors = False def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib/python3.14/socket.py:859: ConnectionRefusedError ---------------------------- Captured stderr setup ----------------------------- /usr/lib/python3.14/multiprocessing/resource_tracker.py:475: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown: {'/mp-y0krsxqa', '/mp-px65433i', '/mp-mbxhauzq', '/mp-cpu3bhfo', '/mp-bah0_29y', '/mp-te1108wg'} warnings.warn( --------------------------- Captured stderr teardown --------------------------- [I 2026-09-25 23:19:40] concurrency model: async [I 2026-09-25 23:19:40] masquerade (NAT) address: None [I 2026-09-25 23:19:40] passive ports: None [I 2026-09-25 23:19:40] >>> starting FTP server on 0.0.0.0:2121, pid=2087 <<< =============================== warnings summary =============================== fsspec/tests/test_async.py::test_rm_file_with_rm_implementation /usr/lib/python3.14/asyncio/futures.py:371: RuntimeWarning: coroutine 'test_run_coros_in_chunks..runner' was never awaited def _chain_future(source, destination): 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. fsspec/tests/test_spec.py::test_fork_deadlock /usr/lib/python3.14/multiprocessing/popen_fork.py:76: DeprecationWarning: This process (pid=1786) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED fsspec/implementations/tests/test_cached.py::test_blockcache_workflow FAILED fsspec/implementations/tests/test_cached.py::test_workflow[filecache] FAILED fsspec/implementations/tests/test_cached.py::test_workflow[blockcache] FAILED fsspec/implementations/tests/test_cached.py::test_workflow[cached] - C... FAILED fsspec/implementations/tests/test_cached.py::test_glob[simplecache] - ... FAILED fsspec/implementations/tests/test_cached.py::test_glob[blockcache] - C... FAILED fsspec/implementations/tests/test_cached.py::test_glob[cached] - Conne... FAILED fsspec/implementations/tests/test_cached.py::test_blocksize - Connecti... FAILED fsspec/implementations/tests/test_cached.py::test_blockcache_multiinstance FAILED fsspec/implementations/tests/test_cached.py::test_metadata_save_blocked FAILED fsspec/implementations/tests/test_cached.py::test_cached_open_close_read FAILED fsspec/implementations/tests/test_cached.py::test_multi_cat[simplecache] FAILED fsspec/implementations/tests/test_cached.py::test_multi_cat[filecache] FAILED fsspec/implementations/tests/test_cached.py::test_multi_cat[blockcache] FAILED fsspec/implementations/tests/test_cached.py::test_multi_cat[cached] - ... FAILED fsspec/implementations/tests/test_ftp.py::test_complex[bytes] - Connec... FAILED fsspec/implementations/tests/test_ftp.py::test_complex[mmap] - Connect... FAILED fsspec/implementations/tests/test_ftp.py::test_write_small - Connectio... FAILED fsspec/implementations/tests/test_ftp.py::test_with_url - ConnectionRe... FAILED fsspec/implementations/tests/test_ftp.py::test_write_big[bytes] - Conn... FAILED fsspec/implementations/tests/test_ftp.py::test_write_big[mmap] - Conne... FAILED fsspec/implementations/tests/test_ftp.py::test_transaction - Connectio... FAILED fsspec/implementations/tests/test_ftp.py::test_transaction_with_cache FAILED fsspec/implementations/tests/test_ftp.py::test_cat_get - ConnectionRef... FAILED fsspec/implementations/tests/test_ftp.py::test_mkdir - ConnectionRefus... FAILED fsspec/implementations/tests/test_ftp.py::test_rm_get_recursive - Conn... FAILED fsspec/implementations/tests/test_libarchive.py::test_cache - Connecti... FAILED fsspec/tests/test_core.py::test_url_kwargs_chain - ConnectionRefusedEr... FAILED fsspec/tests/test_core.py::test_url_to_fs - ConnectionRefusedError: [E... FAILED fsspec/tests/test_core.py::test_target_protocol_options - ConnectionRe... FAILED fsspec/tests/test_core.py::test_chained_url - ConnectionRefusedError: ... FAILED fsspec/tests/test_file.py::test_pickle - ConnectionRefusedError: [Errn... FAILED fsspec/tests/test_file.py::test_file_read_attributes - ConnectionRefus... FAILED fsspec/tests/test_file.py::test_seek - ConnectionRefusedError: [Errno ... FAILED fsspec/tests/test_file.py::test_file_idempotent - ConnectionRefusedErr... FAILED fsspec/tests/test_file.py::test_file_text_attributes - ConnectionRefus... FAILED fsspec/tests/test_file.py::test_file_write_attributes - ConnectionRefu... FAILED fsspec/tests/test_file.py::test_midread_cache - ConnectionRefusedError... FAILED fsspec/tests/test_file.py::test_read_block - ConnectionRefusedError: [... FAILED fsspec/tests/test_file.py::test_with_gzip - ConnectionRefusedError: [E... FAILED fsspec/tests/test_file.py::test_with_zip - ConnectionRefusedError: [Er... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[int8] - Connec... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[int16] - Conne... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[int32] - Conne... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[int64] - Conne... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[uint8] - Conne... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[uint16] - Conn... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[uint32] - Conn... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[uint64] - Conn... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[float32] - Con... FAILED fsspec/tests/test_spec.py::test_readinto_with_multibyte[float64] - Con... = 51 failed, 2032 passed, 85 skipped, 79 deselected, 2 xfailed, 2 warnings in 783.47s (0:13:03) = ==> ERROR:(B A failure occurred in check().(B  Aborting...(B ]3008;end=0f1e55fee8a0491384fdc349281a00fe\[!p]104\[?7h]3008;end=251d6d7f36b74cd69e4f2db4c9ea8c2d\==> ERROR:(B Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build(B [?12l[?25h[?12l[?25h[?12l[?25hreceiving incremental file list python-fsspec-2026.9.0-1-riscv64-build.log python-fsspec-2026.9.0-1-riscv64-check.log sent 62 bytes received 10,144 bytes 4,082.40 bytes/sec total size is 194,274 speedup is 19.04