0s autopkgtest [16:07:55]: starting date and time: 2024-11-09 16:07:55+0000 0s autopkgtest [16:07:55]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [16:07:55]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.4a5wogzc/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:tiktoken --apt-upgrade tiktoken --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=tiktoken/0.8.0-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-16.secgroup --name adt-plucky-amd64-tiktoken-20241109-160755-juju-7f2275-prod-proposed-migration-environment-15-b3582668-c566-4867-be49-430a4f6cf607 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 44s autopkgtest [16:08:39]: testbed dpkg architecture: amd64 44s autopkgtest [16:08:39]: testbed apt version: 2.9.8 44s autopkgtest [16:08:39]: @@@@@@@@@@@@@@@@@@@@ test bed setup 45s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 45s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.3 kB] 46s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [998 kB] 47s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 47s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [104 kB] 47s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [106 kB] 47s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [156 kB] 47s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [32.6 kB] 47s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [327 kB] 47s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [748 kB] 47s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [37.7 kB] 47s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [13.0 kB] 47s Fetched 2618 kB in 3s (1027 kB/s) 47s Reading package lists... 49s Reading package lists... 50s Building dependency tree... 50s Reading state information... 50s Calculating upgrade... 50s The following NEW packages will be installed: 50s systemd-cryptsetup 50s The following packages will be upgraded: 50s base-passwd bash-completion libattr1 libbpf1 libbsd0 libbytesize-common 50s libbytesize1 libdrm-common libdrm2 libjson-glib-1.0-0 50s libjson-glib-1.0-common libmaxminddb0 libmnl0 libnghttp2-14 libnspr4 50s libnss-systemd libpam-systemd libpython3.12-minimal libpython3.12-stdlib 50s libpython3.12t64 libsystemd-shared libsystemd0 libudev1 libudisks2-0 50s liburcu8t64 linux-firmware openssh-client openssh-server openssh-sftp-server 50s pci.ids python3-gi python3-idna python3-jsonpatch python3-lazr.restfulclient 50s python3-urllib3 python3-wadllib python3.12 python3.12-gdbm 50s python3.12-minimal systemd systemd-resolved systemd-sysv systemd-timesyncd 50s udev udisks2 usbutils 50s 46 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 50s Need to get 558 MB of archives. 50s After this operation, 29.4 MB of additional disk space will be used. 50s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 base-passwd amd64 3.6.5 [53.4 kB] 50s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.12t64 amd64 3.12.7-2 [2372 kB] 51s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12 amd64 3.12.7-2 [661 kB] 51s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.12-stdlib amd64 3.12.7-2 [2079 kB] 51s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12-minimal amd64 3.12.7-2 [2345 kB] 51s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.12-minimal amd64 3.12.7-2 [836 kB] 51s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libnss-systemd amd64 256.5-2ubuntu4 [191 kB] 51s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-timesyncd amd64 256.5-2ubuntu4 [40.8 kB] 51s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-resolved amd64 256.5-2ubuntu4 [339 kB] 51s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd-shared amd64 256.5-2ubuntu4 [2289 kB] 51s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd0 amd64 256.5-2ubuntu4 [511 kB] 51s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-sysv amd64 256.5-2ubuntu4 [11.9 kB] 51s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-systemd amd64 256.5-2ubuntu4 [288 kB] 51s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd amd64 256.5-2ubuntu4 [3587 kB] 52s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 udev amd64 256.5-2ubuntu4 [2081 kB] 52s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libudev1 amd64 256.5-2ubuntu4 [209 kB] 52s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-sftp-server amd64 1:9.7p1-7ubuntu5 [40.8 kB] 52s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-server amd64 1:9.7p1-7ubuntu5 [583 kB] 52s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-client amd64 1:9.7p1-7ubuntu5 [1027 kB] 52s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libattr1 amd64 1:2.5.2-2 [12.1 kB] 52s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libbsd0 amd64 0.12.2-2 [49.9 kB] 52s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libbpf1 amd64 1:1.4.6-1 [184 kB] 52s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 libmnl0 amd64 1.0.5-3 [12.6 kB] 52s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-gi amd64 3.50.0-3 [250 kB] 52s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 bash-completion all 1:2.14.0-2 [210 kB] 52s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libdrm-common all 2.4.123-1 [8436 B] 52s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libdrm2 amd64 2.4.123-1 [43.7 kB] 52s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 libmaxminddb0 amd64 1.11.0-1 [19.9 kB] 52s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 libnghttp2-14 amd64 1.64.0-1 [80.7 kB] 52s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 liburcu8t64 amd64 0.14.1-1 [68.6 kB] 52s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 pci.ids all 0.0~2024.10.24-1 [279 kB] 52s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12-gdbm amd64 3.12.7-2 [30.4 kB] 52s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 usbutils amd64 1:018-1 [84.5 kB] 52s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libbytesize1 amd64 2.11-1ubuntu1 [14.0 kB] 52s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libbytesize-common all 2.11-1ubuntu1 [3584 B] 52s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libjson-glib-1.0-common all 1.10.0+ds-2 [5502 B] 52s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 libjson-glib-1.0-0 amd64 1.10.0+ds-2 [72.8 kB] 52s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libnspr4 amd64 2:4.35-1.1ubuntu2 [118 kB] 52s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 udisks2 amd64 2.10.1-11ubuntu1 [326 kB] 52s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 libudisks2-0 amd64 2.10.1-11ubuntu1 [176 kB] 52s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-firmware amd64 20241108.git3bbb13a7-0ubuntu1 [536 MB] 76s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-idna all 3.8-2 [47.0 kB] 76s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-jsonpatch all 1.32-4 [12.2 kB] 76s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-wadllib all 2.0.0-1 [36.7 kB] 76s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-lazr.restfulclient all 0.14.6-2 [50.9 kB] 76s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-urllib3 all 2.0.7-2ubuntu0.1 [93.1 kB] 76s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-cryptsetup amd64 256.5-2ubuntu4 [120 kB] 77s Preconfiguring packages ... 77s Fetched 558 MB in 26s (21.2 MB/s) 77s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75312 files and directories currently installed.) 77s Preparing to unpack .../base-passwd_3.6.5_amd64.deb ... 77s Unpacking base-passwd (3.6.5) over (3.6.4) ... 77s Setting up base-passwd (3.6.5) ... 77s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75313 files and directories currently installed.) 77s Preparing to unpack .../0-libpython3.12t64_3.12.7-2_amd64.deb ... 77s Unpacking libpython3.12t64:amd64 (3.12.7-2) over (3.12.7-1) ... 77s Preparing to unpack .../1-python3.12_3.12.7-2_amd64.deb ... 77s Unpacking python3.12 (3.12.7-2) over (3.12.7-1) ... 77s Preparing to unpack .../2-libpython3.12-stdlib_3.12.7-2_amd64.deb ... 77s Unpacking libpython3.12-stdlib:amd64 (3.12.7-2) over (3.12.7-1) ... 78s Preparing to unpack .../3-python3.12-minimal_3.12.7-2_amd64.deb ... 78s Unpacking python3.12-minimal (3.12.7-2) over (3.12.7-1) ... 78s Preparing to unpack .../4-libpython3.12-minimal_3.12.7-2_amd64.deb ... 78s Unpacking libpython3.12-minimal:amd64 (3.12.7-2) over (3.12.7-1) ... 78s Preparing to unpack .../5-libnss-systemd_256.5-2ubuntu4_amd64.deb ... 78s Unpacking libnss-systemd:amd64 (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../6-systemd-timesyncd_256.5-2ubuntu4_amd64.deb ... 78s Unpacking systemd-timesyncd (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../7-systemd-resolved_256.5-2ubuntu4_amd64.deb ... 78s Unpacking systemd-resolved (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../8-libsystemd-shared_256.5-2ubuntu4_amd64.deb ... 78s Unpacking libsystemd-shared:amd64 (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../9-libsystemd0_256.5-2ubuntu4_amd64.deb ... 78s Unpacking libsystemd0:amd64 (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Setting up libsystemd0:amd64 (256.5-2ubuntu4) ... 78s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75313 files and directories currently installed.) 78s Preparing to unpack .../systemd-sysv_256.5-2ubuntu4_amd64.deb ... 78s Unpacking systemd-sysv (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../libpam-systemd_256.5-2ubuntu4_amd64.deb ... 78s Unpacking libpam-systemd:amd64 (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../systemd_256.5-2ubuntu4_amd64.deb ... 78s Unpacking systemd (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../udev_256.5-2ubuntu4_amd64.deb ... 78s Unpacking udev (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 78s Preparing to unpack .../libudev1_256.5-2ubuntu4_amd64.deb ... 78s Unpacking libudev1:amd64 (256.5-2ubuntu4) over (256.5-2ubuntu3) ... 79s Setting up libudev1:amd64 (256.5-2ubuntu4) ... 79s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75313 files and directories currently installed.) 79s Preparing to unpack .../openssh-sftp-server_1%3a9.7p1-7ubuntu5_amd64.deb ... 79s Unpacking openssh-sftp-server (1:9.7p1-7ubuntu5) over (1:9.7p1-7ubuntu4) ... 79s Preparing to unpack .../openssh-server_1%3a9.7p1-7ubuntu5_amd64.deb ... 79s Unpacking openssh-server (1:9.7p1-7ubuntu5) over (1:9.7p1-7ubuntu4) ... 79s Preparing to unpack .../openssh-client_1%3a9.7p1-7ubuntu5_amd64.deb ... 79s Unpacking openssh-client (1:9.7p1-7ubuntu5) over (1:9.7p1-7ubuntu4) ... 79s Preparing to unpack .../libattr1_1%3a2.5.2-2_amd64.deb ... 79s Unpacking libattr1:amd64 (1:2.5.2-2) over (1:2.5.2-1build2) ... 79s Setting up libattr1:amd64 (1:2.5.2-2) ... 79s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75313 files and directories currently installed.) 79s Preparing to unpack .../libbsd0_0.12.2-2_amd64.deb ... 79s Unpacking libbsd0:amd64 (0.12.2-2) over (0.12.2-1) ... 79s Setting up libbsd0:amd64 (0.12.2-2) ... 79s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75313 files and directories currently installed.) 79s Preparing to unpack .../00-libbpf1_1%3a1.4.6-1_amd64.deb ... 79s Unpacking libbpf1:amd64 (1:1.4.6-1) over (1:1.4.5-1) ... 79s Preparing to unpack .../01-libmnl0_1.0.5-3_amd64.deb ... 79s Unpacking libmnl0:amd64 (1.0.5-3) over (1.0.5-2build1) ... 79s Preparing to unpack .../02-python3-gi_3.50.0-3_amd64.deb ... 79s Unpacking python3-gi (3.50.0-3) over (3.48.2-1) ... 79s Preparing to unpack .../03-bash-completion_1%3a2.14.0-2_all.deb ... 79s Unpacking bash-completion (1:2.14.0-2) over (1:2.14.0-1) ... 79s Preparing to unpack .../04-libdrm-common_2.4.123-1_all.deb ... 79s Unpacking libdrm-common (2.4.123-1) over (2.4.122-1) ... 79s Preparing to unpack .../05-libdrm2_2.4.123-1_amd64.deb ... 79s Unpacking libdrm2:amd64 (2.4.123-1) over (2.4.122-1) ... 79s Preparing to unpack .../06-libmaxminddb0_1.11.0-1_amd64.deb ... 79s Unpacking libmaxminddb0:amd64 (1.11.0-1) over (1.10.0-1) ... 79s Preparing to unpack .../07-libnghttp2-14_1.64.0-1_amd64.deb ... 79s Unpacking libnghttp2-14:amd64 (1.64.0-1) over (1.62.1-2) ... 79s Preparing to unpack .../08-liburcu8t64_0.14.1-1_amd64.deb ... 79s Unpacking liburcu8t64:amd64 (0.14.1-1) over (0.14.0-4) ... 80s Preparing to unpack .../09-pci.ids_0.0~2024.10.24-1_all.deb ... 80s Unpacking pci.ids (0.0~2024.10.24-1) over (0.0~2024.09.12-1) ... 80s Preparing to unpack .../10-python3.12-gdbm_3.12.7-2_amd64.deb ... 80s Unpacking python3.12-gdbm (3.12.7-2) over (3.12.7-1) ... 80s Preparing to unpack .../11-usbutils_1%3a018-1_amd64.deb ... 80s Unpacking usbutils (1:018-1) over (1:017-3build1) ... 80s Preparing to unpack .../12-libbytesize1_2.11-1ubuntu1_amd64.deb ... 80s Unpacking libbytesize1:amd64 (2.11-1ubuntu1) over (2.10-1ubuntu2) ... 80s Preparing to unpack .../13-libbytesize-common_2.11-1ubuntu1_all.deb ... 80s Unpacking libbytesize-common (2.11-1ubuntu1) over (2.10-1ubuntu2) ... 80s Preparing to unpack .../14-libjson-glib-1.0-common_1.10.0+ds-2_all.deb ... 80s Unpacking libjson-glib-1.0-common (1.10.0+ds-2) over (1.8.0-2build2) ... 80s Preparing to unpack .../15-libjson-glib-1.0-0_1.10.0+ds-2_amd64.deb ... 80s Unpacking libjson-glib-1.0-0:amd64 (1.10.0+ds-2) over (1.8.0-2build2) ... 80s Preparing to unpack .../16-libnspr4_2%3a4.35-1.1ubuntu2_amd64.deb ... 80s Unpacking libnspr4:amd64 (2:4.35-1.1ubuntu2) over (2:4.35-1.1ubuntu1) ... 80s Preparing to unpack .../17-udisks2_2.10.1-11ubuntu1_amd64.deb ... 80s Unpacking udisks2 (2.10.1-11ubuntu1) over (2.10.1-9ubuntu2) ... 80s Preparing to unpack .../18-libudisks2-0_2.10.1-11ubuntu1_amd64.deb ... 80s Unpacking libudisks2-0:amd64 (2.10.1-11ubuntu1) over (2.10.1-9ubuntu2) ... 80s Preparing to unpack .../19-linux-firmware_20241108.git3bbb13a7-0ubuntu1_amd64.deb ... 80s Unpacking linux-firmware (20241108.git3bbb13a7-0ubuntu1) over (20240913.gita34e7a5f-0ubuntu2) ... 82s Preparing to unpack .../20-python3-idna_3.8-2_all.deb ... 82s Unpacking python3-idna (3.8-2) over (3.6-2.1) ... 82s Preparing to unpack .../21-python3-jsonpatch_1.32-4_all.deb ... 82s Unpacking python3-jsonpatch (1.32-4) over (1.32-3) ... 83s Preparing to unpack .../22-python3-wadllib_2.0.0-1_all.deb ... 83s Unpacking python3-wadllib (2.0.0-1) over (1.3.6-5) ... 83s Preparing to unpack .../23-python3-lazr.restfulclient_0.14.6-2_all.deb ... 83s Unpacking python3-lazr.restfulclient (0.14.6-2) over (0.14.6-1) ... 83s Preparing to unpack .../24-python3-urllib3_2.0.7-2ubuntu0.1_all.deb ... 83s Unpacking python3-urllib3 (2.0.7-2ubuntu0.1) over (2.0.7-2) ... 83s Selecting previously unselected package systemd-cryptsetup. 83s Preparing to unpack .../25-systemd-cryptsetup_256.5-2ubuntu4_amd64.deb ... 83s Unpacking systemd-cryptsetup (256.5-2ubuntu4) ... 83s Setting up liburcu8t64:amd64 (0.14.1-1) ... 83s Setting up pci.ids (0.0~2024.10.24-1) ... 83s Setting up linux-firmware (20241108.git3bbb13a7-0ubuntu1) ... 83s Setting up openssh-client (1:9.7p1-7ubuntu5) ... 83s Setting up libmaxminddb0:amd64 (1.11.0-1) ... 83s Setting up python3.12-gdbm (3.12.7-2) ... 83s Setting up python3-jsonpatch (1.32-4) ... 83s Setting up libpython3.12-minimal:amd64 (3.12.7-2) ... 83s Setting up libnghttp2-14:amd64 (1.64.0-1) ... 83s Setting up usbutils (1:018-1) ... 83s Setting up libnspr4:amd64 (2:4.35-1.1ubuntu2) ... 83s Setting up bash-completion (1:2.14.0-2) ... 83s Setting up python3-wadllib (2.0.0-1) ... 83s Setting up python3-gi (3.50.0-3) ... 83s Setting up libbytesize-common (2.11-1ubuntu1) ... 83s Setting up libmnl0:amd64 (1.0.5-3) ... 83s Setting up python3-idna (3.8-2) ... 83s Setting up libsystemd-shared:amd64 (256.5-2ubuntu4) ... 83s Setting up python3-urllib3 (2.0.7-2ubuntu0.1) ... 84s Setting up libjson-glib-1.0-common (1.10.0+ds-2) ... 84s Setting up libbytesize1:amd64 (2.11-1ubuntu1) ... 84s Setting up python3-lazr.restfulclient (0.14.6-2) ... 84s Setting up libdrm-common (2.4.123-1) ... 84s Setting up libbpf1:amd64 (1:1.4.6-1) ... 84s Setting up libudisks2-0:amd64 (2.10.1-11ubuntu1) ... 84s Setting up python3.12-minimal (3.12.7-2) ... 84s Setting up openssh-sftp-server (1:9.7p1-7ubuntu5) ... 84s Setting up libpython3.12-stdlib:amd64 (3.12.7-2) ... 84s Setting up openssh-server (1:9.7p1-7ubuntu5) ... 85s Setting up python3.12 (3.12.7-2) ... 86s Setting up systemd (256.5-2ubuntu4) ... 86s /usr/lib/tmpfiles.d/legacy.conf:13: Duplicate line for path "/run/lock", ignoring. 86s Created symlink '/run/systemd/system/tmp.mount' → '/dev/null'. 86s /usr/lib/tmpfiles.d/legacy.conf:13: Duplicate line for path "/run/lock", ignoring. 87s Setting up libjson-glib-1.0-0:amd64 (1.10.0+ds-2) ... 87s Setting up libpython3.12t64:amd64 (3.12.7-2) ... 87s Setting up systemd-cryptsetup (256.5-2ubuntu4) ... 87s Setting up systemd-timesyncd (256.5-2ubuntu4) ... 87s systemd-time-wait-sync.service is a disabled or a static unit not running, not starting it. 87s Setting up udev (256.5-2ubuntu4) ... 88s Setting up libdrm2:amd64 (2.4.123-1) ... 88s Setting up systemd-resolved (256.5-2ubuntu4) ... 89s Setting up udisks2 (2.10.1-11ubuntu1) ... 89s Setting up systemd-sysv (256.5-2ubuntu4) ... 89s Setting up libnss-systemd:amd64 (256.5-2ubuntu4) ... 89s Setting up libpam-systemd:amd64 (256.5-2ubuntu4) ... 89s Processing triggers for libc-bin (2.40-1ubuntu3) ... 89s Processing triggers for ufw (0.36.2-8) ... 89s Processing triggers for man-db (2.12.1-3) ... 90s Processing triggers for dbus (1.14.10-4ubuntu5) ... 90s Processing triggers for shared-mime-info (2.4-5) ... 91s Processing triggers for initramfs-tools (0.142ubuntu34) ... 91s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 91s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 99s Reading package lists... 99s Building dependency tree... 99s Reading state information... 99s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 100s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 100s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 100s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 100s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 101s Reading package lists... 101s Reading package lists... 101s Building dependency tree... 101s Reading state information... 101s Calculating upgrade... 101s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 101s Reading package lists... 101s Building dependency tree... 101s Reading state information... 102s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 102s autopkgtest [16:09:37]: rebooting testbed after setup commands that affected boot 117s autopkgtest [16:09:52]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 120s autopkgtest [16:09:55]: @@@@@@@@@@@@@@@@@@@@ apt-source tiktoken 122s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (dsc) [2252 B] 122s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (tar) [31.6 kB] 122s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (diff) [3840 B] 122s gpgv: Signature made Wed Oct 30 06:26:55 2024 UTC 122s gpgv: using RSA key 638BC75EC1E5C589067E35DE62645EB35F686A8A 122s gpgv: issuer "cdluminate@gmail.com" 122s gpgv: Can't check signature: No public key 122s dpkg-source: warning: cannot verify inline signature for ./tiktoken_0.8.0-1.dsc: no acceptable signature found 122s autopkgtest [16:09:57]: testing package tiktoken version 0.8.0-1 122s autopkgtest [16:09:57]: build not needed 122s autopkgtest [16:09:57]: test pybuild-autopkgtest: preparing testbed 124s Reading package lists... 124s Building dependency tree... 124s Reading state information... 124s Starting pkgProblemResolver with broken count: 0 124s Starting 2 pkgProblemResolver with broken count: 0 124s Done 124s The following additional packages will be installed: 124s autoconf automake autopoint autotools-dev binutils-mingw-w64-i686 124s binutils-mingw-w64-x86-64 build-essential cargo cargo-1.80 cmake cmake-data 124s cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 124s dh-autoreconf dh-python dh-strip-nondeterminism dwz fontconfig-config 124s fonts-dejavu-core fonts-dejavu-mono g++ g++-14 g++-14-x86-64-linux-gnu 124s g++-x86-64-linux-gnu gcc gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu 124s gettext intltool-debian libarchive-zip-perl libasan8 libbrotli-dev 124s libbz2-dev libcc1-0 libdebhelper-perl libexpat1-dev 124s libfile-stripnondeterminism-perl libfontconfig-dev libfontconfig1 124s libfreetype-dev libgcc-14-dev libgit2-1.7 libgomp1 libhttp-parser2.9 124s libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 libmpc3 libpfm4 124s libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev libpython3.12-dev 124s libquadmath0 librhash0 librust-ab-glyph-dev 124s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 124s librust-addr2line-dev librust-adler-dev librust-ahash-dev 124s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 124s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 124s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 124s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 124s librust-async-attributes-dev librust-async-channel-dev 124s librust-async-executor-dev librust-async-fs-dev 124s librust-async-global-executor-dev librust-async-io-dev 124s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 124s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 124s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 124s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 124s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 124s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 124s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 124s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 124s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 124s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 124s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 124s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 124s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 124s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 124s librust-color-quant-dev librust-colorchoice-dev 124s librust-compiler-builtins+core-dev 124s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 124s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 124s librust-const-random-dev librust-const-random-macro-dev 124s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 124s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 124s librust-critical-section-dev librust-crossbeam-deque-dev 124s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 124s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 124s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 124s librust-derive-arbitrary-dev librust-derive-more-0.99-dev librust-digest-dev 124s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 124s librust-either-dev librust-env-logger-dev librust-equivalent-dev 124s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 124s librust-event-listener-dev librust-event-listener-strategy-dev 124s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 124s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 124s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 124s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 124s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 124s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 124s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 124s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 124s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 124s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 124s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 124s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 124s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 124s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 124s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 124s librust-libc-dev librust-libloading-dev librust-libm-dev 124s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 124s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 124s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 124s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 124s librust-num-bigint-dev librust-num-complex-dev librust-num-cpus-dev 124s librust-num-integer-dev librust-num-rational-dev librust-num-threads-dev 124s librust-num-traits-dev librust-object-dev librust-once-cell-dev 124s librust-oorandom-dev librust-owned-ttf-parser-dev librust-owning-ref-dev 124s librust-parking-dev librust-parking-lot-core-dev librust-parking-lot-dev 124s librust-parse-zoneinfo-dev librust-pathfinder-geometry-dev 124s librust-pathfinder-simd-dev librust-phf+uncased-dev librust-phf-codegen-dev 124s librust-phf-dev librust-phf-generator-dev librust-phf-shared+uncased-dev 124s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 124s librust-pkg-config-dev librust-plotters-backend-dev 124s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 124s librust-png-dev librust-polling-dev librust-portable-atomic-dev 124s librust-postgres-derive-dev librust-postgres-protocol-dev 124s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 124s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 124s librust-ptr-meta-derive-dev librust-ptr-meta-dev 124s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 124s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 124s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 124s librust-quickcheck-dev librust-quote-dev librust-radium-dev 124s librust-rand-chacha-dev librust-rand-core+getrandom-dev 124s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 124s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 124s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 124s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 124s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 124s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 124s librust-rustc-version-dev librust-rustix-dev 124s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 124s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 124s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 124s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 124s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 124s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 124s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 124s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 124s librust-smol-str-dev librust-socket2-dev librust-spin-dev 124s librust-stable-deref-trait-dev librust-static-assertions-dev 124s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 124s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 124s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 124s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 124s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 124s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 124s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 124s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 124s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 124s librust-tokio-macros-dev librust-tracing-attributes-dev 124s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 124s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 124s librust-typenum-dev librust-unarray-dev librust-uncased-dev 124s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 124s librust-unicode-normalization-dev librust-unicode-segmentation-dev 124s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 124s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 124s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 124s librust-value-bag-sval2-dev librust-version-check-dev 124s librust-wait-timeout-dev librust-walkdir-dev 124s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 124s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 124s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 124s librust-wasm-bindgen-macro-support+spans-dev 124s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 124s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 124s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 124s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 124s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 124s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 124s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 124s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 124s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 124s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 124s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 124s python3-build python3-dateutil python3-hypothesis python3-iniconfig 124s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 124s python3-pytest python3-regex python3-semantic-version 124s python3-setuptools-rust python3-six python3-sortedcontainers 124s python3-tiktoken python3-toml python3-wheel python3.12-dev rustc rustc-1.80 124s uuid-dev zlib1g-dev 124s Suggested packages: 124s autoconf-archive gnu-standards autoconf-doc cargo-1.80-doc cmake-doc 124s cmake-format elpa-cmake-mode ninja-build cpp-doc gcc-14-locales cpp-14-doc 124s dh-make flit g++-multilib g++-14-multilib gcc-14-doc gcc-multilib 124s manpages-dev flex bison gdb gcc-doc gcc-14-multilib gdb-x86-64-linux-gnu 124s gettext-doc libasprintf-dev libgettextpo-dev freetype2-doc 124s librust-adler+compiler-builtins-dev librust-adler+core-dev 124s librust-adler+rustc-dep-of-std-dev librust-backtrace+cpp-demangle-dev 124s librust-backtrace+rustc-serialize-dev librust-backtrace+serde-dev 124s librust-backtrace+verify-winapi-dev librust-backtrace+winapi-dev 124s librust-bytes+serde-dev librust-cfg-if-0.1+core-dev librust-cfg-if+core-dev 124s librust-compiler-builtins+c-dev gnuplot-nox librust-csv-core+libc-dev 124s librust-either+serde-dev librust-getrandom+compiler-builtins-dev 124s librust-getrandom+core-dev librust-getrandom+rustc-dep-of-std-dev 124s librust-libc+rustc-dep-of-std-dev librust-libc+rustc-std-workspace-core-dev 124s librust-phf+phf-macros-dev librust-phf+serde-dev librust-phf+unicase-dev 124s librust-phf-shared+unicase-dev librust-rand-xorshift+serde-dev 124s librust-rustc-demangle+compiler-builtins-dev librust-rustc-demangle+core-dev 124s librust-rustc-demangle+rustc-dep-of-std-dev librust-ryu+no-panic-dev 124s librust-slog+erased-serde-dev librust-tinyvec+arbitrary-dev 124s librust-tinyvec+serde-dev librust-uncased+serde-dev 124s librust-uncased+with-serde-alloc-dev 124s librust-wasm-bindgen-backend+extra-traits-dev librust-wasm-bindgen+serde-dev 124s librust-wasm-bindgen+serde-serialize-dev librust-wasm-bindgen+serde-json-dev 124s librust-wasm-bindgen+strict-macro-dev 124s librust-wasm-bindgen+xxx-debug-only-print-generated-code-dev 124s librust-wasm-bindgen-macro+strict-macro-dev 124s librust-wasm-bindgen-macro-support+extra-traits-dev librust-weezl+async-dev 124s librust-weezl+futures-dev libstdc++-14-doc libtool-doc gfortran 124s | fortran95-compiler gcj-jdk llvm-19-doc m4-doc libmail-box-perl python3-pip 124s python3-venv python-build-doc python-hypothesis-doc python-installer-doc 124s python-semantic-version-doc python-sortedcontainers-doc llvm-18 lld-18 124s clang-18 124s Recommended packages: 124s bzip2-doc libarchive-cpio-perl libpng-tools librust-phf+std-dev 124s librust-subtle+default-dev libltdl-dev llvm-19-dev libmail-sendmail-perl 124s python3-click 125s The following NEW packages will be installed: 125s autoconf automake autopkgtest-satdep autopoint autotools-dev 125s binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 build-essential cargo 125s cargo-1.80 cmake cmake-data cpp cpp-14 cpp-14-x86-64-linux-gnu 125s cpp-x86-64-linux-gnu debhelper debugedit dh-autoreconf dh-python 125s dh-strip-nondeterminism dwz fontconfig-config fonts-dejavu-core 125s fonts-dejavu-mono g++ g++-14 g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu 125s gcc gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext 125s intltool-debian libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev 125s libcc1-0 libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 125s libfontconfig-dev libfontconfig1 libfreetype-dev libgcc-14-dev libgit2-1.7 125s libgomp1 libhttp-parser2.9 libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 125s libmpc3 libpfm4 libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev 125s libpython3.12-dev libquadmath0 librhash0 librust-ab-glyph-dev 125s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 125s librust-addr2line-dev librust-adler-dev librust-ahash-dev 125s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 125s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 125s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 125s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 125s librust-async-attributes-dev librust-async-channel-dev 125s librust-async-executor-dev librust-async-fs-dev 125s librust-async-global-executor-dev librust-async-io-dev 125s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 125s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 125s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 125s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 125s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 125s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 125s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 125s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 125s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 125s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 125s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 125s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 125s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 125s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 125s librust-color-quant-dev librust-colorchoice-dev 125s librust-compiler-builtins+core-dev 125s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 125s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 125s librust-const-random-dev librust-const-random-macro-dev 125s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 125s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 125s librust-critical-section-dev librust-crossbeam-deque-dev 125s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 125s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 125s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 125s librust-derive-arbitrary-dev librust-derive-more-0.99-dev librust-digest-dev 125s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 125s librust-either-dev librust-env-logger-dev librust-equivalent-dev 125s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 125s librust-event-listener-dev librust-event-listener-strategy-dev 125s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 125s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 125s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 125s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 125s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 125s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 125s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 125s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 125s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 125s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 125s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 125s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 125s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 125s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 125s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 125s librust-libc-dev librust-libloading-dev librust-libm-dev 125s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 125s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 125s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 125s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 125s librust-num-bigint-dev librust-num-complex-dev librust-num-cpus-dev 125s librust-num-integer-dev librust-num-rational-dev librust-num-threads-dev 125s librust-num-traits-dev librust-object-dev librust-once-cell-dev 125s librust-oorandom-dev librust-owned-ttf-parser-dev librust-owning-ref-dev 125s librust-parking-dev librust-parking-lot-core-dev librust-parking-lot-dev 125s librust-parse-zoneinfo-dev librust-pathfinder-geometry-dev 125s librust-pathfinder-simd-dev librust-phf+uncased-dev librust-phf-codegen-dev 125s librust-phf-dev librust-phf-generator-dev librust-phf-shared+uncased-dev 125s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 125s librust-pkg-config-dev librust-plotters-backend-dev 125s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 125s librust-png-dev librust-polling-dev librust-portable-atomic-dev 125s librust-postgres-derive-dev librust-postgres-protocol-dev 125s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 125s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 125s librust-ptr-meta-derive-dev librust-ptr-meta-dev 125s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 125s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 125s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 125s librust-quickcheck-dev librust-quote-dev librust-radium-dev 125s librust-rand-chacha-dev librust-rand-core+getrandom-dev 125s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 125s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 125s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 125s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 125s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 125s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 125s librust-rustc-version-dev librust-rustix-dev 125s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 125s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 125s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 125s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 125s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 125s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 125s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 125s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 125s librust-smol-str-dev librust-socket2-dev librust-spin-dev 125s librust-stable-deref-trait-dev librust-static-assertions-dev 125s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 125s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 125s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 125s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 125s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 125s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 125s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 125s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 125s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 125s librust-tokio-macros-dev librust-tracing-attributes-dev 125s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 125s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 125s librust-typenum-dev librust-unarray-dev librust-uncased-dev 125s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 125s librust-unicode-normalization-dev librust-unicode-segmentation-dev 125s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 125s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 125s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 125s librust-value-bag-sval2-dev librust-version-check-dev 125s librust-wait-timeout-dev librust-walkdir-dev 125s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 125s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 125s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 125s librust-wasm-bindgen-macro-support+spans-dev 125s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 125s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 125s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 125s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 125s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 125s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 125s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 125s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 125s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 125s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 125s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 125s python3-build python3-dateutil python3-hypothesis python3-iniconfig 125s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 125s python3-pytest python3-regex python3-semantic-version 125s python3-setuptools-rust python3-six python3-sortedcontainers 125s python3-tiktoken python3-toml python3-wheel python3.12-dev rustc rustc-1.80 125s uuid-dev zlib1g-dev 125s 0 upgraded, 468 newly installed, 0 to remove and 0 not upgraded. 125s Need to get 221 MB/221 MB of archives. 125s After this operation, 922 MB of additional disk space will be used. 125s Get:1 /tmp/autopkgtest.BgRSpK/1-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [864 B] 125s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 m4 amd64 1.4.19-4build1 [244 kB] 125s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 autoconf all 2.72-3 [382 kB] 125s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 autotools-dev all 20220109.1 [44.9 kB] 125s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 automake all 1:1.16.5-1.3ubuntu1 [558 kB] 125s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 autopoint all 0.22.5-2 [616 kB] 125s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libisl23 amd64 0.27-1 [685 kB] 125s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libmpc3 amd64 1.3.1-1build2 [55.3 kB] 125s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-7ubuntu1 [11.9 MB] 126s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14 amd64 14.2.0-7ubuntu1 [1026 B] 126s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [5452 B] 126s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp amd64 4:14.1.0-2ubuntu1 [22.4 kB] 126s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libcc1-0 amd64 14.2.0-7ubuntu1 [47.6 kB] 126s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libgomp1 amd64 14.2.0-7ubuntu1 [148 kB] 126s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libitm1 amd64 14.2.0-7ubuntu1 [29.1 kB] 126s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libasan8 amd64 14.2.0-7ubuntu1 [2998 kB] 126s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 liblsan0 amd64 14.2.0-7ubuntu1 [1316 kB] 126s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 libtsan2 amd64 14.2.0-7ubuntu1 [2733 kB] 126s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 libubsan1 amd64 14.2.0-7ubuntu1 [1177 kB] 126s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libhwasan0 amd64 14.2.0-7ubuntu1 [1634 kB] 127s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libquadmath0 amd64 14.2.0-7ubuntu1 [153 kB] 127s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-14-dev amd64 14.2.0-7ubuntu1 [2814 kB] 127s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-7ubuntu1 [23.4 MB] 128s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14 amd64 14.2.0-7ubuntu1 [526 kB] 128s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [1214 B] 128s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc amd64 4:14.1.0-2ubuntu1 [5000 B] 128s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++-14-dev amd64 14.2.0-7ubuntu1 [2503 kB] 128s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14-x86-64-linux-gnu amd64 14.2.0-7ubuntu1 [13.4 MB] 129s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14 amd64 14.2.0-7ubuntu1 [19.8 kB] 129s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [966 B] 129s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 g++ amd64 4:14.1.0-2ubuntu1 [1100 B] 129s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 build-essential amd64 12.10ubuntu1 [4928 B] 129s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libhttp-parser2.9 amd64 2.9.4-6build1 [22.3 kB] 129s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libgit2-1.7 amd64 1.7.2+ds-1ubuntu3 [529 kB] 129s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libstd-rust-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [21.5 MB] 130s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libstd-rust-1.80-dev amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [41.7 MB] 132s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 rustc-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [3334 kB] 132s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 cargo-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [6148 kB] 133s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 libjsoncpp25 amd64 1.9.5-6build1 [82.8 kB] 133s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 librhash0 amd64 1.4.3-3build1 [129 kB] 133s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 cmake-data all 3.30.3-1 [2246 kB] 133s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 cmake amd64 3.30.3-1 [12.0 MB] 133s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 133s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 libtool all 2.4.7-7build1 [166 kB] 133s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-autoreconf all 20 [16.1 kB] 133s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 133s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 133s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-strip-nondeterminism all 1.14.0-1 [5058 B] 133s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 debugedit amd64 1:5.1-1 [46.9 kB] 133s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 dwz amd64 0.15-1build6 [115 kB] 133s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 gettext amd64 0.22.5-2 [948 kB] 133s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 133s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 133s Get:54 http://ftpmaster.internal/ubuntu plucky/main amd64 debhelper all 13.20ubuntu1 [893 kB] 134s Get:55 http://ftpmaster.internal/ubuntu plucky/universe amd64 dh-python all 6.20241024 [112 kB] 134s Get:56 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB] 134s Get:57 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-core all 2.37-8 [835 kB] 134s Get:58 http://ftpmaster.internal/ubuntu plucky/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB] 134s Get:59 http://ftpmaster.internal/ubuntu plucky/main amd64 libbrotli-dev amd64 1.1.0-2build2 [353 kB] 134s Get:60 http://ftpmaster.internal/ubuntu plucky/main amd64 libbz2-dev amd64 1.0.8-6 [33.8 kB] 134s Get:61 http://ftpmaster.internal/ubuntu plucky/main amd64 libexpat1-dev amd64 2.6.2-2 [140 kB] 134s Get:62 http://ftpmaster.internal/ubuntu plucky/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB] 134s Get:63 http://ftpmaster.internal/ubuntu plucky/main amd64 zlib1g-dev amd64 1:1.3.dfsg+really1.3.1-1ubuntu1 [895 kB] 134s Get:64 http://ftpmaster.internal/ubuntu plucky/main amd64 libpng-dev amd64 1.6.44-1 [266 kB] 134s Get:65 http://ftpmaster.internal/ubuntu plucky/main amd64 libfreetype-dev amd64 2.13.3+dfsg-1 [575 kB] 134s Get:66 http://ftpmaster.internal/ubuntu plucky/main amd64 uuid-dev amd64 2.40.2-1ubuntu1 [52.7 kB] 134s Get:67 http://ftpmaster.internal/ubuntu plucky/main amd64 libpkgconf3 amd64 1.8.1-4 [32.3 kB] 134s Get:68 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf-bin amd64 1.8.1-4 [21.6 kB] 134s Get:69 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf amd64 1.8.1-4 [16.8 kB] 134s Get:70 http://ftpmaster.internal/ubuntu plucky/main amd64 libfontconfig-dev amd64 2.15.0-1.1ubuntu2 [161 kB] 134s Get:71 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.12-dev amd64 3.12.7-2 [5697 kB] 134s Get:72 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-dev amd64 3.12.6-0ubuntu1 [10.2 kB] 134s Get:73 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-all-dev amd64 3.12.6-0ubuntu1 [916 B] 134s Get:74 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-rasterizer-dev amd64 0.1.7-1 [12.2 kB] 134s Get:75 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libm-dev amd64 0.2.8-1 [101 kB] 134s Get:76 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-rasterizer+libm-dev amd64 0.1.7-1 [1064 B] 134s Get:77 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-core-maths-dev amd64 0.1.0-2 [7944 B] 134s Get:78 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ttf-parser-dev amd64 0.24.1-1 [148 kB] 134s Get:79 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-owned-ttf-parser-dev amd64 0.24.0-1 [129 kB] 134s Get:80 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-dev amd64 0.2.28-1 [20.7 kB] 134s Get:81 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cfg-if-dev amd64 1.0.0-1 [10.5 kB] 134s Get:82 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cpp-demangle-dev amd64 0.4.0-1 [66.1 kB] 134s Get:83 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fallible-iterator-dev amd64 0.3.0-2 [20.3 kB] 134s Get:84 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-ident-dev amd64 1.0.13-1 [38.5 kB] 134s Get:85 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-proc-macro2-dev amd64 1.0.86-1 [44.8 kB] 134s Get:86 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quote-dev amd64 1.0.37-1 [29.5 kB] 134s Get:87 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-syn-dev amd64 2.0.77-1 [214 kB] 134s Get:88 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-derive-arbitrary-dev amd64 1.3.2-1 [12.3 kB] 134s Get:89 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-arbitrary-dev amd64 1.3.2-1 [31.4 kB] 134s Get:90 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-equivalent-dev amd64 1.0.1-1 [8238 B] 134s Get:91 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-critical-section-dev amd64 1.1.3-1 [20.5 kB] 134s Get:92 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-derive-dev amd64 1.0.210-1 [50.1 kB] 134s Get:93 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-dev amd64 1.0.210-2 [66.4 kB] 134s Get:94 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-portable-atomic-dev amd64 1.4.3-2 [99.7 kB] 134s Get:95 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libc-dev amd64 0.2.155-1 [367 kB] 134s Get:96 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-getrandom-dev amd64 0.2.12-1 [36.4 kB] 134s Get:97 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smallvec-dev amd64 1.13.2-1 [35.5 kB] 134s Get:98 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-lot-core-dev amd64 0.9.10-1 [32.6 kB] 134s Get:99 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-once-cell-dev amd64 1.19.0-1 [31.7 kB] 134s Get:100 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crunchy-dev amd64 0.2.2-1 [5336 B] 134s Get:101 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tiny-keccak-dev amd64 2.0.2-1 [20.9 kB] 134s Get:102 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-random-macro-dev amd64 0.1.16-2 [10.5 kB] 135s Get:103 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-random-dev amd64 0.1.17-2 [8584 B] 135s Get:104 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-version-check-dev amd64 0.9.5-1 [16.9 kB] 135s Get:105 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-byteorder-dev amd64 1.5.0-1 [22.4 kB] 135s Get:106 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zerocopy-derive-dev amd64 0.7.32-2 [29.7 kB] 135s Get:107 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zerocopy-dev amd64 0.7.32-1 [116 kB] 135s Get:108 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ahash-dev all 0.8.11-8 [37.9 kB] 135s Get:109 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-allocator-api2-dev amd64 0.2.16-1 [54.8 kB] 135s Get:110 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins-dev amd64 0.1.101-1 [156 kB] 135s Get:111 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-either-dev amd64 1.13.0-1 [20.2 kB] 135s Get:112 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-utils-dev amd64 0.8.19-1 [41.1 kB] 135s Get:113 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-epoch-dev amd64 0.9.18-1 [42.3 kB] 135s Get:114 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-epoch+std-dev amd64 0.9.18-1 [1128 B] 135s Get:115 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-deque-dev amd64 0.8.5-1 [22.4 kB] 135s Get:116 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rayon-core-dev amd64 1.12.1-1 [63.7 kB] 135s Get:117 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rayon-dev amd64 1.10.0-1 [149 kB] 135s Get:118 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-std-workspace-core-dev amd64 1.0.0-1 [3020 B] 135s Get:119 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-hashbrown-dev amd64 0.14.5-5 [110 kB] 135s Get:120 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indexmap-dev amd64 2.2.6-1 [66.7 kB] 135s Get:121 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-stable-deref-trait-dev amd64 1.2.0-1 [9794 B] 135s Get:122 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-gimli-dev amd64 0.28.1-2 [209 kB] 135s Get:123 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memmap2-dev amd64 0.9.3-1 [30.8 kB] 135s Get:124 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crc32fast-dev amd64 1.4.2-1 [39.8 kB] 135s Get:125 http://ftpmaster.internal/ubuntu plucky/main amd64 pkg-config amd64 1.8.1-4 [7362 B] 135s Get:126 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pkg-config-dev amd64 0.3.27-1 [21.5 kB] 135s Get:127 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libz-sys-dev amd64 1.1.20-1 [19.7 kB] 135s Get:128 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-adler-dev amd64 1.0.2-2 [15.3 kB] 135s Get:129 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-miniz-oxide-dev amd64 0.7.1-1 [51.5 kB] 135s Get:130 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-flate2-dev amd64 1.0.27-2 [64.9 kB] 135s Get:131 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-derive-dev amd64 2.6.1-2 [11.0 kB] 135s Get:132 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-dev amd64 2.6.1-2 [28.0 kB] 135s Get:133 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-ref-dev amd64 2.6.1-1 [8942 B] 135s Get:134 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-erased-serde-dev amd64 0.3.31-1 [22.7 kB] 135s Get:135 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-fmt-dev all 1.0.3-3 [6956 B] 135s Get:136 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-syn-1-dev amd64 1.0.109-2 [188 kB] 135s Get:137 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-no-panic-dev amd64 0.1.13-1 [11.3 kB] 135s Get:138 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-itoa-dev amd64 1.0.9-1 [13.1 kB] 135s Get:139 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ryu-dev amd64 1.0.15-1 [41.7 kB] 135s Get:140 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-json-dev amd64 1.0.128-1 [128 kB] 135s Get:141 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-test-dev amd64 1.0.171-1 [20.6 kB] 135s Get:142 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-serde1-dev amd64 1.9.0-1 [7822 B] 135s Get:143 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-buffer-dev amd64 2.6.1-1 [16.7 kB] 135s Get:144 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-dynamic-dev amd64 2.6.1-1 [9540 B] 135s Get:145 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-fmt-dev amd64 2.6.1-1 [12.0 kB] 135s Get:146 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-serde-dev amd64 2.6.1-1 [13.2 kB] 135s Get:147 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-sval2-dev amd64 1.9.0-1 [7860 B] 135s Get:148 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-dev amd64 1.9.0-1 [37.6 kB] 136s Get:149 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-log-dev amd64 0.4.22-1 [43.0 kB] 136s Get:150 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memchr-dev amd64 2.7.1-1 [71.6 kB] 136s Get:151 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ppv-lite86-dev amd64 0.2.16-1 [21.9 kB] 136s Get:152 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core-dev amd64 0.6.4-2 [23.8 kB] 136s Get:153 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-chacha-dev amd64 0.3.1-2 [16.9 kB] 136s Get:154 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+getrandom-dev amd64 0.6.4-2 [1052 B] 136s Get:155 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+serde-dev amd64 0.6.4-2 [1108 B] 136s Get:156 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+std-dev amd64 0.6.4-2 [1050 B] 136s Get:157 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-dev amd64 0.8.5-1 [77.5 kB] 136s Get:158 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-segmentation-dev amd64 1.11.0-1 [74.2 kB] 136s Get:159 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-convert-case-dev amd64 0.6.0-2 [19.4 kB] 136s Get:160 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-semver-dev amd64 1.0.23-1 [30.6 kB] 136s Get:161 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-version-dev amd64 0.4.0-1 [13.8 kB] 136s Get:162 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-derive-more-0.99-dev amd64 0.99.18-1 [49.9 kB] 136s Get:163 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cfg-if-0.1-dev amd64 0.1.10-2 [10.2 kB] 136s Get:164 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-blobby-dev amd64 0.3.1-1 [11.3 kB] 136s Get:165 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-typenum-dev amd64 1.17.0-2 [41.2 kB] 136s Get:166 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zeroize-derive-dev amd64 1.4.2-1 [12.7 kB] 136s Get:167 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zeroize-dev amd64 1.8.1-1 [21.6 kB] 136s Get:168 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-generic-array-dev amd64 0.14.7-1 [16.9 kB] 136s Get:169 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-block-buffer-dev amd64 0.10.2-2 [12.2 kB] 136s Get:170 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-oid-dev amd64 0.9.3-1 [40.9 kB] 136s Get:171 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crypto-common-dev amd64 0.1.6-1 [10.5 kB] 136s Get:172 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-subtle-dev amd64 2.6.1-1 [16.1 kB] 136s Get:173 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-digest-dev amd64 0.10.7-2 [20.9 kB] 136s Get:174 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-static-assertions-dev amd64 1.1.0-1 [19.0 kB] 136s Get:175 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-twox-hash-dev amd64 1.6.3-1 [21.6 kB] 136s Get:176 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ruzstd-dev amd64 0.5.0-1 [44.6 kB] 136s Get:177 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-object-dev amd64 0.32.2-1 [228 kB] 136s Get:178 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-demangle-dev amd64 0.1.21-1 [27.7 kB] 136s Get:179 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-addr2line-dev amd64 0.21.0-2 [36.4 kB] 136s Get:180 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-aho-corasick-dev amd64 1.1.3-1 [146 kB] 136s Get:181 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitflags-1-dev amd64 1.3.2-5 [25.3 kB] 136s Get:182 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anes-dev amd64 0.1.6-1 [21.1 kB] 136s Get:183 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-dev amd64 1.0.8-1 [16.7 kB] 136s Get:184 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-arrayvec-dev amd64 0.7.4-2 [29.9 kB] 136s Get:185 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-utf8parse-dev amd64 0.2.1-1 [15.0 kB] 136s Get:186 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-parse-dev amd64 0.2.1-1 [17.1 kB] 136s Get:187 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-query-dev amd64 1.0.0-1 [9768 B] 136s Get:188 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-colorchoice-dev amd64 1.0.0-1 [8336 B] 136s Get:189 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstream-dev amd64 0.6.15-1 [25.7 kB] 136s Get:190 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-jobserver-dev amd64 0.1.32-1 [29.1 kB] 136s Get:191 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-shlex-dev amd64 1.3.0-1 [20.1 kB] 136s Get:192 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cc-dev amd64 1.1.14-1 [73.6 kB] 136s Get:193 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-backtrace-dev amd64 0.3.69-2 [69.9 kB] 136s Get:194 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anyhow-dev amd64 1.0.86-1 [44.3 kB] 136s Get:195 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytecheck-derive-dev amd64 0.6.12-1 [7086 B] 136s Get:196 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ptr-meta-derive-dev amd64 0.1.4-1 [3964 B] 136s Get:197 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ptr-meta-dev amd64 0.1.4-1 [7342 B] 136s Get:198 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-simdutf8-dev amd64 0.1.4-4 [27.2 kB] 136s Get:199 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytemuck-derive-dev amd64 1.5.0-2 [18.7 kB] 136s Get:200 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytemuck-dev amd64 1.14.0-1 [42.7 kB] 136s Get:201 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-atomic-dev amd64 0.6.0-1 [15.5 kB] 136s Get:202 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-md5-asm-dev amd64 0.5.0-2 [7512 B] 136s Get:203 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-md-5-dev amd64 0.10.6-1 [17.5 kB] 136s Get:204 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cpufeatures-dev amd64 0.2.11-1 [14.9 kB] 137s Get:205 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha1-asm-dev amd64 0.5.1-2 [8056 B] 137s Get:206 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha1-dev amd64 0.10.6-1 [16.0 kB] 137s Get:207 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-slog-dev amd64 2.7.0-1 [44.0 kB] 137s Get:208 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-uuid-dev amd64 1.10.0-1 [44.2 kB] 137s Get:209 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytecheck-dev amd64 0.6.12-1 [10.2 kB] 137s Get:210 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-autocfg-dev amd64 1.1.0-1 [15.1 kB] 137s Get:211 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-traits-dev amd64 0.2.19-2 [46.2 kB] 137s Get:212 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-funty-dev amd64 2.0.0-1 [13.8 kB] 137s Get:213 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-radium-dev amd64 1.1.0-1 [14.9 kB] 137s Get:214 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tap-dev amd64 1.0.1-1 [12.7 kB] 137s Get:215 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-traitobject-dev amd64 0.1.0-1 [4540 B] 137s Get:216 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unsafe-any-dev amd64 0.4.2-2 [4622 B] 137s Get:217 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-typemap-dev amd64 0.3.3-2 [6724 B] 137s Get:218 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wyz-dev amd64 0.5.1-1 [19.7 kB] 137s Get:219 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitvec-dev amd64 1.0.1-1 [179 kB] 138s Get:220 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytes-dev amd64 1.5.0-1 [51.5 kB] 138s Get:221 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rend-dev amd64 0.4.0-1 [10.3 kB] 138s Get:222 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rkyv-derive-dev amd64 0.7.44-1 [17.5 kB] 138s Get:223 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-seahash-dev amd64 4.1.0-1 [25.1 kB] 138s Get:224 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smol-str-dev amd64 0.2.0-1 [15.2 kB] 138s Get:225 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec-dev amd64 1.6.0-2 [37.7 kB] 138s Get:226 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec-macros-dev amd64 0.1.0-1 [3852 B] 138s Get:227 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec+tinyvec-macros-dev amd64 1.6.0-2 [1124 B] 138s Get:228 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rkyv-dev amd64 0.7.44-1 [94.4 kB] 138s Get:229 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-complex-dev amd64 0.4.6-2 [30.8 kB] 138s Get:230 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-approx-dev amd64 0.5.1-1 [16.0 kB] 138s Get:231 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-array-init-dev amd64 2.0.1-1 [12.3 kB] 138s Get:232 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-attributes-dev all 1.1.2-6 [6756 B] 138s Get:233 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-concurrent-queue-dev amd64 2.5.0-4 [23.9 kB] 138s Get:234 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-dev amd64 2.2.0-1 [11.6 kB] 138s Get:235 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pin-project-lite-dev amd64 0.2.13-1 [30.2 kB] 138s Get:236 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-event-listener-dev all 5.3.1-8 [29.6 kB] 138s Get:237 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-event-listener-strategy-dev amd64 0.5.2-3 [12.6 kB] 138s Get:238 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-core-dev amd64 0.3.30-1 [16.7 kB] 138s Get:239 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-channel-dev all 2.3.1-8 [13.1 kB] 138s Get:240 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-task-dev all 4.7.1-3 [29.4 kB] 138s Get:241 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fastrand-dev amd64 2.1.1-1 [17.8 kB] 138s Get:242 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-io-dev amd64 0.3.30-2 [11.0 kB] 138s Get:243 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-lite-dev amd64 2.3.0-2 [38.6 kB] 138s Get:244 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-slab-dev amd64 0.4.9-1 [21.2 kB] 138s Get:245 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-executor-dev all 1.13.1-1 [18.7 kB] 138s Get:246 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-lock-dev all 3.4.0-4 [29.3 kB] 138s Get:247 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-atomic-waker-dev amd64 1.1.2-1 [14.3 kB] 138s Get:248 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-attributes-dev amd64 0.1.27-1 [33.3 kB] 138s Get:249 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-valuable-derive-dev amd64 0.1.0-1 [5942 B] 138s Get:250 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-valuable-dev amd64 0.1.0-4 [23.5 kB] 138s Get:251 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-core-dev amd64 0.1.32-1 [53.8 kB] 138s Get:252 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-dev amd64 0.1.40-1 [69.5 kB] 138s Get:253 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-blocking-dev all 1.6.1-5 [17.5 kB] 138s Get:254 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-fs-dev all 2.1.2-4 [15.3 kB] 138s Get:255 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitflags-dev amd64 2.6.0-1 [41.1 kB] 138s Get:256 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins+core-dev amd64 0.1.101-1 [1090 B] 138s Get:257 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins+rustc-dep-of-std-dev amd64 0.1.101-1 [1104 B] 138s Get:258 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-errno-dev amd64 0.3.8-1 [13.0 kB] 138s Get:259 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-linux-raw-sys-dev amd64 0.4.14-1 [138 kB] 138s Get:260 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustix-dev amd64 0.38.32-1 [274 kB] 138s Get:261 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-polling-dev amd64 3.4.0-1 [47.8 kB] 138s Get:262 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-io-dev amd64 2.3.3-4 [41.0 kB] 138s Get:263 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-mio-dev amd64 1.0.2-2 [87.6 kB] 138s Get:264 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-owning-ref-dev amd64 0.4.1-1 [13.7 kB] 138s Get:265 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-scopeguard-dev amd64 1.2.0-1 [13.3 kB] 138s Get:266 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-lock-api-dev amd64 0.4.12-1 [22.9 kB] 138s Get:267 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-lot-dev amd64 0.12.1-2build1 [37.8 kB] 138s Get:268 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-signal-hook-registry-dev amd64 1.4.0-1 [19.2 kB] 138s Get:269 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-socket2-dev amd64 0.5.7-1 [48.3 kB] 138s Get:270 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tokio-macros-dev amd64 2.4.0-2 [14.0 kB] 138s Get:271 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tokio-dev amd64 1.39.3-3 [561 kB] 138s Get:272 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-global-executor-dev amd64 2.4.1-5 [14.6 kB] 138s Get:273 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-net-dev all 2.0.0-4 [14.6 kB] 138s Get:274 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-signal-dev amd64 0.2.10-1 [16.0 kB] 138s Get:275 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-process-dev all 2.3.0-1 [21.2 kB] 138s Get:276 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-kv-log-macro-dev all 1.0.8-4 [7290 B] 138s Get:277 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pin-utils-dev amd64 0.1.0-1 [9340 B] 138s Get:278 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-std-dev all 1.12.0-22 [168 kB] 138s Get:279 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-base64-dev amd64 0.21.7-1 [65.1 kB] 138s Get:280 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-vec-dev amd64 0.6.3-1 [21.1 kB] 138s Get:281 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-set-dev amd64 0.5.2-1 [15.7 kB] 138s Get:282 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-set+std-dev amd64 0.5.2-1 [1084 B] 138s Get:283 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-syntax-dev amd64 0.8.2-1 [200 kB] 138s Get:284 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-automata-dev amd64 0.4.7-1 [424 kB] 138s Get:285 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bstr-dev amd64 1.7.0-2build1 [271 kB] 138s Get:286 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bumpalo-dev amd64 3.16.0-1 [75.7 kB] 138s Get:287 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cast-dev amd64 0.3.0-1 [13.1 kB] 138s Get:288 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-iana-time-zone-dev amd64 0.1.60-1 [25.1 kB] 138s Get:289 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-shared-dev amd64 0.2.87-1 [9090 B] 138s Get:290 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-backend-dev amd64 0.2.87-1 [27.0 kB] 138s Get:291 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-support-dev amd64 0.2.87-1 [21.2 kB] 138s Get:292 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-dev amd64 0.2.87-1 [16.6 kB] 138s Get:293 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-dev amd64 0.2.87-1 [157 kB] 138s Get:294 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-support+spans-dev amd64 0.2.87-1 [1074 B] 140s Get:295 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro+spans-dev amd64 0.2.87-1 [1058 B] 140s Get:296 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen+spans-dev amd64 0.2.87-1 [1038 B] 140s Get:297 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen+default-dev amd64 0.2.87-1 [1046 B] 140s Get:298 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-js-sys-dev amd64 0.3.64-1 [71.9 kB] 140s Get:299 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pure-rust-locales-dev amd64 0.8.1-1 [112 kB] 140s Get:300 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-dev amd64 0.4.38-2 [172 kB] 140s Get:301 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-dev amd64 1.10.6-1 [199 kB] 140s Get:302 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parse-zoneinfo-dev amd64 0.3.0-1 [71.0 kB] 140s Get:303 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-siphasher-dev amd64 0.3.10-1 [12.0 kB] 140s Get:304 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-shared-dev amd64 0.11.2-1 [15.6 kB] 140s Get:305 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-dev amd64 0.11.2-1 [21.6 kB] 140s Get:306 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-uncased-dev amd64 0.9.6-2 [12.2 kB] 140s Get:307 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-shared+uncased-dev amd64 0.11.2-1 [1026 B] 140s Get:308 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf+uncased-dev amd64 0.11.2-1 [1028 B] 140s Get:309 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-io-dev amd64 0.2.2-1 [8180 B] 140s Get:310 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-half-dev amd64 1.8.2-4 [34.8 kB] 140s Get:311 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-ll-dev amd64 0.2.2-1 [15.8 kB] 140s Get:312 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-dev amd64 0.2.2-2 [32.6 kB] 140s Get:313 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-lex-dev amd64 0.7.2-2 [14.3 kB] 140s Get:314 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-strsim-dev amd64 0.11.1-1 [15.9 kB] 140s Get:315 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-terminal-size-dev amd64 0.3.0-2 [12.6 kB] 140s Get:316 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicase-dev amd64 2.7.0-1 [19.4 kB] 140s Get:317 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-width-dev amd64 0.1.13-3 [325 kB] 140s Get:318 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-builder-dev amd64 4.5.15-2 [135 kB] 140s Get:319 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-heck-dev amd64 0.4.1-1 [13.3 kB] 140s Get:320 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-derive-dev amd64 4.5.13-2 [29.3 kB] 140s Get:321 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-dev amd64 4.5.16-1 [52.3 kB] 140s Get:322 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-csv-core-dev amd64 0.1.11-1 [25.9 kB] 140s Get:323 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-csv-dev amd64 1.3.0-1 [729 kB] 140s Get:324 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-sink-dev amd64 0.3.31-1 [10.1 kB] 140s Get:325 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-channel-dev amd64 0.3.30-1 [31.8 kB] 140s Get:326 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-task-dev amd64 0.3.30-1 [13.5 kB] 140s Get:327 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-macro-dev amd64 0.3.30-1 [13.3 kB] 140s Get:328 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-util-dev amd64 0.3.30-2 [127 kB] 140s Get:329 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-cpus-dev amd64 1.16.0-1 [18.1 kB] 140s Get:330 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-executor-dev amd64 0.3.30-1 [19.8 kB] 140s Get:331 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-dev amd64 0.3.30-2 [53.2 kB] 140s Get:332 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-is-terminal-dev amd64 0.4.13-1 [8264 B] 140s Get:333 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-itertools-dev amd64 0.10.5-1 [101 kB] 140s Get:334 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-oorandom-dev amd64 11.1.3-1 [11.3 kB] 140s Get:335 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-i686-pc-windows-gnu-dev amd64 0.4.0-1 [3652 B] 140s Get:336 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-x86-64-pc-windows-gnu-dev amd64 0.4.0-1 [3660 B] 140s Get:337 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-dev amd64 0.3.9-1 [953 kB] 140s Get:338 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dirs-sys-next-dev amd64 0.1.1-1 [12.1 kB] 140s Get:339 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dirs-next-dev amd64 2.0.0-1 [13.1 kB] 140s Get:340 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-float-ord-dev amd64 0.3.2-1 [9402 B] 140s Get:341 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cmake-dev amd64 0.1.45-1 [16.0 kB] 140s Get:342 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-freetype-sys-dev amd64 0.13.1-1 [11.8 kB] 140s Get:343 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-freetype-dev amd64 0.7.0-4 [20.4 kB] 140s Get:344 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-spin-dev amd64 0.9.8-4 [33.4 kB] 140s Get:345 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-lazy-static-dev amd64 1.4.0-2 [12.5 kB] 140s Get:346 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pathfinder-simd-dev amd64 0.5.2-1 [20.1 kB] 140s Get:347 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pathfinder-geometry-dev amd64 0.5.1-1 [13.2 kB] 140s Get:348 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-util-dev amd64 0.1.6-1 [14.0 kB] 140s Get:349 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-same-file-dev amd64 1.0.6-1 [11.5 kB] 140s Get:350 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-walkdir-dev amd64 2.5.0-1 [24.5 kB] 140s Get:351 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-cstr-dev amd64 0.3.0-1 [9068 B] 140s Get:352 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libloading-dev amd64 0.8.5-1 [29.2 kB] 140s Get:353 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dlib-dev amd64 0.5.2-2 [7972 B] 140s Get:354 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-yeslogic-fontconfig-sys-dev amd64 3.0.1-1 [8110 B] 140s Get:355 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-font-kit-dev amd64 0.11.0-2 [56.2 kB] 140s Get:356 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-color-quant-dev amd64 1.1.0-1 [8462 B] 140s Get:357 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-weezl-dev amd64 0.1.5-1 [30.3 kB] 140s Get:358 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-gif-dev amd64 0.11.3-1 [31.9 kB] 140s Get:359 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-jpeg-decoder-dev amd64 0.3.0-1 [717 kB] 140s Get:360 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-integer-dev amd64 0.1.46-1 [22.6 kB] 140s Get:361 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-humantime-dev amd64 2.1.0-1 [18.2 kB] 140s Get:362 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-termcolor-dev amd64 1.4.1-1 [19.7 kB] 140s Get:363 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-env-logger-dev amd64 0.10.2-2 [34.4 kB] 140s Get:364 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quickcheck-dev amd64 1.0.3-3 [27.9 kB] 140s Get:365 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-bigint-dev amd64 0.4.6-1 [84.9 kB] 140s Get:366 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-rational-dev amd64 0.4.2-1 [28.7 kB] 140s Get:367 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-png-dev amd64 0.17.7-3 [63.4 kB] 140s Get:368 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-qoi-dev amd64 0.4.1-2 [56.7 kB] 140s Get:369 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tiff-dev amd64 0.9.0-1 [1413 kB] 140s Get:370 http://ftpmaster.internal/ubuntu plucky/main amd64 libsharpyuv0 amd64 1.4.0-0.1 [17.5 kB] 140s Get:371 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebp7 amd64 1.4.0-0.1 [231 kB] 140s Get:372 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpdemux2 amd64 1.4.0-0.1 [12.4 kB] 140s Get:373 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpmux3 amd64 1.4.0-0.1 [25.8 kB] 140s Get:374 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpdecoder3 amd64 1.4.0-0.1 [115 kB] 140s Get:375 http://ftpmaster.internal/ubuntu plucky/main amd64 libsharpyuv-dev amd64 1.4.0-0.1 [19.4 kB] 140s Get:376 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebp-dev amd64 1.4.0-0.1 [371 kB] 141s Get:377 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libwebp-sys-dev amd64 0.9.5-1build1 [1357 kB] 141s Get:378 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-webp-dev amd64 0.2.6-1 [1846 kB] 141s Get:379 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-image-dev amd64 0.24.7-2 [229 kB] 141s Get:380 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-backend-dev amd64 0.3.5-1 [15.3 kB] 141s Get:381 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-bitmap-dev amd64 0.3.3-3 [17.1 kB] 141s Get:382 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-svg-dev amd64 0.3.5-1 [9258 B] 141s Get:383 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-web-sys-dev amd64 0.3.64-2 [581 kB] 141s Get:384 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-dev amd64 0.3.5-4 [118 kB] 141s Get:385 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smol-dev all 2.0.2-1 [205 kB] 141s Get:386 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinytemplate-dev amd64 1.2.1-1 [26.8 kB] 141s Get:387 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-criterion-dev all 0.5.1-6 [104 kB] 141s Get:388 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-generator-dev amd64 0.11.2-2 [12.3 kB] 141s Get:389 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-codegen-dev amd64 0.11.2-1 [14.3 kB] 141s Get:390 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-tz-build-dev amd64 0.2.1-1 [12.1 kB] 141s Get:391 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-tz-dev amd64 0.8.6-2 [513 kB] 141s Get:392 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ctor-dev amd64 0.1.26-1 [12.0 kB] 141s Get:393 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-powerfmt-macros-dev amd64 0.1.0-1 [10.5 kB] 141s Get:394 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-powerfmt-dev amd64 0.2.0-1 [16.5 kB] 141s Get:395 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-deranged-dev amd64 0.3.11-1 [18.4 kB] 141s Get:396 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eui48-dev amd64 1.1.0-2 [16.1 kB] 141s Get:397 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indenter-dev amd64 0.3.3-1 [8646 B] 141s Get:398 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eyre-dev amd64 0.6.12-1 [38.0 kB] 141s Get:399 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eyre+default-dev amd64 0.6.12-1 [1050 B] 141s Get:400 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fancy-regex-dev amd64 0.11.0-2 [54.7 kB] 141s Get:401 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fnv-dev amd64 1.0.7-1 [12.8 kB] 141s Get:402 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-geo-types-dev amd64 0.7.11-2 [32.8 kB] 141s Get:403 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ghost-dev amd64 0.1.5-1 [16.1 kB] 141s Get:404 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-hmac-dev amd64 0.12.1-1 [43.9 kB] 141s Get:405 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indoc-dev amd64 2.0.5-1 [16.7 kB] 141s Get:406 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-inventory-dev amd64 0.3.2-1 [13.5 kB] 142s Get:407 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memoffset-dev amd64 0.8.0-1 [10.9 kB] 142s Get:408 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-threads-dev amd64 0.1.7-1 [9152 B] 142s Get:409 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-derive-dev amd64 0.4.5-1 [13.4 kB] 142s Get:410 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha2-asm-dev amd64 0.6.2-2 [14.4 kB] 142s Get:411 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha2-dev amd64 0.10.8-1 [25.6 kB] 142s Get:412 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-bidi-dev amd64 0.3.13-1 [39.8 kB] 142s Get:413 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-normalization-dev amd64 0.1.22-1 [104 kB] 142s Get:414 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-stringprep-dev amd64 0.1.2-1 [16.5 kB] 142s Get:415 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-protocol-dev amd64 0.6.6-2 [25.9 kB] 142s Get:416 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-core-dev amd64 0.1.2-1 [9136 B] 142s Get:417 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-macros-dev amd64 0.2.16-1 [25.1 kB] 142s Get:418 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-dev amd64 0.3.31-2 [101 kB] 142s Get:419 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-types-dev amd64 0.2.6-2 [30.1 kB] 142s Get:420 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-xorshift-dev amd64 0.3.0-2 [10.9 kB] 142s Get:421 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quick-error-dev amd64 2.0.1-1 [15.6 kB] 142s Get:422 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tempfile-dev amd64 3.10.1-1 [33.7 kB] 142s Get:423 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rusty-fork-dev amd64 0.3.0-1 [20.4 kB] 142s Get:424 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wait-timeout-dev amd64 0.2.0-1 [14.1 kB] 142s Get:425 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rusty-fork+wait-timeout-dev amd64 0.3.0-1 [1134 B] 142s Get:426 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unarray-dev amd64 0.1.4-1 [14.6 kB] 142s Get:427 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-proptest-dev amd64 1.5.0-2 [171 kB] 142s Get:428 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19-runtime amd64 1:19.1.2-1ubuntu1 [554 kB] 142s Get:429 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-runtime amd64 1:19.0-60~exp1 [5608 B] 142s Get:430 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19-linker-tools amd64 1:19.1.2-1ubuntu1 [1312 kB] 142s Get:431 http://ftpmaster.internal/ubuntu plucky/universe amd64 libpfm4 amd64 4.13.0+git83-g91970fe-1 [429 kB] 142s Get:432 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19 amd64 1:19.1.2-1ubuntu1 [17.8 MB] 144s Get:433 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm amd64 1:19.0-60~exp1 [4134 B] 144s Get:434 http://ftpmaster.internal/ubuntu plucky/universe amd64 binutils-mingw-w64-x86-64 amd64 2.43.1-4ubuntu1+12 [3637 kB] 145s Get:435 http://ftpmaster.internal/ubuntu plucky/universe amd64 binutils-mingw-w64-i686 amd64 2.43.1-4ubuntu1+12 [3314 kB] 145s Get:436 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-python3-dll-a-dev amd64 0.2.10-1 [31.6 kB] 145s Get:437 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-target-lexicon-dev amd64 0.12.14-1 [25.1 kB] 145s Get:438 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-build-config-dev amd64 0.22.5-1 [30.7 kB] 145s Get:439 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12-dev amd64 3.12.7-2 [505 kB] 145s Get:440 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-ffi-dev amd64 0.22.5-1 [62.5 kB] 145s Get:441 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-macros-backend-dev amd64 0.22.5-1 [58.5 kB] 145s Get:442 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-macros-dev amd64 0.22.5-1 [10.3 kB] 145s Get:443 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rust-decimal-dev amd64 1.36.0-1 [114 kB] 145s Get:444 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unindent-dev amd64 0.2.3-1 [9186 B] 145s Get:445 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-dev amd64 0.22.5-1 [415 kB] 145s Get:446 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-hash-dev amd64 1.1.0-1 [10.8 kB] 145s Get:447 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 145s Get:448 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.1-1 [41.4 kB] 145s Get:449 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 145s Get:450 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-toml all 0.10.2-1 [16.5 kB] 145s Get:451 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wheel all 0.44.0-1 [54.2 kB] 145s Get:452 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-build all 1.2.2-1 [31.0 kB] 145s Get:453 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 145s Get:454 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-pyproject all 6.20241024 [1728 B] 145s Get:455 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.12.6-0ubuntu1 [886 B] 145s Get:456 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-six all 1.16.0-7 [13.1 kB] 145s Get:457 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dateutil all 2.9.0-2 [80.3 kB] 145s Get:458 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-sortedcontainers all 2.4.0-2 [27.6 kB] 145s Get:459 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-hypothesis all 6.105.1-1 [321 kB] 145s Get:460 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 145s Get:461 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 145s Get:462 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.2-1 [251 kB] 145s Get:463 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-regex amd64 0.1.20240724-1 [299 kB] 145s Get:464 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-semantic-version all 2.10.0-2 [15.1 kB] 145s Get:465 http://ftpmaster.internal/ubuntu plucky/main amd64 rustc amd64 1.80.1ubuntu2 [2754 B] 145s Get:466 http://ftpmaster.internal/ubuntu plucky/main amd64 cargo amd64 1.80.1ubuntu2 [2244 B] 145s Get:467 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-setuptools-rust all 1.9.0+dfsg-2 [23.1 kB] 145s Get:468 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-tiktoken amd64 0.8.0-1 [725 kB] 146s Fetched 221 MB in 21s (10.5 MB/s) 146s Selecting previously unselected package m4. 147s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75551 files and directories currently installed.) 147s Preparing to unpack .../000-m4_1.4.19-4build1_amd64.deb ... 147s Unpacking m4 (1.4.19-4build1) ... 147s Selecting previously unselected package autoconf. 147s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 147s Unpacking autoconf (2.72-3) ... 147s Selecting previously unselected package autotools-dev. 147s Preparing to unpack .../002-autotools-dev_20220109.1_all.deb ... 147s Unpacking autotools-dev (20220109.1) ... 147s Selecting previously unselected package automake. 147s Preparing to unpack .../003-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 147s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 147s Selecting previously unselected package autopoint. 147s Preparing to unpack .../004-autopoint_0.22.5-2_all.deb ... 147s Unpacking autopoint (0.22.5-2) ... 147s Selecting previously unselected package libisl23:amd64. 147s Preparing to unpack .../005-libisl23_0.27-1_amd64.deb ... 147s Unpacking libisl23:amd64 (0.27-1) ... 147s Selecting previously unselected package libmpc3:amd64. 147s Preparing to unpack .../006-libmpc3_1.3.1-1build2_amd64.deb ... 147s Unpacking libmpc3:amd64 (1.3.1-1build2) ... 147s Selecting previously unselected package cpp-14-x86-64-linux-gnu. 147s Preparing to unpack .../007-cpp-14-x86-64-linux-gnu_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking cpp-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package cpp-14. 147s Preparing to unpack .../008-cpp-14_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking cpp-14 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package cpp-x86-64-linux-gnu. 147s Preparing to unpack .../009-cpp-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 147s Unpacking cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 147s Selecting previously unselected package cpp. 147s Preparing to unpack .../010-cpp_4%3a14.1.0-2ubuntu1_amd64.deb ... 147s Unpacking cpp (4:14.1.0-2ubuntu1) ... 147s Selecting previously unselected package libcc1-0:amd64. 147s Preparing to unpack .../011-libcc1-0_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libcc1-0:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libgomp1:amd64. 147s Preparing to unpack .../012-libgomp1_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libgomp1:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libitm1:amd64. 147s Preparing to unpack .../013-libitm1_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libitm1:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libasan8:amd64. 147s Preparing to unpack .../014-libasan8_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libasan8:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package liblsan0:amd64. 147s Preparing to unpack .../015-liblsan0_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking liblsan0:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libtsan2:amd64. 147s Preparing to unpack .../016-libtsan2_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libtsan2:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libubsan1:amd64. 147s Preparing to unpack .../017-libubsan1_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libubsan1:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libhwasan0:amd64. 147s Preparing to unpack .../018-libhwasan0_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libhwasan0:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libquadmath0:amd64. 147s Preparing to unpack .../019-libquadmath0_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libquadmath0:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package libgcc-14-dev:amd64. 147s Preparing to unpack .../020-libgcc-14-dev_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking libgcc-14-dev:amd64 (14.2.0-7ubuntu1) ... 147s Selecting previously unselected package gcc-14-x86-64-linux-gnu. 147s Preparing to unpack .../021-gcc-14-x86-64-linux-gnu_14.2.0-7ubuntu1_amd64.deb ... 147s Unpacking gcc-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 148s Selecting previously unselected package gcc-14. 148s Preparing to unpack .../022-gcc-14_14.2.0-7ubuntu1_amd64.deb ... 148s Unpacking gcc-14 (14.2.0-7ubuntu1) ... 148s Selecting previously unselected package gcc-x86-64-linux-gnu. 148s Preparing to unpack .../023-gcc-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 148s Unpacking gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 148s Selecting previously unselected package gcc. 148s Preparing to unpack .../024-gcc_4%3a14.1.0-2ubuntu1_amd64.deb ... 148s Unpacking gcc (4:14.1.0-2ubuntu1) ... 148s Selecting previously unselected package libstdc++-14-dev:amd64. 148s Preparing to unpack .../025-libstdc++-14-dev_14.2.0-7ubuntu1_amd64.deb ... 148s Unpacking libstdc++-14-dev:amd64 (14.2.0-7ubuntu1) ... 148s Selecting previously unselected package g++-14-x86-64-linux-gnu. 148s Preparing to unpack .../026-g++-14-x86-64-linux-gnu_14.2.0-7ubuntu1_amd64.deb ... 148s Unpacking g++-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 148s Selecting previously unselected package g++-14. 148s Preparing to unpack .../027-g++-14_14.2.0-7ubuntu1_amd64.deb ... 148s Unpacking g++-14 (14.2.0-7ubuntu1) ... 148s Selecting previously unselected package g++-x86-64-linux-gnu. 148s Preparing to unpack .../028-g++-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 148s Unpacking g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 148s Selecting previously unselected package g++. 148s Preparing to unpack .../029-g++_4%3a14.1.0-2ubuntu1_amd64.deb ... 148s Unpacking g++ (4:14.1.0-2ubuntu1) ... 148s Selecting previously unselected package build-essential. 148s Preparing to unpack .../030-build-essential_12.10ubuntu1_amd64.deb ... 148s Unpacking build-essential (12.10ubuntu1) ... 148s Selecting previously unselected package libhttp-parser2.9:amd64. 148s Preparing to unpack .../031-libhttp-parser2.9_2.9.4-6build1_amd64.deb ... 148s Unpacking libhttp-parser2.9:amd64 (2.9.4-6build1) ... 148s Selecting previously unselected package libgit2-1.7:amd64. 148s Preparing to unpack .../032-libgit2-1.7_1.7.2+ds-1ubuntu3_amd64.deb ... 148s Unpacking libgit2-1.7:amd64 (1.7.2+ds-1ubuntu3) ... 148s Selecting previously unselected package libstd-rust-1.80:amd64. 148s Preparing to unpack .../033-libstd-rust-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 148s Unpacking libstd-rust-1.80:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 150s Selecting previously unselected package libstd-rust-1.80-dev:amd64. 150s Preparing to unpack .../034-libstd-rust-1.80-dev_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 150s Unpacking libstd-rust-1.80-dev:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 150s Selecting previously unselected package rustc-1.80. 150s Preparing to unpack .../035-rustc-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 150s Unpacking rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 150s Selecting previously unselected package cargo-1.80. 150s Preparing to unpack .../036-cargo-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 150s Unpacking cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 150s Selecting previously unselected package libjsoncpp25:amd64. 150s Preparing to unpack .../037-libjsoncpp25_1.9.5-6build1_amd64.deb ... 150s Unpacking libjsoncpp25:amd64 (1.9.5-6build1) ... 150s Selecting previously unselected package librhash0:amd64. 150s Preparing to unpack .../038-librhash0_1.4.3-3build1_amd64.deb ... 150s Unpacking librhash0:amd64 (1.4.3-3build1) ... 150s Selecting previously unselected package cmake-data. 150s Preparing to unpack .../039-cmake-data_3.30.3-1_all.deb ... 150s Unpacking cmake-data (3.30.3-1) ... 150s Selecting previously unselected package cmake. 150s Preparing to unpack .../040-cmake_3.30.3-1_amd64.deb ... 150s Unpacking cmake (3.30.3-1) ... 150s Selecting previously unselected package libdebhelper-perl. 150s Preparing to unpack .../041-libdebhelper-perl_13.20ubuntu1_all.deb ... 150s Unpacking libdebhelper-perl (13.20ubuntu1) ... 150s Selecting previously unselected package libtool. 150s Preparing to unpack .../042-libtool_2.4.7-7build1_all.deb ... 150s Unpacking libtool (2.4.7-7build1) ... 150s Selecting previously unselected package dh-autoreconf. 150s Preparing to unpack .../043-dh-autoreconf_20_all.deb ... 150s Unpacking dh-autoreconf (20) ... 150s Selecting previously unselected package libarchive-zip-perl. 150s Preparing to unpack .../044-libarchive-zip-perl_1.68-1_all.deb ... 150s Unpacking libarchive-zip-perl (1.68-1) ... 150s Selecting previously unselected package libfile-stripnondeterminism-perl. 150s Preparing to unpack .../045-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 150s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 150s Selecting previously unselected package dh-strip-nondeterminism. 150s Preparing to unpack .../046-dh-strip-nondeterminism_1.14.0-1_all.deb ... 150s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 150s Selecting previously unselected package debugedit. 150s Preparing to unpack .../047-debugedit_1%3a5.1-1_amd64.deb ... 150s Unpacking debugedit (1:5.1-1) ... 150s Selecting previously unselected package dwz. 150s Preparing to unpack .../048-dwz_0.15-1build6_amd64.deb ... 150s Unpacking dwz (0.15-1build6) ... 150s Selecting previously unselected package gettext. 150s Preparing to unpack .../049-gettext_0.22.5-2_amd64.deb ... 150s Unpacking gettext (0.22.5-2) ... 150s Selecting previously unselected package intltool-debian. 150s Preparing to unpack .../050-intltool-debian_0.35.0+20060710.6_all.deb ... 150s Unpacking intltool-debian (0.35.0+20060710.6) ... 150s Selecting previously unselected package po-debconf. 150s Preparing to unpack .../051-po-debconf_1.0.21+nmu1_all.deb ... 150s Unpacking po-debconf (1.0.21+nmu1) ... 150s Selecting previously unselected package debhelper. 150s Preparing to unpack .../052-debhelper_13.20ubuntu1_all.deb ... 150s Unpacking debhelper (13.20ubuntu1) ... 150s Selecting previously unselected package dh-python. 150s Preparing to unpack .../053-dh-python_6.20241024_all.deb ... 150s Unpacking dh-python (6.20241024) ... 151s Selecting previously unselected package fonts-dejavu-mono. 151s Preparing to unpack .../054-fonts-dejavu-mono_2.37-8_all.deb ... 151s Unpacking fonts-dejavu-mono (2.37-8) ... 151s Selecting previously unselected package fonts-dejavu-core. 151s Preparing to unpack .../055-fonts-dejavu-core_2.37-8_all.deb ... 151s Unpacking fonts-dejavu-core (2.37-8) ... 151s Selecting previously unselected package fontconfig-config. 151s Preparing to unpack .../056-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ... 151s Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ... 151s Selecting previously unselected package libbrotli-dev:amd64. 151s Preparing to unpack .../057-libbrotli-dev_1.1.0-2build2_amd64.deb ... 151s Unpacking libbrotli-dev:amd64 (1.1.0-2build2) ... 151s Selecting previously unselected package libbz2-dev:amd64. 151s Preparing to unpack .../058-libbz2-dev_1.0.8-6_amd64.deb ... 151s Unpacking libbz2-dev:amd64 (1.0.8-6) ... 151s Selecting previously unselected package libexpat1-dev:amd64. 151s Preparing to unpack .../059-libexpat1-dev_2.6.2-2_amd64.deb ... 151s Unpacking libexpat1-dev:amd64 (2.6.2-2) ... 151s Selecting previously unselected package libfontconfig1:amd64. 151s Preparing to unpack .../060-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ... 151s Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ... 151s Selecting previously unselected package zlib1g-dev:amd64. 151s Preparing to unpack .../061-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_amd64.deb ... 151s Unpacking zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 151s Selecting previously unselected package libpng-dev:amd64. 151s Preparing to unpack .../062-libpng-dev_1.6.44-1_amd64.deb ... 151s Unpacking libpng-dev:amd64 (1.6.44-1) ... 151s Selecting previously unselected package libfreetype-dev:amd64. 151s Preparing to unpack .../063-libfreetype-dev_2.13.3+dfsg-1_amd64.deb ... 151s Unpacking libfreetype-dev:amd64 (2.13.3+dfsg-1) ... 151s Selecting previously unselected package uuid-dev:amd64. 151s Preparing to unpack .../064-uuid-dev_2.40.2-1ubuntu1_amd64.deb ... 151s Unpacking uuid-dev:amd64 (2.40.2-1ubuntu1) ... 151s Selecting previously unselected package libpkgconf3:amd64. 151s Preparing to unpack .../065-libpkgconf3_1.8.1-4_amd64.deb ... 151s Unpacking libpkgconf3:amd64 (1.8.1-4) ... 151s Selecting previously unselected package pkgconf-bin. 151s Preparing to unpack .../066-pkgconf-bin_1.8.1-4_amd64.deb ... 151s Unpacking pkgconf-bin (1.8.1-4) ... 151s Selecting previously unselected package pkgconf:amd64. 151s Preparing to unpack .../067-pkgconf_1.8.1-4_amd64.deb ... 151s Unpacking pkgconf:amd64 (1.8.1-4) ... 151s Selecting previously unselected package libfontconfig-dev:amd64. 151s Preparing to unpack .../068-libfontconfig-dev_2.15.0-1.1ubuntu2_amd64.deb ... 151s Unpacking libfontconfig-dev:amd64 (2.15.0-1.1ubuntu2) ... 151s Selecting previously unselected package libpython3.12-dev:amd64. 151s Preparing to unpack .../069-libpython3.12-dev_3.12.7-2_amd64.deb ... 151s Unpacking libpython3.12-dev:amd64 (3.12.7-2) ... 151s Selecting previously unselected package libpython3-dev:amd64. 151s Preparing to unpack .../070-libpython3-dev_3.12.6-0ubuntu1_amd64.deb ... 151s Unpacking libpython3-dev:amd64 (3.12.6-0ubuntu1) ... 151s Selecting previously unselected package libpython3-all-dev:amd64. 151s Preparing to unpack .../071-libpython3-all-dev_3.12.6-0ubuntu1_amd64.deb ... 151s Unpacking libpython3-all-dev:amd64 (3.12.6-0ubuntu1) ... 151s Selecting previously unselected package librust-ab-glyph-rasterizer-dev:amd64. 151s Preparing to unpack .../072-librust-ab-glyph-rasterizer-dev_0.1.7-1_amd64.deb ... 151s Unpacking librust-ab-glyph-rasterizer-dev:amd64 (0.1.7-1) ... 151s Selecting previously unselected package librust-libm-dev:amd64. 151s Preparing to unpack .../073-librust-libm-dev_0.2.8-1_amd64.deb ... 151s Unpacking librust-libm-dev:amd64 (0.2.8-1) ... 151s Selecting previously unselected package librust-ab-glyph-rasterizer+libm-dev:amd64. 151s Preparing to unpack .../074-librust-ab-glyph-rasterizer+libm-dev_0.1.7-1_amd64.deb ... 151s Unpacking librust-ab-glyph-rasterizer+libm-dev:amd64 (0.1.7-1) ... 151s Selecting previously unselected package librust-core-maths-dev:amd64. 151s Preparing to unpack .../075-librust-core-maths-dev_0.1.0-2_amd64.deb ... 151s Unpacking librust-core-maths-dev:amd64 (0.1.0-2) ... 151s Selecting previously unselected package librust-ttf-parser-dev:amd64. 151s Preparing to unpack .../076-librust-ttf-parser-dev_0.24.1-1_amd64.deb ... 151s Unpacking librust-ttf-parser-dev:amd64 (0.24.1-1) ... 152s Selecting previously unselected package librust-owned-ttf-parser-dev:amd64. 152s Preparing to unpack .../077-librust-owned-ttf-parser-dev_0.24.0-1_amd64.deb ... 152s Unpacking librust-owned-ttf-parser-dev:amd64 (0.24.0-1) ... 152s Selecting previously unselected package librust-ab-glyph-dev:amd64. 152s Preparing to unpack .../078-librust-ab-glyph-dev_0.2.28-1_amd64.deb ... 152s Unpacking librust-ab-glyph-dev:amd64 (0.2.28-1) ... 152s Selecting previously unselected package librust-cfg-if-dev:amd64. 152s Preparing to unpack .../079-librust-cfg-if-dev_1.0.0-1_amd64.deb ... 152s Unpacking librust-cfg-if-dev:amd64 (1.0.0-1) ... 152s Selecting previously unselected package librust-cpp-demangle-dev:amd64. 152s Preparing to unpack .../080-librust-cpp-demangle-dev_0.4.0-1_amd64.deb ... 152s Unpacking librust-cpp-demangle-dev:amd64 (0.4.0-1) ... 152s Selecting previously unselected package librust-fallible-iterator-dev:amd64. 152s Preparing to unpack .../081-librust-fallible-iterator-dev_0.3.0-2_amd64.deb ... 152s Unpacking librust-fallible-iterator-dev:amd64 (0.3.0-2) ... 152s Selecting previously unselected package librust-unicode-ident-dev:amd64. 152s Preparing to unpack .../082-librust-unicode-ident-dev_1.0.13-1_amd64.deb ... 152s Unpacking librust-unicode-ident-dev:amd64 (1.0.13-1) ... 152s Selecting previously unselected package librust-proc-macro2-dev:amd64. 152s Preparing to unpack .../083-librust-proc-macro2-dev_1.0.86-1_amd64.deb ... 152s Unpacking librust-proc-macro2-dev:amd64 (1.0.86-1) ... 152s Selecting previously unselected package librust-quote-dev:amd64. 152s Preparing to unpack .../084-librust-quote-dev_1.0.37-1_amd64.deb ... 152s Unpacking librust-quote-dev:amd64 (1.0.37-1) ... 152s Selecting previously unselected package librust-syn-dev:amd64. 152s Preparing to unpack .../085-librust-syn-dev_2.0.77-1_amd64.deb ... 152s Unpacking librust-syn-dev:amd64 (2.0.77-1) ... 152s Selecting previously unselected package librust-derive-arbitrary-dev:amd64. 152s Preparing to unpack .../086-librust-derive-arbitrary-dev_1.3.2-1_amd64.deb ... 152s Unpacking librust-derive-arbitrary-dev:amd64 (1.3.2-1) ... 152s Selecting previously unselected package librust-arbitrary-dev:amd64. 152s Preparing to unpack .../087-librust-arbitrary-dev_1.3.2-1_amd64.deb ... 152s Unpacking librust-arbitrary-dev:amd64 (1.3.2-1) ... 152s Selecting previously unselected package librust-equivalent-dev:amd64. 152s Preparing to unpack .../088-librust-equivalent-dev_1.0.1-1_amd64.deb ... 152s Unpacking librust-equivalent-dev:amd64 (1.0.1-1) ... 152s Selecting previously unselected package librust-critical-section-dev:amd64. 152s Preparing to unpack .../089-librust-critical-section-dev_1.1.3-1_amd64.deb ... 152s Unpacking librust-critical-section-dev:amd64 (1.1.3-1) ... 152s Selecting previously unselected package librust-serde-derive-dev:amd64. 152s Preparing to unpack .../090-librust-serde-derive-dev_1.0.210-1_amd64.deb ... 152s Unpacking librust-serde-derive-dev:amd64 (1.0.210-1) ... 152s Selecting previously unselected package librust-serde-dev:amd64. 152s Preparing to unpack .../091-librust-serde-dev_1.0.210-2_amd64.deb ... 152s Unpacking librust-serde-dev:amd64 (1.0.210-2) ... 152s Selecting previously unselected package librust-portable-atomic-dev:amd64. 152s Preparing to unpack .../092-librust-portable-atomic-dev_1.4.3-2_amd64.deb ... 152s Unpacking librust-portable-atomic-dev:amd64 (1.4.3-2) ... 152s Selecting previously unselected package librust-libc-dev:amd64. 152s Preparing to unpack .../093-librust-libc-dev_0.2.155-1_amd64.deb ... 152s Unpacking librust-libc-dev:amd64 (0.2.155-1) ... 152s Selecting previously unselected package librust-getrandom-dev:amd64. 152s Preparing to unpack .../094-librust-getrandom-dev_0.2.12-1_amd64.deb ... 152s Unpacking librust-getrandom-dev:amd64 (0.2.12-1) ... 152s Selecting previously unselected package librust-smallvec-dev:amd64. 152s Preparing to unpack .../095-librust-smallvec-dev_1.13.2-1_amd64.deb ... 152s Unpacking librust-smallvec-dev:amd64 (1.13.2-1) ... 152s Selecting previously unselected package librust-parking-lot-core-dev:amd64. 152s Preparing to unpack .../096-librust-parking-lot-core-dev_0.9.10-1_amd64.deb ... 152s Unpacking librust-parking-lot-core-dev:amd64 (0.9.10-1) ... 152s Selecting previously unselected package librust-once-cell-dev:amd64. 152s Preparing to unpack .../097-librust-once-cell-dev_1.19.0-1_amd64.deb ... 152s Unpacking librust-once-cell-dev:amd64 (1.19.0-1) ... 152s Selecting previously unselected package librust-crunchy-dev:amd64. 152s Preparing to unpack .../098-librust-crunchy-dev_0.2.2-1_amd64.deb ... 152s Unpacking librust-crunchy-dev:amd64 (0.2.2-1) ... 152s Selecting previously unselected package librust-tiny-keccak-dev:amd64. 152s Preparing to unpack .../099-librust-tiny-keccak-dev_2.0.2-1_amd64.deb ... 152s Unpacking librust-tiny-keccak-dev:amd64 (2.0.2-1) ... 152s Selecting previously unselected package librust-const-random-macro-dev:amd64. 152s Preparing to unpack .../100-librust-const-random-macro-dev_0.1.16-2_amd64.deb ... 152s Unpacking librust-const-random-macro-dev:amd64 (0.1.16-2) ... 152s Selecting previously unselected package librust-const-random-dev:amd64. 152s Preparing to unpack .../101-librust-const-random-dev_0.1.17-2_amd64.deb ... 152s Unpacking librust-const-random-dev:amd64 (0.1.17-2) ... 152s Selecting previously unselected package librust-version-check-dev:amd64. 152s Preparing to unpack .../102-librust-version-check-dev_0.9.5-1_amd64.deb ... 152s Unpacking librust-version-check-dev:amd64 (0.9.5-1) ... 152s Selecting previously unselected package librust-byteorder-dev:amd64. 152s Preparing to unpack .../103-librust-byteorder-dev_1.5.0-1_amd64.deb ... 152s Unpacking librust-byteorder-dev:amd64 (1.5.0-1) ... 152s Selecting previously unselected package librust-zerocopy-derive-dev:amd64. 152s Preparing to unpack .../104-librust-zerocopy-derive-dev_0.7.32-2_amd64.deb ... 152s Unpacking librust-zerocopy-derive-dev:amd64 (0.7.32-2) ... 152s Selecting previously unselected package librust-zerocopy-dev:amd64. 152s Preparing to unpack .../105-librust-zerocopy-dev_0.7.32-1_amd64.deb ... 152s Unpacking librust-zerocopy-dev:amd64 (0.7.32-1) ... 152s Selecting previously unselected package librust-ahash-dev. 152s Preparing to unpack .../106-librust-ahash-dev_0.8.11-8_all.deb ... 152s Unpacking librust-ahash-dev (0.8.11-8) ... 152s Selecting previously unselected package librust-allocator-api2-dev:amd64. 152s Preparing to unpack .../107-librust-allocator-api2-dev_0.2.16-1_amd64.deb ... 152s Unpacking librust-allocator-api2-dev:amd64 (0.2.16-1) ... 152s Selecting previously unselected package librust-compiler-builtins-dev:amd64. 152s Preparing to unpack .../108-librust-compiler-builtins-dev_0.1.101-1_amd64.deb ... 152s Unpacking librust-compiler-builtins-dev:amd64 (0.1.101-1) ... 153s Selecting previously unselected package librust-either-dev:amd64. 153s Preparing to unpack .../109-librust-either-dev_1.13.0-1_amd64.deb ... 153s Unpacking librust-either-dev:amd64 (1.13.0-1) ... 153s Selecting previously unselected package librust-crossbeam-utils-dev:amd64. 153s Preparing to unpack .../110-librust-crossbeam-utils-dev_0.8.19-1_amd64.deb ... 153s Unpacking librust-crossbeam-utils-dev:amd64 (0.8.19-1) ... 153s Selecting previously unselected package librust-crossbeam-epoch-dev:amd64. 153s Preparing to unpack .../111-librust-crossbeam-epoch-dev_0.9.18-1_amd64.deb ... 153s Unpacking librust-crossbeam-epoch-dev:amd64 (0.9.18-1) ... 153s Selecting previously unselected package librust-crossbeam-epoch+std-dev:amd64. 153s Preparing to unpack .../112-librust-crossbeam-epoch+std-dev_0.9.18-1_amd64.deb ... 153s Unpacking librust-crossbeam-epoch+std-dev:amd64 (0.9.18-1) ... 153s Selecting previously unselected package librust-crossbeam-deque-dev:amd64. 153s Preparing to unpack .../113-librust-crossbeam-deque-dev_0.8.5-1_amd64.deb ... 153s Unpacking librust-crossbeam-deque-dev:amd64 (0.8.5-1) ... 153s Selecting previously unselected package librust-rayon-core-dev:amd64. 153s Preparing to unpack .../114-librust-rayon-core-dev_1.12.1-1_amd64.deb ... 153s Unpacking librust-rayon-core-dev:amd64 (1.12.1-1) ... 153s Selecting previously unselected package librust-rayon-dev:amd64. 153s Preparing to unpack .../115-librust-rayon-dev_1.10.0-1_amd64.deb ... 153s Unpacking librust-rayon-dev:amd64 (1.10.0-1) ... 153s Selecting previously unselected package librust-rustc-std-workspace-core-dev:amd64. 153s Preparing to unpack .../116-librust-rustc-std-workspace-core-dev_1.0.0-1_amd64.deb ... 153s Unpacking librust-rustc-std-workspace-core-dev:amd64 (1.0.0-1) ... 153s Selecting previously unselected package librust-hashbrown-dev:amd64. 153s Preparing to unpack .../117-librust-hashbrown-dev_0.14.5-5_amd64.deb ... 153s Unpacking librust-hashbrown-dev:amd64 (0.14.5-5) ... 153s Selecting previously unselected package librust-indexmap-dev:amd64. 153s Preparing to unpack .../118-librust-indexmap-dev_2.2.6-1_amd64.deb ... 153s Unpacking librust-indexmap-dev:amd64 (2.2.6-1) ... 153s Selecting previously unselected package librust-stable-deref-trait-dev:amd64. 153s Preparing to unpack .../119-librust-stable-deref-trait-dev_1.2.0-1_amd64.deb ... 153s Unpacking librust-stable-deref-trait-dev:amd64 (1.2.0-1) ... 153s Selecting previously unselected package librust-gimli-dev:amd64. 153s Preparing to unpack .../120-librust-gimli-dev_0.28.1-2_amd64.deb ... 153s Unpacking librust-gimli-dev:amd64 (0.28.1-2) ... 153s Selecting previously unselected package librust-memmap2-dev:amd64. 153s Preparing to unpack .../121-librust-memmap2-dev_0.9.3-1_amd64.deb ... 153s Unpacking librust-memmap2-dev:amd64 (0.9.3-1) ... 153s Selecting previously unselected package librust-crc32fast-dev:amd64. 153s Preparing to unpack .../122-librust-crc32fast-dev_1.4.2-1_amd64.deb ... 153s Unpacking librust-crc32fast-dev:amd64 (1.4.2-1) ... 153s Selecting previously unselected package pkg-config:amd64. 153s Preparing to unpack .../123-pkg-config_1.8.1-4_amd64.deb ... 153s Unpacking pkg-config:amd64 (1.8.1-4) ... 153s Selecting previously unselected package librust-pkg-config-dev:amd64. 153s Preparing to unpack .../124-librust-pkg-config-dev_0.3.27-1_amd64.deb ... 153s Unpacking librust-pkg-config-dev:amd64 (0.3.27-1) ... 153s Selecting previously unselected package librust-libz-sys-dev:amd64. 153s Preparing to unpack .../125-librust-libz-sys-dev_1.1.20-1_amd64.deb ... 153s Unpacking librust-libz-sys-dev:amd64 (1.1.20-1) ... 153s Selecting previously unselected package librust-adler-dev:amd64. 153s Preparing to unpack .../126-librust-adler-dev_1.0.2-2_amd64.deb ... 153s Unpacking librust-adler-dev:amd64 (1.0.2-2) ... 153s Selecting previously unselected package librust-miniz-oxide-dev:amd64. 153s Preparing to unpack .../127-librust-miniz-oxide-dev_0.7.1-1_amd64.deb ... 153s Unpacking librust-miniz-oxide-dev:amd64 (0.7.1-1) ... 153s Selecting previously unselected package librust-flate2-dev:amd64. 153s Preparing to unpack .../128-librust-flate2-dev_1.0.27-2_amd64.deb ... 153s Unpacking librust-flate2-dev:amd64 (1.0.27-2) ... 153s Selecting previously unselected package librust-sval-derive-dev:amd64. 153s Preparing to unpack .../129-librust-sval-derive-dev_2.6.1-2_amd64.deb ... 153s Unpacking librust-sval-derive-dev:amd64 (2.6.1-2) ... 153s Selecting previously unselected package librust-sval-dev:amd64. 153s Preparing to unpack .../130-librust-sval-dev_2.6.1-2_amd64.deb ... 153s Unpacking librust-sval-dev:amd64 (2.6.1-2) ... 153s Selecting previously unselected package librust-sval-ref-dev:amd64. 153s Preparing to unpack .../131-librust-sval-ref-dev_2.6.1-1_amd64.deb ... 153s Unpacking librust-sval-ref-dev:amd64 (2.6.1-1) ... 153s Selecting previously unselected package librust-erased-serde-dev:amd64. 153s Preparing to unpack .../132-librust-erased-serde-dev_0.3.31-1_amd64.deb ... 153s Unpacking librust-erased-serde-dev:amd64 (0.3.31-1) ... 153s Selecting previously unselected package librust-serde-fmt-dev. 153s Preparing to unpack .../133-librust-serde-fmt-dev_1.0.3-3_all.deb ... 153s Unpacking librust-serde-fmt-dev (1.0.3-3) ... 153s Selecting previously unselected package librust-syn-1-dev:amd64. 153s Preparing to unpack .../134-librust-syn-1-dev_1.0.109-2_amd64.deb ... 153s Unpacking librust-syn-1-dev:amd64 (1.0.109-2) ... 153s Selecting previously unselected package librust-no-panic-dev:amd64. 153s Preparing to unpack .../135-librust-no-panic-dev_0.1.13-1_amd64.deb ... 153s Unpacking librust-no-panic-dev:amd64 (0.1.13-1) ... 153s Selecting previously unselected package librust-itoa-dev:amd64. 153s Preparing to unpack .../136-librust-itoa-dev_1.0.9-1_amd64.deb ... 153s Unpacking librust-itoa-dev:amd64 (1.0.9-1) ... 153s Selecting previously unselected package librust-ryu-dev:amd64. 153s Preparing to unpack .../137-librust-ryu-dev_1.0.15-1_amd64.deb ... 153s Unpacking librust-ryu-dev:amd64 (1.0.15-1) ... 153s Selecting previously unselected package librust-serde-json-dev:amd64. 153s Preparing to unpack .../138-librust-serde-json-dev_1.0.128-1_amd64.deb ... 153s Unpacking librust-serde-json-dev:amd64 (1.0.128-1) ... 153s Selecting previously unselected package librust-serde-test-dev:amd64. 153s Preparing to unpack .../139-librust-serde-test-dev_1.0.171-1_amd64.deb ... 153s Unpacking librust-serde-test-dev:amd64 (1.0.171-1) ... 153s Selecting previously unselected package librust-value-bag-serde1-dev:amd64. 153s Preparing to unpack .../140-librust-value-bag-serde1-dev_1.9.0-1_amd64.deb ... 153s Unpacking librust-value-bag-serde1-dev:amd64 (1.9.0-1) ... 153s Selecting previously unselected package librust-sval-buffer-dev:amd64. 153s Preparing to unpack .../141-librust-sval-buffer-dev_2.6.1-1_amd64.deb ... 153s Unpacking librust-sval-buffer-dev:amd64 (2.6.1-1) ... 153s Selecting previously unselected package librust-sval-dynamic-dev:amd64. 153s Preparing to unpack .../142-librust-sval-dynamic-dev_2.6.1-1_amd64.deb ... 153s Unpacking librust-sval-dynamic-dev:amd64 (2.6.1-1) ... 153s Selecting previously unselected package librust-sval-fmt-dev:amd64. 154s Preparing to unpack .../143-librust-sval-fmt-dev_2.6.1-1_amd64.deb ... 154s Unpacking librust-sval-fmt-dev:amd64 (2.6.1-1) ... 154s Selecting previously unselected package librust-sval-serde-dev:amd64. 154s Preparing to unpack .../144-librust-sval-serde-dev_2.6.1-1_amd64.deb ... 154s Unpacking librust-sval-serde-dev:amd64 (2.6.1-1) ... 154s Selecting previously unselected package librust-value-bag-sval2-dev:amd64. 154s Preparing to unpack .../145-librust-value-bag-sval2-dev_1.9.0-1_amd64.deb ... 154s Unpacking librust-value-bag-sval2-dev:amd64 (1.9.0-1) ... 154s Selecting previously unselected package librust-value-bag-dev:amd64. 154s Preparing to unpack .../146-librust-value-bag-dev_1.9.0-1_amd64.deb ... 154s Unpacking librust-value-bag-dev:amd64 (1.9.0-1) ... 154s Selecting previously unselected package librust-log-dev:amd64. 154s Preparing to unpack .../147-librust-log-dev_0.4.22-1_amd64.deb ... 154s Unpacking librust-log-dev:amd64 (0.4.22-1) ... 154s Selecting previously unselected package librust-memchr-dev:amd64. 154s Preparing to unpack .../148-librust-memchr-dev_2.7.1-1_amd64.deb ... 154s Unpacking librust-memchr-dev:amd64 (2.7.1-1) ... 154s Selecting previously unselected package librust-ppv-lite86-dev:amd64. 154s Preparing to unpack .../149-librust-ppv-lite86-dev_0.2.16-1_amd64.deb ... 154s Unpacking librust-ppv-lite86-dev:amd64 (0.2.16-1) ... 154s Selecting previously unselected package librust-rand-core-dev:amd64. 154s Preparing to unpack .../150-librust-rand-core-dev_0.6.4-2_amd64.deb ... 154s Unpacking librust-rand-core-dev:amd64 (0.6.4-2) ... 154s Selecting previously unselected package librust-rand-chacha-dev:amd64. 154s Preparing to unpack .../151-librust-rand-chacha-dev_0.3.1-2_amd64.deb ... 154s Unpacking librust-rand-chacha-dev:amd64 (0.3.1-2) ... 154s Selecting previously unselected package librust-rand-core+getrandom-dev:amd64. 154s Preparing to unpack .../152-librust-rand-core+getrandom-dev_0.6.4-2_amd64.deb ... 154s Unpacking librust-rand-core+getrandom-dev:amd64 (0.6.4-2) ... 154s Selecting previously unselected package librust-rand-core+serde-dev:amd64. 154s Preparing to unpack .../153-librust-rand-core+serde-dev_0.6.4-2_amd64.deb ... 154s Unpacking librust-rand-core+serde-dev:amd64 (0.6.4-2) ... 154s Selecting previously unselected package librust-rand-core+std-dev:amd64. 154s Preparing to unpack .../154-librust-rand-core+std-dev_0.6.4-2_amd64.deb ... 154s Unpacking librust-rand-core+std-dev:amd64 (0.6.4-2) ... 154s Selecting previously unselected package librust-rand-dev:amd64. 154s Preparing to unpack .../155-librust-rand-dev_0.8.5-1_amd64.deb ... 154s Unpacking librust-rand-dev:amd64 (0.8.5-1) ... 154s Selecting previously unselected package librust-unicode-segmentation-dev:amd64. 154s Preparing to unpack .../156-librust-unicode-segmentation-dev_1.11.0-1_amd64.deb ... 154s Unpacking librust-unicode-segmentation-dev:amd64 (1.11.0-1) ... 154s Selecting previously unselected package librust-convert-case-dev:amd64. 154s Preparing to unpack .../157-librust-convert-case-dev_0.6.0-2_amd64.deb ... 154s Unpacking librust-convert-case-dev:amd64 (0.6.0-2) ... 154s Selecting previously unselected package librust-semver-dev:amd64. 154s Preparing to unpack .../158-librust-semver-dev_1.0.23-1_amd64.deb ... 154s Unpacking librust-semver-dev:amd64 (1.0.23-1) ... 154s Selecting previously unselected package librust-rustc-version-dev:amd64. 154s Preparing to unpack .../159-librust-rustc-version-dev_0.4.0-1_amd64.deb ... 154s Unpacking librust-rustc-version-dev:amd64 (0.4.0-1) ... 154s Selecting previously unselected package librust-derive-more-0.99-dev:amd64. 154s Preparing to unpack .../160-librust-derive-more-0.99-dev_0.99.18-1_amd64.deb ... 154s Unpacking librust-derive-more-0.99-dev:amd64 (0.99.18-1) ... 154s Selecting previously unselected package librust-cfg-if-0.1-dev:amd64. 154s Preparing to unpack .../161-librust-cfg-if-0.1-dev_0.1.10-2_amd64.deb ... 154s Unpacking librust-cfg-if-0.1-dev:amd64 (0.1.10-2) ... 154s Selecting previously unselected package librust-blobby-dev:amd64. 154s Preparing to unpack .../162-librust-blobby-dev_0.3.1-1_amd64.deb ... 154s Unpacking librust-blobby-dev:amd64 (0.3.1-1) ... 154s Selecting previously unselected package librust-typenum-dev:amd64. 154s Preparing to unpack .../163-librust-typenum-dev_1.17.0-2_amd64.deb ... 154s Unpacking librust-typenum-dev:amd64 (1.17.0-2) ... 154s Selecting previously unselected package librust-zeroize-derive-dev:amd64. 154s Preparing to unpack .../164-librust-zeroize-derive-dev_1.4.2-1_amd64.deb ... 154s Unpacking librust-zeroize-derive-dev:amd64 (1.4.2-1) ... 154s Selecting previously unselected package librust-zeroize-dev:amd64. 154s Preparing to unpack .../165-librust-zeroize-dev_1.8.1-1_amd64.deb ... 154s Unpacking librust-zeroize-dev:amd64 (1.8.1-1) ... 154s Selecting previously unselected package librust-generic-array-dev:amd64. 154s Preparing to unpack .../166-librust-generic-array-dev_0.14.7-1_amd64.deb ... 154s Unpacking librust-generic-array-dev:amd64 (0.14.7-1) ... 154s Selecting previously unselected package librust-block-buffer-dev:amd64. 154s Preparing to unpack .../167-librust-block-buffer-dev_0.10.2-2_amd64.deb ... 154s Unpacking librust-block-buffer-dev:amd64 (0.10.2-2) ... 154s Selecting previously unselected package librust-const-oid-dev:amd64. 154s Preparing to unpack .../168-librust-const-oid-dev_0.9.3-1_amd64.deb ... 154s Unpacking librust-const-oid-dev:amd64 (0.9.3-1) ... 154s Selecting previously unselected package librust-crypto-common-dev:amd64. 154s Preparing to unpack .../169-librust-crypto-common-dev_0.1.6-1_amd64.deb ... 154s Unpacking librust-crypto-common-dev:amd64 (0.1.6-1) ... 154s Selecting previously unselected package librust-subtle-dev:amd64. 154s Preparing to unpack .../170-librust-subtle-dev_2.6.1-1_amd64.deb ... 154s Unpacking librust-subtle-dev:amd64 (2.6.1-1) ... 154s Selecting previously unselected package librust-digest-dev:amd64. 155s Preparing to unpack .../171-librust-digest-dev_0.10.7-2_amd64.deb ... 155s Unpacking librust-digest-dev:amd64 (0.10.7-2) ... 155s Selecting previously unselected package librust-static-assertions-dev:amd64. 155s Preparing to unpack .../172-librust-static-assertions-dev_1.1.0-1_amd64.deb ... 155s Unpacking librust-static-assertions-dev:amd64 (1.1.0-1) ... 155s Selecting previously unselected package librust-twox-hash-dev:amd64. 155s Preparing to unpack .../173-librust-twox-hash-dev_1.6.3-1_amd64.deb ... 155s Unpacking librust-twox-hash-dev:amd64 (1.6.3-1) ... 155s Selecting previously unselected package librust-ruzstd-dev:amd64. 155s Preparing to unpack .../174-librust-ruzstd-dev_0.5.0-1_amd64.deb ... 155s Unpacking librust-ruzstd-dev:amd64 (0.5.0-1) ... 155s Selecting previously unselected package librust-object-dev:amd64. 155s Preparing to unpack .../175-librust-object-dev_0.32.2-1_amd64.deb ... 155s Unpacking librust-object-dev:amd64 (0.32.2-1) ... 155s Selecting previously unselected package librust-rustc-demangle-dev:amd64. 155s Preparing to unpack .../176-librust-rustc-demangle-dev_0.1.21-1_amd64.deb ... 155s Unpacking librust-rustc-demangle-dev:amd64 (0.1.21-1) ... 155s Selecting previously unselected package librust-addr2line-dev:amd64. 155s Preparing to unpack .../177-librust-addr2line-dev_0.21.0-2_amd64.deb ... 155s Unpacking librust-addr2line-dev:amd64 (0.21.0-2) ... 155s Selecting previously unselected package librust-aho-corasick-dev:amd64. 155s Preparing to unpack .../178-librust-aho-corasick-dev_1.1.3-1_amd64.deb ... 155s Unpacking librust-aho-corasick-dev:amd64 (1.1.3-1) ... 155s Selecting previously unselected package librust-bitflags-1-dev:amd64. 155s Preparing to unpack .../179-librust-bitflags-1-dev_1.3.2-5_amd64.deb ... 155s Unpacking librust-bitflags-1-dev:amd64 (1.3.2-5) ... 155s Selecting previously unselected package librust-anes-dev:amd64. 155s Preparing to unpack .../180-librust-anes-dev_0.1.6-1_amd64.deb ... 155s Unpacking librust-anes-dev:amd64 (0.1.6-1) ... 155s Selecting previously unselected package librust-anstyle-dev:amd64. 155s Preparing to unpack .../181-librust-anstyle-dev_1.0.8-1_amd64.deb ... 155s Unpacking librust-anstyle-dev:amd64 (1.0.8-1) ... 155s Selecting previously unselected package librust-arrayvec-dev:amd64. 155s Preparing to unpack .../182-librust-arrayvec-dev_0.7.4-2_amd64.deb ... 155s Unpacking librust-arrayvec-dev:amd64 (0.7.4-2) ... 155s Selecting previously unselected package librust-utf8parse-dev:amd64. 155s Preparing to unpack .../183-librust-utf8parse-dev_0.2.1-1_amd64.deb ... 155s Unpacking librust-utf8parse-dev:amd64 (0.2.1-1) ... 155s Selecting previously unselected package librust-anstyle-parse-dev:amd64. 155s Preparing to unpack .../184-librust-anstyle-parse-dev_0.2.1-1_amd64.deb ... 155s Unpacking librust-anstyle-parse-dev:amd64 (0.2.1-1) ... 155s Selecting previously unselected package librust-anstyle-query-dev:amd64. 155s Preparing to unpack .../185-librust-anstyle-query-dev_1.0.0-1_amd64.deb ... 155s Unpacking librust-anstyle-query-dev:amd64 (1.0.0-1) ... 155s Selecting previously unselected package librust-colorchoice-dev:amd64. 155s Preparing to unpack .../186-librust-colorchoice-dev_1.0.0-1_amd64.deb ... 155s Unpacking librust-colorchoice-dev:amd64 (1.0.0-1) ... 155s Selecting previously unselected package librust-anstream-dev:amd64. 155s Preparing to unpack .../187-librust-anstream-dev_0.6.15-1_amd64.deb ... 155s Unpacking librust-anstream-dev:amd64 (0.6.15-1) ... 155s Selecting previously unselected package librust-jobserver-dev:amd64. 155s Preparing to unpack .../188-librust-jobserver-dev_0.1.32-1_amd64.deb ... 155s Unpacking librust-jobserver-dev:amd64 (0.1.32-1) ... 155s Selecting previously unselected package librust-shlex-dev:amd64. 155s Preparing to unpack .../189-librust-shlex-dev_1.3.0-1_amd64.deb ... 155s Unpacking librust-shlex-dev:amd64 (1.3.0-1) ... 155s Selecting previously unselected package librust-cc-dev:amd64. 155s Preparing to unpack .../190-librust-cc-dev_1.1.14-1_amd64.deb ... 155s Unpacking librust-cc-dev:amd64 (1.1.14-1) ... 155s Selecting previously unselected package librust-backtrace-dev:amd64. 155s Preparing to unpack .../191-librust-backtrace-dev_0.3.69-2_amd64.deb ... 155s Unpacking librust-backtrace-dev:amd64 (0.3.69-2) ... 155s Selecting previously unselected package librust-anyhow-dev:amd64. 155s Preparing to unpack .../192-librust-anyhow-dev_1.0.86-1_amd64.deb ... 155s Unpacking librust-anyhow-dev:amd64 (1.0.86-1) ... 155s Selecting previously unselected package librust-bytecheck-derive-dev:amd64. 155s Preparing to unpack .../193-librust-bytecheck-derive-dev_0.6.12-1_amd64.deb ... 155s Unpacking librust-bytecheck-derive-dev:amd64 (0.6.12-1) ... 155s Selecting previously unselected package librust-ptr-meta-derive-dev:amd64. 155s Preparing to unpack .../194-librust-ptr-meta-derive-dev_0.1.4-1_amd64.deb ... 155s Unpacking librust-ptr-meta-derive-dev:amd64 (0.1.4-1) ... 155s Selecting previously unselected package librust-ptr-meta-dev:amd64. 155s Preparing to unpack .../195-librust-ptr-meta-dev_0.1.4-1_amd64.deb ... 155s Unpacking librust-ptr-meta-dev:amd64 (0.1.4-1) ... 155s Selecting previously unselected package librust-simdutf8-dev:amd64. 155s Preparing to unpack .../196-librust-simdutf8-dev_0.1.4-4_amd64.deb ... 155s Unpacking librust-simdutf8-dev:amd64 (0.1.4-4) ... 155s Selecting previously unselected package librust-bytemuck-derive-dev:amd64. 155s Preparing to unpack .../197-librust-bytemuck-derive-dev_1.5.0-2_amd64.deb ... 155s Unpacking librust-bytemuck-derive-dev:amd64 (1.5.0-2) ... 155s Selecting previously unselected package librust-bytemuck-dev:amd64. 155s Preparing to unpack .../198-librust-bytemuck-dev_1.14.0-1_amd64.deb ... 155s Unpacking librust-bytemuck-dev:amd64 (1.14.0-1) ... 155s Selecting previously unselected package librust-atomic-dev:amd64. 155s Preparing to unpack .../199-librust-atomic-dev_0.6.0-1_amd64.deb ... 155s Unpacking librust-atomic-dev:amd64 (0.6.0-1) ... 155s Selecting previously unselected package librust-md5-asm-dev:amd64. 155s Preparing to unpack .../200-librust-md5-asm-dev_0.5.0-2_amd64.deb ... 155s Unpacking librust-md5-asm-dev:amd64 (0.5.0-2) ... 155s Selecting previously unselected package librust-md-5-dev:amd64. 155s Preparing to unpack .../201-librust-md-5-dev_0.10.6-1_amd64.deb ... 155s Unpacking librust-md-5-dev:amd64 (0.10.6-1) ... 155s Selecting previously unselected package librust-cpufeatures-dev:amd64. 155s Preparing to unpack .../202-librust-cpufeatures-dev_0.2.11-1_amd64.deb ... 155s Unpacking librust-cpufeatures-dev:amd64 (0.2.11-1) ... 155s Selecting previously unselected package librust-sha1-asm-dev:amd64. 155s Preparing to unpack .../203-librust-sha1-asm-dev_0.5.1-2_amd64.deb ... 155s Unpacking librust-sha1-asm-dev:amd64 (0.5.1-2) ... 155s Selecting previously unselected package librust-sha1-dev:amd64. 156s Preparing to unpack .../204-librust-sha1-dev_0.10.6-1_amd64.deb ... 156s Unpacking librust-sha1-dev:amd64 (0.10.6-1) ... 156s Selecting previously unselected package librust-slog-dev:amd64. 156s Preparing to unpack .../205-librust-slog-dev_2.7.0-1_amd64.deb ... 156s Unpacking librust-slog-dev:amd64 (2.7.0-1) ... 156s Selecting previously unselected package librust-uuid-dev:amd64. 156s Preparing to unpack .../206-librust-uuid-dev_1.10.0-1_amd64.deb ... 156s Unpacking librust-uuid-dev:amd64 (1.10.0-1) ... 156s Selecting previously unselected package librust-bytecheck-dev:amd64. 156s Preparing to unpack .../207-librust-bytecheck-dev_0.6.12-1_amd64.deb ... 156s Unpacking librust-bytecheck-dev:amd64 (0.6.12-1) ... 156s Selecting previously unselected package librust-autocfg-dev:amd64. 156s Preparing to unpack .../208-librust-autocfg-dev_1.1.0-1_amd64.deb ... 156s Unpacking librust-autocfg-dev:amd64 (1.1.0-1) ... 156s Selecting previously unselected package librust-num-traits-dev:amd64. 156s Preparing to unpack .../209-librust-num-traits-dev_0.2.19-2_amd64.deb ... 156s Unpacking librust-num-traits-dev:amd64 (0.2.19-2) ... 156s Selecting previously unselected package librust-funty-dev:amd64. 156s Preparing to unpack .../210-librust-funty-dev_2.0.0-1_amd64.deb ... 156s Unpacking librust-funty-dev:amd64 (2.0.0-1) ... 156s Selecting previously unselected package librust-radium-dev:amd64. 156s Preparing to unpack .../211-librust-radium-dev_1.1.0-1_amd64.deb ... 156s Unpacking librust-radium-dev:amd64 (1.1.0-1) ... 156s Selecting previously unselected package librust-tap-dev:amd64. 156s Preparing to unpack .../212-librust-tap-dev_1.0.1-1_amd64.deb ... 156s Unpacking librust-tap-dev:amd64 (1.0.1-1) ... 156s Selecting previously unselected package librust-traitobject-dev:amd64. 156s Preparing to unpack .../213-librust-traitobject-dev_0.1.0-1_amd64.deb ... 156s Unpacking librust-traitobject-dev:amd64 (0.1.0-1) ... 156s Selecting previously unselected package librust-unsafe-any-dev:amd64. 156s Preparing to unpack .../214-librust-unsafe-any-dev_0.4.2-2_amd64.deb ... 156s Unpacking librust-unsafe-any-dev:amd64 (0.4.2-2) ... 156s Selecting previously unselected package librust-typemap-dev:amd64. 156s Preparing to unpack .../215-librust-typemap-dev_0.3.3-2_amd64.deb ... 156s Unpacking librust-typemap-dev:amd64 (0.3.3-2) ... 156s Selecting previously unselected package librust-wyz-dev:amd64. 156s Preparing to unpack .../216-librust-wyz-dev_0.5.1-1_amd64.deb ... 156s Unpacking librust-wyz-dev:amd64 (0.5.1-1) ... 156s Selecting previously unselected package librust-bitvec-dev:amd64. 156s Preparing to unpack .../217-librust-bitvec-dev_1.0.1-1_amd64.deb ... 156s Unpacking librust-bitvec-dev:amd64 (1.0.1-1) ... 156s Selecting previously unselected package librust-bytes-dev:amd64. 156s Preparing to unpack .../218-librust-bytes-dev_1.5.0-1_amd64.deb ... 156s Unpacking librust-bytes-dev:amd64 (1.5.0-1) ... 156s Selecting previously unselected package librust-rend-dev:amd64. 156s Preparing to unpack .../219-librust-rend-dev_0.4.0-1_amd64.deb ... 156s Unpacking librust-rend-dev:amd64 (0.4.0-1) ... 156s Selecting previously unselected package librust-rkyv-derive-dev:amd64. 156s Preparing to unpack .../220-librust-rkyv-derive-dev_0.7.44-1_amd64.deb ... 156s Unpacking librust-rkyv-derive-dev:amd64 (0.7.44-1) ... 156s Selecting previously unselected package librust-seahash-dev:amd64. 156s Preparing to unpack .../221-librust-seahash-dev_4.1.0-1_amd64.deb ... 156s Unpacking librust-seahash-dev:amd64 (4.1.0-1) ... 156s Selecting previously unselected package librust-smol-str-dev:amd64. 156s Preparing to unpack .../222-librust-smol-str-dev_0.2.0-1_amd64.deb ... 156s Unpacking librust-smol-str-dev:amd64 (0.2.0-1) ... 156s Selecting previously unselected package librust-tinyvec-dev:amd64. 156s Preparing to unpack .../223-librust-tinyvec-dev_1.6.0-2_amd64.deb ... 156s Unpacking librust-tinyvec-dev:amd64 (1.6.0-2) ... 156s Selecting previously unselected package librust-tinyvec-macros-dev:amd64. 156s Preparing to unpack .../224-librust-tinyvec-macros-dev_0.1.0-1_amd64.deb ... 156s Unpacking librust-tinyvec-macros-dev:amd64 (0.1.0-1) ... 156s Selecting previously unselected package librust-tinyvec+tinyvec-macros-dev:amd64. 156s Preparing to unpack .../225-librust-tinyvec+tinyvec-macros-dev_1.6.0-2_amd64.deb ... 156s Unpacking librust-tinyvec+tinyvec-macros-dev:amd64 (1.6.0-2) ... 156s Selecting previously unselected package librust-rkyv-dev:amd64. 156s Preparing to unpack .../226-librust-rkyv-dev_0.7.44-1_amd64.deb ... 156s Unpacking librust-rkyv-dev:amd64 (0.7.44-1) ... 156s Selecting previously unselected package librust-num-complex-dev:amd64. 156s Preparing to unpack .../227-librust-num-complex-dev_0.4.6-2_amd64.deb ... 156s Unpacking librust-num-complex-dev:amd64 (0.4.6-2) ... 156s Selecting previously unselected package librust-approx-dev:amd64. 156s Preparing to unpack .../228-librust-approx-dev_0.5.1-1_amd64.deb ... 156s Unpacking librust-approx-dev:amd64 (0.5.1-1) ... 156s Selecting previously unselected package librust-array-init-dev:amd64. 156s Preparing to unpack .../229-librust-array-init-dev_2.0.1-1_amd64.deb ... 156s Unpacking librust-array-init-dev:amd64 (2.0.1-1) ... 156s Selecting previously unselected package librust-async-attributes-dev. 156s Preparing to unpack .../230-librust-async-attributes-dev_1.1.2-6_all.deb ... 156s Unpacking librust-async-attributes-dev (1.1.2-6) ... 156s Selecting previously unselected package librust-concurrent-queue-dev:amd64. 156s Preparing to unpack .../231-librust-concurrent-queue-dev_2.5.0-4_amd64.deb ... 156s Unpacking librust-concurrent-queue-dev:amd64 (2.5.0-4) ... 156s Selecting previously unselected package librust-parking-dev:amd64. 156s Preparing to unpack .../232-librust-parking-dev_2.2.0-1_amd64.deb ... 156s Unpacking librust-parking-dev:amd64 (2.2.0-1) ... 156s Selecting previously unselected package librust-pin-project-lite-dev:amd64. 156s Preparing to unpack .../233-librust-pin-project-lite-dev_0.2.13-1_amd64.deb ... 156s Unpacking librust-pin-project-lite-dev:amd64 (0.2.13-1) ... 156s Selecting previously unselected package librust-event-listener-dev. 156s Preparing to unpack .../234-librust-event-listener-dev_5.3.1-8_all.deb ... 156s Unpacking librust-event-listener-dev (5.3.1-8) ... 156s Selecting previously unselected package librust-event-listener-strategy-dev:amd64. 156s Preparing to unpack .../235-librust-event-listener-strategy-dev_0.5.2-3_amd64.deb ... 156s Unpacking librust-event-listener-strategy-dev:amd64 (0.5.2-3) ... 157s Selecting previously unselected package librust-futures-core-dev:amd64. 157s Preparing to unpack .../236-librust-futures-core-dev_0.3.30-1_amd64.deb ... 157s Unpacking librust-futures-core-dev:amd64 (0.3.30-1) ... 157s Selecting previously unselected package librust-async-channel-dev. 157s Preparing to unpack .../237-librust-async-channel-dev_2.3.1-8_all.deb ... 157s Unpacking librust-async-channel-dev (2.3.1-8) ... 157s Selecting previously unselected package librust-async-task-dev. 157s Preparing to unpack .../238-librust-async-task-dev_4.7.1-3_all.deb ... 157s Unpacking librust-async-task-dev (4.7.1-3) ... 157s Selecting previously unselected package librust-fastrand-dev:amd64. 157s Preparing to unpack .../239-librust-fastrand-dev_2.1.1-1_amd64.deb ... 157s Unpacking librust-fastrand-dev:amd64 (2.1.1-1) ... 157s Selecting previously unselected package librust-futures-io-dev:amd64. 157s Preparing to unpack .../240-librust-futures-io-dev_0.3.30-2_amd64.deb ... 157s Unpacking librust-futures-io-dev:amd64 (0.3.30-2) ... 157s Selecting previously unselected package librust-futures-lite-dev:amd64. 157s Preparing to unpack .../241-librust-futures-lite-dev_2.3.0-2_amd64.deb ... 157s Unpacking librust-futures-lite-dev:amd64 (2.3.0-2) ... 157s Selecting previously unselected package librust-slab-dev:amd64. 157s Preparing to unpack .../242-librust-slab-dev_0.4.9-1_amd64.deb ... 157s Unpacking librust-slab-dev:amd64 (0.4.9-1) ... 157s Selecting previously unselected package librust-async-executor-dev. 157s Preparing to unpack .../243-librust-async-executor-dev_1.13.1-1_all.deb ... 157s Unpacking librust-async-executor-dev (1.13.1-1) ... 157s Selecting previously unselected package librust-async-lock-dev. 157s Preparing to unpack .../244-librust-async-lock-dev_3.4.0-4_all.deb ... 157s Unpacking librust-async-lock-dev (3.4.0-4) ... 157s Selecting previously unselected package librust-atomic-waker-dev:amd64. 157s Preparing to unpack .../245-librust-atomic-waker-dev_1.1.2-1_amd64.deb ... 157s Unpacking librust-atomic-waker-dev:amd64 (1.1.2-1) ... 157s Selecting previously unselected package librust-tracing-attributes-dev:amd64. 157s Preparing to unpack .../246-librust-tracing-attributes-dev_0.1.27-1_amd64.deb ... 157s Unpacking librust-tracing-attributes-dev:amd64 (0.1.27-1) ... 157s Selecting previously unselected package librust-valuable-derive-dev:amd64. 157s Preparing to unpack .../247-librust-valuable-derive-dev_0.1.0-1_amd64.deb ... 157s Unpacking librust-valuable-derive-dev:amd64 (0.1.0-1) ... 157s Selecting previously unselected package librust-valuable-dev:amd64. 157s Preparing to unpack .../248-librust-valuable-dev_0.1.0-4_amd64.deb ... 157s Unpacking librust-valuable-dev:amd64 (0.1.0-4) ... 157s Selecting previously unselected package librust-tracing-core-dev:amd64. 157s Preparing to unpack .../249-librust-tracing-core-dev_0.1.32-1_amd64.deb ... 157s Unpacking librust-tracing-core-dev:amd64 (0.1.32-1) ... 157s Selecting previously unselected package librust-tracing-dev:amd64. 157s Preparing to unpack .../250-librust-tracing-dev_0.1.40-1_amd64.deb ... 157s Unpacking librust-tracing-dev:amd64 (0.1.40-1) ... 157s Selecting previously unselected package librust-blocking-dev. 157s Preparing to unpack .../251-librust-blocking-dev_1.6.1-5_all.deb ... 157s Unpacking librust-blocking-dev (1.6.1-5) ... 157s Selecting previously unselected package librust-async-fs-dev. 157s Preparing to unpack .../252-librust-async-fs-dev_2.1.2-4_all.deb ... 157s Unpacking librust-async-fs-dev (2.1.2-4) ... 157s Selecting previously unselected package librust-bitflags-dev:amd64. 157s Preparing to unpack .../253-librust-bitflags-dev_2.6.0-1_amd64.deb ... 157s Unpacking librust-bitflags-dev:amd64 (2.6.0-1) ... 157s Selecting previously unselected package librust-compiler-builtins+core-dev:amd64. 157s Preparing to unpack .../254-librust-compiler-builtins+core-dev_0.1.101-1_amd64.deb ... 157s Unpacking librust-compiler-builtins+core-dev:amd64 (0.1.101-1) ... 157s Selecting previously unselected package librust-compiler-builtins+rustc-dep-of-std-dev:amd64. 157s Preparing to unpack .../255-librust-compiler-builtins+rustc-dep-of-std-dev_0.1.101-1_amd64.deb ... 157s Unpacking librust-compiler-builtins+rustc-dep-of-std-dev:amd64 (0.1.101-1) ... 157s Selecting previously unselected package librust-errno-dev:amd64. 157s Preparing to unpack .../256-librust-errno-dev_0.3.8-1_amd64.deb ... 157s Unpacking librust-errno-dev:amd64 (0.3.8-1) ... 157s Selecting previously unselected package librust-linux-raw-sys-dev:amd64. 157s Preparing to unpack .../257-librust-linux-raw-sys-dev_0.4.14-1_amd64.deb ... 157s Unpacking librust-linux-raw-sys-dev:amd64 (0.4.14-1) ... 157s Selecting previously unselected package librust-rustix-dev:amd64. 157s Preparing to unpack .../258-librust-rustix-dev_0.38.32-1_amd64.deb ... 157s Unpacking librust-rustix-dev:amd64 (0.38.32-1) ... 157s Selecting previously unselected package librust-polling-dev:amd64. 157s Preparing to unpack .../259-librust-polling-dev_3.4.0-1_amd64.deb ... 157s Unpacking librust-polling-dev:amd64 (3.4.0-1) ... 157s Selecting previously unselected package librust-async-io-dev:amd64. 157s Preparing to unpack .../260-librust-async-io-dev_2.3.3-4_amd64.deb ... 157s Unpacking librust-async-io-dev:amd64 (2.3.3-4) ... 157s Selecting previously unselected package librust-mio-dev:amd64. 157s Preparing to unpack .../261-librust-mio-dev_1.0.2-2_amd64.deb ... 157s Unpacking librust-mio-dev:amd64 (1.0.2-2) ... 157s Selecting previously unselected package librust-owning-ref-dev:amd64. 157s Preparing to unpack .../262-librust-owning-ref-dev_0.4.1-1_amd64.deb ... 157s Unpacking librust-owning-ref-dev:amd64 (0.4.1-1) ... 157s Selecting previously unselected package librust-scopeguard-dev:amd64. 157s Preparing to unpack .../263-librust-scopeguard-dev_1.2.0-1_amd64.deb ... 157s Unpacking librust-scopeguard-dev:amd64 (1.2.0-1) ... 157s Selecting previously unselected package librust-lock-api-dev:amd64. 157s Preparing to unpack .../264-librust-lock-api-dev_0.4.12-1_amd64.deb ... 157s Unpacking librust-lock-api-dev:amd64 (0.4.12-1) ... 158s Selecting previously unselected package librust-parking-lot-dev:amd64. 158s Preparing to unpack .../265-librust-parking-lot-dev_0.12.1-2build1_amd64.deb ... 158s Unpacking librust-parking-lot-dev:amd64 (0.12.1-2build1) ... 158s Selecting previously unselected package librust-signal-hook-registry-dev:amd64. 158s Preparing to unpack .../266-librust-signal-hook-registry-dev_1.4.0-1_amd64.deb ... 158s Unpacking librust-signal-hook-registry-dev:amd64 (1.4.0-1) ... 158s Selecting previously unselected package librust-socket2-dev:amd64. 158s Preparing to unpack .../267-librust-socket2-dev_0.5.7-1_amd64.deb ... 158s Unpacking librust-socket2-dev:amd64 (0.5.7-1) ... 158s Selecting previously unselected package librust-tokio-macros-dev:amd64. 158s Preparing to unpack .../268-librust-tokio-macros-dev_2.4.0-2_amd64.deb ... 158s Unpacking librust-tokio-macros-dev:amd64 (2.4.0-2) ... 158s Selecting previously unselected package librust-tokio-dev:amd64. 158s Preparing to unpack .../269-librust-tokio-dev_1.39.3-3_amd64.deb ... 158s Unpacking librust-tokio-dev:amd64 (1.39.3-3) ... 158s Selecting previously unselected package librust-async-global-executor-dev:amd64. 158s Preparing to unpack .../270-librust-async-global-executor-dev_2.4.1-5_amd64.deb ... 158s Unpacking librust-async-global-executor-dev:amd64 (2.4.1-5) ... 158s Selecting previously unselected package librust-async-net-dev. 158s Preparing to unpack .../271-librust-async-net-dev_2.0.0-4_all.deb ... 158s Unpacking librust-async-net-dev (2.0.0-4) ... 158s Selecting previously unselected package librust-async-signal-dev:amd64. 158s Preparing to unpack .../272-librust-async-signal-dev_0.2.10-1_amd64.deb ... 158s Unpacking librust-async-signal-dev:amd64 (0.2.10-1) ... 158s Selecting previously unselected package librust-async-process-dev. 158s Preparing to unpack .../273-librust-async-process-dev_2.3.0-1_all.deb ... 158s Unpacking librust-async-process-dev (2.3.0-1) ... 158s Selecting previously unselected package librust-kv-log-macro-dev. 158s Preparing to unpack .../274-librust-kv-log-macro-dev_1.0.8-4_all.deb ... 158s Unpacking librust-kv-log-macro-dev (1.0.8-4) ... 158s Selecting previously unselected package librust-pin-utils-dev:amd64. 158s Preparing to unpack .../275-librust-pin-utils-dev_0.1.0-1_amd64.deb ... 158s Unpacking librust-pin-utils-dev:amd64 (0.1.0-1) ... 158s Selecting previously unselected package librust-async-std-dev. 158s Preparing to unpack .../276-librust-async-std-dev_1.12.0-22_all.deb ... 158s Unpacking librust-async-std-dev (1.12.0-22) ... 158s Selecting previously unselected package librust-base64-dev:amd64. 158s Preparing to unpack .../277-librust-base64-dev_0.21.7-1_amd64.deb ... 158s Unpacking librust-base64-dev:amd64 (0.21.7-1) ... 158s Selecting previously unselected package librust-bit-vec-dev:amd64. 158s Preparing to unpack .../278-librust-bit-vec-dev_0.6.3-1_amd64.deb ... 158s Unpacking librust-bit-vec-dev:amd64 (0.6.3-1) ... 158s Selecting previously unselected package librust-bit-set-dev:amd64. 158s Preparing to unpack .../279-librust-bit-set-dev_0.5.2-1_amd64.deb ... 158s Unpacking librust-bit-set-dev:amd64 (0.5.2-1) ... 158s Selecting previously unselected package librust-bit-set+std-dev:amd64. 158s Preparing to unpack .../280-librust-bit-set+std-dev_0.5.2-1_amd64.deb ... 158s Unpacking librust-bit-set+std-dev:amd64 (0.5.2-1) ... 158s Selecting previously unselected package librust-regex-syntax-dev:amd64. 158s Preparing to unpack .../281-librust-regex-syntax-dev_0.8.2-1_amd64.deb ... 158s Unpacking librust-regex-syntax-dev:amd64 (0.8.2-1) ... 158s Selecting previously unselected package librust-regex-automata-dev:amd64. 158s Preparing to unpack .../282-librust-regex-automata-dev_0.4.7-1_amd64.deb ... 158s Unpacking librust-regex-automata-dev:amd64 (0.4.7-1) ... 158s Selecting previously unselected package librust-bstr-dev:amd64. 158s Preparing to unpack .../283-librust-bstr-dev_1.7.0-2build1_amd64.deb ... 158s Unpacking librust-bstr-dev:amd64 (1.7.0-2build1) ... 158s Selecting previously unselected package librust-bumpalo-dev:amd64. 158s Preparing to unpack .../284-librust-bumpalo-dev_3.16.0-1_amd64.deb ... 158s Unpacking librust-bumpalo-dev:amd64 (3.16.0-1) ... 158s Selecting previously unselected package librust-cast-dev:amd64. 158s Preparing to unpack .../285-librust-cast-dev_0.3.0-1_amd64.deb ... 158s Unpacking librust-cast-dev:amd64 (0.3.0-1) ... 158s Selecting previously unselected package librust-iana-time-zone-dev:amd64. 158s Preparing to unpack .../286-librust-iana-time-zone-dev_0.1.60-1_amd64.deb ... 158s Unpacking librust-iana-time-zone-dev:amd64 (0.1.60-1) ... 158s Selecting previously unselected package librust-wasm-bindgen-shared-dev:amd64. 158s Preparing to unpack .../287-librust-wasm-bindgen-shared-dev_0.2.87-1_amd64.deb ... 158s Unpacking librust-wasm-bindgen-shared-dev:amd64 (0.2.87-1) ... 158s Selecting previously unselected package librust-wasm-bindgen-backend-dev:amd64. 158s Preparing to unpack .../288-librust-wasm-bindgen-backend-dev_0.2.87-1_amd64.deb ... 158s Unpacking librust-wasm-bindgen-backend-dev:amd64 (0.2.87-1) ... 158s Selecting previously unselected package librust-wasm-bindgen-macro-support-dev:amd64. 158s Preparing to unpack .../289-librust-wasm-bindgen-macro-support-dev_0.2.87-1_amd64.deb ... 158s Unpacking librust-wasm-bindgen-macro-support-dev:amd64 (0.2.87-1) ... 158s Selecting previously unselected package librust-wasm-bindgen-macro-dev:amd64. 158s Preparing to unpack .../290-librust-wasm-bindgen-macro-dev_0.2.87-1_amd64.deb ... 158s Unpacking librust-wasm-bindgen-macro-dev:amd64 (0.2.87-1) ... 158s Selecting previously unselected package librust-wasm-bindgen-dev:amd64. 158s Preparing to unpack .../291-librust-wasm-bindgen-dev_0.2.87-1_amd64.deb ... 158s Unpacking librust-wasm-bindgen-dev:amd64 (0.2.87-1) ... 159s Selecting previously unselected package librust-wasm-bindgen-macro-support+spans-dev:amd64. 159s Preparing to unpack .../292-librust-wasm-bindgen-macro-support+spans-dev_0.2.87-1_amd64.deb ... 159s Unpacking librust-wasm-bindgen-macro-support+spans-dev:amd64 (0.2.87-1) ... 159s Selecting previously unselected package librust-wasm-bindgen-macro+spans-dev:amd64. 159s Preparing to unpack .../293-librust-wasm-bindgen-macro+spans-dev_0.2.87-1_amd64.deb ... 159s Unpacking librust-wasm-bindgen-macro+spans-dev:amd64 (0.2.87-1) ... 159s Selecting previously unselected package librust-wasm-bindgen+spans-dev:amd64. 159s Preparing to unpack .../294-librust-wasm-bindgen+spans-dev_0.2.87-1_amd64.deb ... 159s Unpacking librust-wasm-bindgen+spans-dev:amd64 (0.2.87-1) ... 159s Selecting previously unselected package librust-wasm-bindgen+default-dev:amd64. 159s Preparing to unpack .../295-librust-wasm-bindgen+default-dev_0.2.87-1_amd64.deb ... 159s Unpacking librust-wasm-bindgen+default-dev:amd64 (0.2.87-1) ... 159s Selecting previously unselected package librust-js-sys-dev:amd64. 159s Preparing to unpack .../296-librust-js-sys-dev_0.3.64-1_amd64.deb ... 159s Unpacking librust-js-sys-dev:amd64 (0.3.64-1) ... 159s Selecting previously unselected package librust-pure-rust-locales-dev:amd64. 159s Preparing to unpack .../297-librust-pure-rust-locales-dev_0.8.1-1_amd64.deb ... 159s Unpacking librust-pure-rust-locales-dev:amd64 (0.8.1-1) ... 159s Selecting previously unselected package librust-chrono-dev:amd64. 159s Preparing to unpack .../298-librust-chrono-dev_0.4.38-2_amd64.deb ... 159s Unpacking librust-chrono-dev:amd64 (0.4.38-2) ... 159s Selecting previously unselected package librust-regex-dev:amd64. 159s Preparing to unpack .../299-librust-regex-dev_1.10.6-1_amd64.deb ... 159s Unpacking librust-regex-dev:amd64 (1.10.6-1) ... 159s Selecting previously unselected package librust-parse-zoneinfo-dev:amd64. 159s Preparing to unpack .../300-librust-parse-zoneinfo-dev_0.3.0-1_amd64.deb ... 159s Unpacking librust-parse-zoneinfo-dev:amd64 (0.3.0-1) ... 159s Selecting previously unselected package librust-siphasher-dev:amd64. 159s Preparing to unpack .../301-librust-siphasher-dev_0.3.10-1_amd64.deb ... 159s Unpacking librust-siphasher-dev:amd64 (0.3.10-1) ... 159s Selecting previously unselected package librust-phf-shared-dev:amd64. 159s Preparing to unpack .../302-librust-phf-shared-dev_0.11.2-1_amd64.deb ... 159s Unpacking librust-phf-shared-dev:amd64 (0.11.2-1) ... 159s Selecting previously unselected package librust-phf-dev:amd64. 159s Preparing to unpack .../303-librust-phf-dev_0.11.2-1_amd64.deb ... 159s Unpacking librust-phf-dev:amd64 (0.11.2-1) ... 159s Selecting previously unselected package librust-uncased-dev:amd64. 159s Preparing to unpack .../304-librust-uncased-dev_0.9.6-2_amd64.deb ... 159s Unpacking librust-uncased-dev:amd64 (0.9.6-2) ... 159s Selecting previously unselected package librust-phf-shared+uncased-dev:amd64. 159s Preparing to unpack .../305-librust-phf-shared+uncased-dev_0.11.2-1_amd64.deb ... 159s Unpacking librust-phf-shared+uncased-dev:amd64 (0.11.2-1) ... 159s Selecting previously unselected package librust-phf+uncased-dev:amd64. 159s Preparing to unpack .../306-librust-phf+uncased-dev_0.11.2-1_amd64.deb ... 159s Unpacking librust-phf+uncased-dev:amd64 (0.11.2-1) ... 159s Selecting previously unselected package librust-ciborium-io-dev:amd64. 159s Preparing to unpack .../307-librust-ciborium-io-dev_0.2.2-1_amd64.deb ... 159s Unpacking librust-ciborium-io-dev:amd64 (0.2.2-1) ... 159s Selecting previously unselected package librust-half-dev:amd64. 159s Preparing to unpack .../308-librust-half-dev_1.8.2-4_amd64.deb ... 159s Unpacking librust-half-dev:amd64 (1.8.2-4) ... 159s Selecting previously unselected package librust-ciborium-ll-dev:amd64. 159s Preparing to unpack .../309-librust-ciborium-ll-dev_0.2.2-1_amd64.deb ... 159s Unpacking librust-ciborium-ll-dev:amd64 (0.2.2-1) ... 159s Selecting previously unselected package librust-ciborium-dev:amd64. 159s Preparing to unpack .../310-librust-ciborium-dev_0.2.2-2_amd64.deb ... 159s Unpacking librust-ciborium-dev:amd64 (0.2.2-2) ... 159s Selecting previously unselected package librust-clap-lex-dev:amd64. 159s Preparing to unpack .../311-librust-clap-lex-dev_0.7.2-2_amd64.deb ... 159s Unpacking librust-clap-lex-dev:amd64 (0.7.2-2) ... 159s Selecting previously unselected package librust-strsim-dev:amd64. 159s Preparing to unpack .../312-librust-strsim-dev_0.11.1-1_amd64.deb ... 159s Unpacking librust-strsim-dev:amd64 (0.11.1-1) ... 159s Selecting previously unselected package librust-terminal-size-dev:amd64. 159s Preparing to unpack .../313-librust-terminal-size-dev_0.3.0-2_amd64.deb ... 159s Unpacking librust-terminal-size-dev:amd64 (0.3.0-2) ... 159s Selecting previously unselected package librust-unicase-dev:amd64. 159s Preparing to unpack .../314-librust-unicase-dev_2.7.0-1_amd64.deb ... 159s Unpacking librust-unicase-dev:amd64 (2.7.0-1) ... 159s Selecting previously unselected package librust-unicode-width-dev:amd64. 159s Preparing to unpack .../315-librust-unicode-width-dev_0.1.13-3_amd64.deb ... 159s Unpacking librust-unicode-width-dev:amd64 (0.1.13-3) ... 159s Selecting previously unselected package librust-clap-builder-dev:amd64. 159s Preparing to unpack .../316-librust-clap-builder-dev_4.5.15-2_amd64.deb ... 159s Unpacking librust-clap-builder-dev:amd64 (4.5.15-2) ... 159s Selecting previously unselected package librust-heck-dev:amd64. 159s Preparing to unpack .../317-librust-heck-dev_0.4.1-1_amd64.deb ... 159s Unpacking librust-heck-dev:amd64 (0.4.1-1) ... 159s Selecting previously unselected package librust-clap-derive-dev:amd64. 159s Preparing to unpack .../318-librust-clap-derive-dev_4.5.13-2_amd64.deb ... 159s Unpacking librust-clap-derive-dev:amd64 (4.5.13-2) ... 159s Selecting previously unselected package librust-clap-dev:amd64. 159s Preparing to unpack .../319-librust-clap-dev_4.5.16-1_amd64.deb ... 159s Unpacking librust-clap-dev:amd64 (4.5.16-1) ... 159s Selecting previously unselected package librust-csv-core-dev:amd64. 159s Preparing to unpack .../320-librust-csv-core-dev_0.1.11-1_amd64.deb ... 159s Unpacking librust-csv-core-dev:amd64 (0.1.11-1) ... 159s Selecting previously unselected package librust-csv-dev:amd64. 159s Preparing to unpack .../321-librust-csv-dev_1.3.0-1_amd64.deb ... 159s Unpacking librust-csv-dev:amd64 (1.3.0-1) ... 160s Selecting previously unselected package librust-futures-sink-dev:amd64. 160s Preparing to unpack .../322-librust-futures-sink-dev_0.3.31-1_amd64.deb ... 160s Unpacking librust-futures-sink-dev:amd64 (0.3.31-1) ... 160s Selecting previously unselected package librust-futures-channel-dev:amd64. 160s Preparing to unpack .../323-librust-futures-channel-dev_0.3.30-1_amd64.deb ... 160s Unpacking librust-futures-channel-dev:amd64 (0.3.30-1) ... 160s Selecting previously unselected package librust-futures-task-dev:amd64. 160s Preparing to unpack .../324-librust-futures-task-dev_0.3.30-1_amd64.deb ... 160s Unpacking librust-futures-task-dev:amd64 (0.3.30-1) ... 160s Selecting previously unselected package librust-futures-macro-dev:amd64. 160s Preparing to unpack .../325-librust-futures-macro-dev_0.3.30-1_amd64.deb ... 160s Unpacking librust-futures-macro-dev:amd64 (0.3.30-1) ... 160s Selecting previously unselected package librust-futures-util-dev:amd64. 160s Preparing to unpack .../326-librust-futures-util-dev_0.3.30-2_amd64.deb ... 160s Unpacking librust-futures-util-dev:amd64 (0.3.30-2) ... 160s Selecting previously unselected package librust-num-cpus-dev:amd64. 160s Preparing to unpack .../327-librust-num-cpus-dev_1.16.0-1_amd64.deb ... 160s Unpacking librust-num-cpus-dev:amd64 (1.16.0-1) ... 160s Selecting previously unselected package librust-futures-executor-dev:amd64. 160s Preparing to unpack .../328-librust-futures-executor-dev_0.3.30-1_amd64.deb ... 160s Unpacking librust-futures-executor-dev:amd64 (0.3.30-1) ... 160s Selecting previously unselected package librust-futures-dev:amd64. 160s Preparing to unpack .../329-librust-futures-dev_0.3.30-2_amd64.deb ... 160s Unpacking librust-futures-dev:amd64 (0.3.30-2) ... 160s Selecting previously unselected package librust-is-terminal-dev:amd64. 160s Preparing to unpack .../330-librust-is-terminal-dev_0.4.13-1_amd64.deb ... 160s Unpacking librust-is-terminal-dev:amd64 (0.4.13-1) ... 160s Selecting previously unselected package librust-itertools-dev:amd64. 160s Preparing to unpack .../331-librust-itertools-dev_0.10.5-1_amd64.deb ... 160s Unpacking librust-itertools-dev:amd64 (0.10.5-1) ... 160s Selecting previously unselected package librust-oorandom-dev:amd64. 160s Preparing to unpack .../332-librust-oorandom-dev_11.1.3-1_amd64.deb ... 160s Unpacking librust-oorandom-dev:amd64 (11.1.3-1) ... 160s Selecting previously unselected package librust-winapi-i686-pc-windows-gnu-dev:amd64. 160s Preparing to unpack .../333-librust-winapi-i686-pc-windows-gnu-dev_0.4.0-1_amd64.deb ... 160s Unpacking librust-winapi-i686-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 160s Selecting previously unselected package librust-winapi-x86-64-pc-windows-gnu-dev:amd64. 160s Preparing to unpack .../334-librust-winapi-x86-64-pc-windows-gnu-dev_0.4.0-1_amd64.deb ... 160s Unpacking librust-winapi-x86-64-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 160s Selecting previously unselected package librust-winapi-dev:amd64. 160s Preparing to unpack .../335-librust-winapi-dev_0.3.9-1_amd64.deb ... 160s Unpacking librust-winapi-dev:amd64 (0.3.9-1) ... 160s Selecting previously unselected package librust-dirs-sys-next-dev:amd64. 160s Preparing to unpack .../336-librust-dirs-sys-next-dev_0.1.1-1_amd64.deb ... 160s Unpacking librust-dirs-sys-next-dev:amd64 (0.1.1-1) ... 160s Selecting previously unselected package librust-dirs-next-dev:amd64. 160s Preparing to unpack .../337-librust-dirs-next-dev_2.0.0-1_amd64.deb ... 160s Unpacking librust-dirs-next-dev:amd64 (2.0.0-1) ... 160s Selecting previously unselected package librust-float-ord-dev:amd64. 160s Preparing to unpack .../338-librust-float-ord-dev_0.3.2-1_amd64.deb ... 160s Unpacking librust-float-ord-dev:amd64 (0.3.2-1) ... 160s Selecting previously unselected package librust-cmake-dev:amd64. 160s Preparing to unpack .../339-librust-cmake-dev_0.1.45-1_amd64.deb ... 160s Unpacking librust-cmake-dev:amd64 (0.1.45-1) ... 160s Selecting previously unselected package librust-freetype-sys-dev:amd64. 160s Preparing to unpack .../340-librust-freetype-sys-dev_0.13.1-1_amd64.deb ... 160s Unpacking librust-freetype-sys-dev:amd64 (0.13.1-1) ... 160s Selecting previously unselected package librust-freetype-dev:amd64. 160s Preparing to unpack .../341-librust-freetype-dev_0.7.0-4_amd64.deb ... 160s Unpacking librust-freetype-dev:amd64 (0.7.0-4) ... 160s Selecting previously unselected package librust-spin-dev:amd64. 160s Preparing to unpack .../342-librust-spin-dev_0.9.8-4_amd64.deb ... 160s Unpacking librust-spin-dev:amd64 (0.9.8-4) ... 160s Selecting previously unselected package librust-lazy-static-dev:amd64. 160s Preparing to unpack .../343-librust-lazy-static-dev_1.4.0-2_amd64.deb ... 160s Unpacking librust-lazy-static-dev:amd64 (1.4.0-2) ... 160s Selecting previously unselected package librust-pathfinder-simd-dev:amd64. 160s Preparing to unpack .../344-librust-pathfinder-simd-dev_0.5.2-1_amd64.deb ... 160s Unpacking librust-pathfinder-simd-dev:amd64 (0.5.2-1) ... 160s Selecting previously unselected package librust-pathfinder-geometry-dev:amd64. 160s Preparing to unpack .../345-librust-pathfinder-geometry-dev_0.5.1-1_amd64.deb ... 160s Unpacking librust-pathfinder-geometry-dev:amd64 (0.5.1-1) ... 160s Selecting previously unselected package librust-winapi-util-dev:amd64. 160s Preparing to unpack .../346-librust-winapi-util-dev_0.1.6-1_amd64.deb ... 160s Unpacking librust-winapi-util-dev:amd64 (0.1.6-1) ... 160s Selecting previously unselected package librust-same-file-dev:amd64. 160s Preparing to unpack .../347-librust-same-file-dev_1.0.6-1_amd64.deb ... 160s Unpacking librust-same-file-dev:amd64 (1.0.6-1) ... 160s Selecting previously unselected package librust-walkdir-dev:amd64. 160s Preparing to unpack .../348-librust-walkdir-dev_2.5.0-1_amd64.deb ... 160s Unpacking librust-walkdir-dev:amd64 (2.5.0-1) ... 160s Selecting previously unselected package librust-const-cstr-dev:amd64. 160s Preparing to unpack .../349-librust-const-cstr-dev_0.3.0-1_amd64.deb ... 160s Unpacking librust-const-cstr-dev:amd64 (0.3.0-1) ... 160s Selecting previously unselected package librust-libloading-dev:amd64. 160s Preparing to unpack .../350-librust-libloading-dev_0.8.5-1_amd64.deb ... 160s Unpacking librust-libloading-dev:amd64 (0.8.5-1) ... 160s Selecting previously unselected package librust-dlib-dev:amd64. 160s Preparing to unpack .../351-librust-dlib-dev_0.5.2-2_amd64.deb ... 160s Unpacking librust-dlib-dev:amd64 (0.5.2-2) ... 160s Selecting previously unselected package librust-yeslogic-fontconfig-sys-dev:amd64. 160s Preparing to unpack .../352-librust-yeslogic-fontconfig-sys-dev_3.0.1-1_amd64.deb ... 160s Unpacking librust-yeslogic-fontconfig-sys-dev:amd64 (3.0.1-1) ... 160s Selecting previously unselected package librust-font-kit-dev:amd64. 160s Preparing to unpack .../353-librust-font-kit-dev_0.11.0-2_amd64.deb ... 160s Unpacking librust-font-kit-dev:amd64 (0.11.0-2) ... 161s Selecting previously unselected package librust-color-quant-dev:amd64. 161s Preparing to unpack .../354-librust-color-quant-dev_1.1.0-1_amd64.deb ... 161s Unpacking librust-color-quant-dev:amd64 (1.1.0-1) ... 161s Selecting previously unselected package librust-weezl-dev:amd64. 161s Preparing to unpack .../355-librust-weezl-dev_0.1.5-1_amd64.deb ... 161s Unpacking librust-weezl-dev:amd64 (0.1.5-1) ... 161s Selecting previously unselected package librust-gif-dev:amd64. 161s Preparing to unpack .../356-librust-gif-dev_0.11.3-1_amd64.deb ... 161s Unpacking librust-gif-dev:amd64 (0.11.3-1) ... 161s Selecting previously unselected package librust-jpeg-decoder-dev:amd64. 161s Preparing to unpack .../357-librust-jpeg-decoder-dev_0.3.0-1_amd64.deb ... 161s Unpacking librust-jpeg-decoder-dev:amd64 (0.3.0-1) ... 161s Selecting previously unselected package librust-num-integer-dev:amd64. 161s Preparing to unpack .../358-librust-num-integer-dev_0.1.46-1_amd64.deb ... 161s Unpacking librust-num-integer-dev:amd64 (0.1.46-1) ... 161s Selecting previously unselected package librust-humantime-dev:amd64. 161s Preparing to unpack .../359-librust-humantime-dev_2.1.0-1_amd64.deb ... 161s Unpacking librust-humantime-dev:amd64 (2.1.0-1) ... 161s Selecting previously unselected package librust-termcolor-dev:amd64. 161s Preparing to unpack .../360-librust-termcolor-dev_1.4.1-1_amd64.deb ... 161s Unpacking librust-termcolor-dev:amd64 (1.4.1-1) ... 161s Selecting previously unselected package librust-env-logger-dev:amd64. 161s Preparing to unpack .../361-librust-env-logger-dev_0.10.2-2_amd64.deb ... 161s Unpacking librust-env-logger-dev:amd64 (0.10.2-2) ... 161s Selecting previously unselected package librust-quickcheck-dev:amd64. 161s Preparing to unpack .../362-librust-quickcheck-dev_1.0.3-3_amd64.deb ... 161s Unpacking librust-quickcheck-dev:amd64 (1.0.3-3) ... 161s Selecting previously unselected package librust-num-bigint-dev:amd64. 161s Preparing to unpack .../363-librust-num-bigint-dev_0.4.6-1_amd64.deb ... 161s Unpacking librust-num-bigint-dev:amd64 (0.4.6-1) ... 161s Selecting previously unselected package librust-num-rational-dev:amd64. 161s Preparing to unpack .../364-librust-num-rational-dev_0.4.2-1_amd64.deb ... 161s Unpacking librust-num-rational-dev:amd64 (0.4.2-1) ... 161s Selecting previously unselected package librust-png-dev:amd64. 161s Preparing to unpack .../365-librust-png-dev_0.17.7-3_amd64.deb ... 161s Unpacking librust-png-dev:amd64 (0.17.7-3) ... 161s Selecting previously unselected package librust-qoi-dev:amd64. 161s Preparing to unpack .../366-librust-qoi-dev_0.4.1-2_amd64.deb ... 161s Unpacking librust-qoi-dev:amd64 (0.4.1-2) ... 161s Selecting previously unselected package librust-tiff-dev:amd64. 161s Preparing to unpack .../367-librust-tiff-dev_0.9.0-1_amd64.deb ... 161s Unpacking librust-tiff-dev:amd64 (0.9.0-1) ... 161s Selecting previously unselected package libsharpyuv0:amd64. 161s Preparing to unpack .../368-libsharpyuv0_1.4.0-0.1_amd64.deb ... 161s Unpacking libsharpyuv0:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libwebp7:amd64. 161s Preparing to unpack .../369-libwebp7_1.4.0-0.1_amd64.deb ... 161s Unpacking libwebp7:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libwebpdemux2:amd64. 161s Preparing to unpack .../370-libwebpdemux2_1.4.0-0.1_amd64.deb ... 161s Unpacking libwebpdemux2:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libwebpmux3:amd64. 161s Preparing to unpack .../371-libwebpmux3_1.4.0-0.1_amd64.deb ... 161s Unpacking libwebpmux3:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libwebpdecoder3:amd64. 161s Preparing to unpack .../372-libwebpdecoder3_1.4.0-0.1_amd64.deb ... 161s Unpacking libwebpdecoder3:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libsharpyuv-dev:amd64. 161s Preparing to unpack .../373-libsharpyuv-dev_1.4.0-0.1_amd64.deb ... 161s Unpacking libsharpyuv-dev:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package libwebp-dev:amd64. 161s Preparing to unpack .../374-libwebp-dev_1.4.0-0.1_amd64.deb ... 161s Unpacking libwebp-dev:amd64 (1.4.0-0.1) ... 161s Selecting previously unselected package librust-libwebp-sys-dev:amd64. 161s Preparing to unpack .../375-librust-libwebp-sys-dev_0.9.5-1build1_amd64.deb ... 161s Unpacking librust-libwebp-sys-dev:amd64 (0.9.5-1build1) ... 161s Selecting previously unselected package librust-webp-dev:amd64. 161s Preparing to unpack .../376-librust-webp-dev_0.2.6-1_amd64.deb ... 161s Unpacking librust-webp-dev:amd64 (0.2.6-1) ... 161s Selecting previously unselected package librust-image-dev:amd64. 161s Preparing to unpack .../377-librust-image-dev_0.24.7-2_amd64.deb ... 161s Unpacking librust-image-dev:amd64 (0.24.7-2) ... 161s Selecting previously unselected package librust-plotters-backend-dev:amd64. 161s Preparing to unpack .../378-librust-plotters-backend-dev_0.3.5-1_amd64.deb ... 161s Unpacking librust-plotters-backend-dev:amd64 (0.3.5-1) ... 161s Selecting previously unselected package librust-plotters-bitmap-dev:amd64. 161s Preparing to unpack .../379-librust-plotters-bitmap-dev_0.3.3-3_amd64.deb ... 161s Unpacking librust-plotters-bitmap-dev:amd64 (0.3.3-3) ... 161s Selecting previously unselected package librust-plotters-svg-dev:amd64. 161s Preparing to unpack .../380-librust-plotters-svg-dev_0.3.5-1_amd64.deb ... 161s Unpacking librust-plotters-svg-dev:amd64 (0.3.5-1) ... 162s Selecting previously unselected package librust-web-sys-dev:amd64. 162s Preparing to unpack .../381-librust-web-sys-dev_0.3.64-2_amd64.deb ... 162s Unpacking librust-web-sys-dev:amd64 (0.3.64-2) ... 162s Selecting previously unselected package librust-plotters-dev:amd64. 162s Preparing to unpack .../382-librust-plotters-dev_0.3.5-4_amd64.deb ... 162s Unpacking librust-plotters-dev:amd64 (0.3.5-4) ... 162s Selecting previously unselected package librust-smol-dev. 162s Preparing to unpack .../383-librust-smol-dev_2.0.2-1_all.deb ... 162s Unpacking librust-smol-dev (2.0.2-1) ... 162s Selecting previously unselected package librust-tinytemplate-dev:amd64. 162s Preparing to unpack .../384-librust-tinytemplate-dev_1.2.1-1_amd64.deb ... 162s Unpacking librust-tinytemplate-dev:amd64 (1.2.1-1) ... 162s Selecting previously unselected package librust-criterion-dev. 162s Preparing to unpack .../385-librust-criterion-dev_0.5.1-6_all.deb ... 162s Unpacking librust-criterion-dev (0.5.1-6) ... 162s Selecting previously unselected package librust-phf-generator-dev:amd64. 162s Preparing to unpack .../386-librust-phf-generator-dev_0.11.2-2_amd64.deb ... 162s Unpacking librust-phf-generator-dev:amd64 (0.11.2-2) ... 162s Selecting previously unselected package librust-phf-codegen-dev:amd64. 162s Preparing to unpack .../387-librust-phf-codegen-dev_0.11.2-1_amd64.deb ... 162s Unpacking librust-phf-codegen-dev:amd64 (0.11.2-1) ... 162s Selecting previously unselected package librust-chrono-tz-build-dev:amd64. 162s Preparing to unpack .../388-librust-chrono-tz-build-dev_0.2.1-1_amd64.deb ... 162s Unpacking librust-chrono-tz-build-dev:amd64 (0.2.1-1) ... 162s Selecting previously unselected package librust-chrono-tz-dev:amd64. 162s Preparing to unpack .../389-librust-chrono-tz-dev_0.8.6-2_amd64.deb ... 162s Unpacking librust-chrono-tz-dev:amd64 (0.8.6-2) ... 162s Selecting previously unselected package librust-ctor-dev:amd64. 162s Preparing to unpack .../390-librust-ctor-dev_0.1.26-1_amd64.deb ... 162s Unpacking librust-ctor-dev:amd64 (0.1.26-1) ... 162s Selecting previously unselected package librust-powerfmt-macros-dev:amd64. 162s Preparing to unpack .../391-librust-powerfmt-macros-dev_0.1.0-1_amd64.deb ... 162s Unpacking librust-powerfmt-macros-dev:amd64 (0.1.0-1) ... 162s Selecting previously unselected package librust-powerfmt-dev:amd64. 162s Preparing to unpack .../392-librust-powerfmt-dev_0.2.0-1_amd64.deb ... 162s Unpacking librust-powerfmt-dev:amd64 (0.2.0-1) ... 162s Selecting previously unselected package librust-deranged-dev:amd64. 162s Preparing to unpack .../393-librust-deranged-dev_0.3.11-1_amd64.deb ... 162s Unpacking librust-deranged-dev:amd64 (0.3.11-1) ... 162s Selecting previously unselected package librust-eui48-dev:amd64. 162s Preparing to unpack .../394-librust-eui48-dev_1.1.0-2_amd64.deb ... 162s Unpacking librust-eui48-dev:amd64 (1.1.0-2) ... 162s Selecting previously unselected package librust-indenter-dev:amd64. 162s Preparing to unpack .../395-librust-indenter-dev_0.3.3-1_amd64.deb ... 162s Unpacking librust-indenter-dev:amd64 (0.3.3-1) ... 162s Selecting previously unselected package librust-eyre-dev:amd64. 162s Preparing to unpack .../396-librust-eyre-dev_0.6.12-1_amd64.deb ... 162s Unpacking librust-eyre-dev:amd64 (0.6.12-1) ... 162s Selecting previously unselected package librust-eyre+default-dev:amd64. 162s Preparing to unpack .../397-librust-eyre+default-dev_0.6.12-1_amd64.deb ... 162s Unpacking librust-eyre+default-dev:amd64 (0.6.12-1) ... 162s Selecting previously unselected package librust-fancy-regex-dev:amd64. 162s Preparing to unpack .../398-librust-fancy-regex-dev_0.11.0-2_amd64.deb ... 162s Unpacking librust-fancy-regex-dev:amd64 (0.11.0-2) ... 162s Selecting previously unselected package librust-fnv-dev:amd64. 162s Preparing to unpack .../399-librust-fnv-dev_1.0.7-1_amd64.deb ... 162s Unpacking librust-fnv-dev:amd64 (1.0.7-1) ... 162s Selecting previously unselected package librust-geo-types-dev:amd64. 162s Preparing to unpack .../400-librust-geo-types-dev_0.7.11-2_amd64.deb ... 162s Unpacking librust-geo-types-dev:amd64 (0.7.11-2) ... 162s Selecting previously unselected package librust-ghost-dev:amd64. 162s Preparing to unpack .../401-librust-ghost-dev_0.1.5-1_amd64.deb ... 162s Unpacking librust-ghost-dev:amd64 (0.1.5-1) ... 162s Selecting previously unselected package librust-hmac-dev:amd64. 162s Preparing to unpack .../402-librust-hmac-dev_0.12.1-1_amd64.deb ... 162s Unpacking librust-hmac-dev:amd64 (0.12.1-1) ... 163s Selecting previously unselected package librust-indoc-dev:amd64. 163s Preparing to unpack .../403-librust-indoc-dev_2.0.5-1_amd64.deb ... 163s Unpacking librust-indoc-dev:amd64 (2.0.5-1) ... 163s Selecting previously unselected package librust-inventory-dev:amd64. 163s Preparing to unpack .../404-librust-inventory-dev_0.3.2-1_amd64.deb ... 163s Unpacking librust-inventory-dev:amd64 (0.3.2-1) ... 163s Selecting previously unselected package librust-memoffset-dev:amd64. 163s Preparing to unpack .../405-librust-memoffset-dev_0.8.0-1_amd64.deb ... 163s Unpacking librust-memoffset-dev:amd64 (0.8.0-1) ... 163s Selecting previously unselected package librust-num-threads-dev:amd64. 163s Preparing to unpack .../406-librust-num-threads-dev_0.1.7-1_amd64.deb ... 163s Unpacking librust-num-threads-dev:amd64 (0.1.7-1) ... 163s Selecting previously unselected package librust-postgres-derive-dev:amd64. 163s Preparing to unpack .../407-librust-postgres-derive-dev_0.4.5-1_amd64.deb ... 163s Unpacking librust-postgres-derive-dev:amd64 (0.4.5-1) ... 163s Selecting previously unselected package librust-sha2-asm-dev:amd64. 163s Preparing to unpack .../408-librust-sha2-asm-dev_0.6.2-2_amd64.deb ... 163s Unpacking librust-sha2-asm-dev:amd64 (0.6.2-2) ... 163s Selecting previously unselected package librust-sha2-dev:amd64. 163s Preparing to unpack .../409-librust-sha2-dev_0.10.8-1_amd64.deb ... 163s Unpacking librust-sha2-dev:amd64 (0.10.8-1) ... 163s Selecting previously unselected package librust-unicode-bidi-dev:amd64. 163s Preparing to unpack .../410-librust-unicode-bidi-dev_0.3.13-1_amd64.deb ... 163s Unpacking librust-unicode-bidi-dev:amd64 (0.3.13-1) ... 163s Selecting previously unselected package librust-unicode-normalization-dev:amd64. 163s Preparing to unpack .../411-librust-unicode-normalization-dev_0.1.22-1_amd64.deb ... 163s Unpacking librust-unicode-normalization-dev:amd64 (0.1.22-1) ... 163s Selecting previously unselected package librust-stringprep-dev:amd64. 163s Preparing to unpack .../412-librust-stringprep-dev_0.1.2-1_amd64.deb ... 163s Unpacking librust-stringprep-dev:amd64 (0.1.2-1) ... 163s Selecting previously unselected package librust-postgres-protocol-dev:amd64. 163s Preparing to unpack .../413-librust-postgres-protocol-dev_0.6.6-2_amd64.deb ... 163s Unpacking librust-postgres-protocol-dev:amd64 (0.6.6-2) ... 163s Selecting previously unselected package librust-time-core-dev:amd64. 163s Preparing to unpack .../414-librust-time-core-dev_0.1.2-1_amd64.deb ... 163s Unpacking librust-time-core-dev:amd64 (0.1.2-1) ... 163s Selecting previously unselected package librust-time-macros-dev:amd64. 163s Preparing to unpack .../415-librust-time-macros-dev_0.2.16-1_amd64.deb ... 163s Unpacking librust-time-macros-dev:amd64 (0.2.16-1) ... 163s Selecting previously unselected package librust-time-dev:amd64. 163s Preparing to unpack .../416-librust-time-dev_0.3.31-2_amd64.deb ... 163s Unpacking librust-time-dev:amd64 (0.3.31-2) ... 163s Selecting previously unselected package librust-postgres-types-dev:amd64. 163s Preparing to unpack .../417-librust-postgres-types-dev_0.2.6-2_amd64.deb ... 163s Unpacking librust-postgres-types-dev:amd64 (0.2.6-2) ... 163s Selecting previously unselected package librust-rand-xorshift-dev:amd64. 163s Preparing to unpack .../418-librust-rand-xorshift-dev_0.3.0-2_amd64.deb ... 163s Unpacking librust-rand-xorshift-dev:amd64 (0.3.0-2) ... 163s Selecting previously unselected package librust-quick-error-dev:amd64. 163s Preparing to unpack .../419-librust-quick-error-dev_2.0.1-1_amd64.deb ... 163s Unpacking librust-quick-error-dev:amd64 (2.0.1-1) ... 163s Selecting previously unselected package librust-tempfile-dev:amd64. 163s Preparing to unpack .../420-librust-tempfile-dev_3.10.1-1_amd64.deb ... 163s Unpacking librust-tempfile-dev:amd64 (3.10.1-1) ... 163s Selecting previously unselected package librust-rusty-fork-dev:amd64. 163s Preparing to unpack .../421-librust-rusty-fork-dev_0.3.0-1_amd64.deb ... 163s Unpacking librust-rusty-fork-dev:amd64 (0.3.0-1) ... 163s Selecting previously unselected package librust-wait-timeout-dev:amd64. 163s Preparing to unpack .../422-librust-wait-timeout-dev_0.2.0-1_amd64.deb ... 163s Unpacking librust-wait-timeout-dev:amd64 (0.2.0-1) ... 163s Selecting previously unselected package librust-rusty-fork+wait-timeout-dev:amd64. 163s Preparing to unpack .../423-librust-rusty-fork+wait-timeout-dev_0.3.0-1_amd64.deb ... 163s Unpacking librust-rusty-fork+wait-timeout-dev:amd64 (0.3.0-1) ... 163s Selecting previously unselected package librust-unarray-dev:amd64. 163s Preparing to unpack .../424-librust-unarray-dev_0.1.4-1_amd64.deb ... 163s Unpacking librust-unarray-dev:amd64 (0.1.4-1) ... 163s Selecting previously unselected package librust-proptest-dev:amd64. 163s Preparing to unpack .../425-librust-proptest-dev_1.5.0-2_amd64.deb ... 163s Unpacking librust-proptest-dev:amd64 (1.5.0-2) ... 163s Selecting previously unselected package llvm-19-runtime. 163s Preparing to unpack .../426-llvm-19-runtime_1%3a19.1.2-1ubuntu1_amd64.deb ... 163s Unpacking llvm-19-runtime (1:19.1.2-1ubuntu1) ... 163s Selecting previously unselected package llvm-runtime:amd64. 163s Preparing to unpack .../427-llvm-runtime_1%3a19.0-60~exp1_amd64.deb ... 163s Unpacking llvm-runtime:amd64 (1:19.0-60~exp1) ... 163s Selecting previously unselected package llvm-19-linker-tools. 163s Preparing to unpack .../428-llvm-19-linker-tools_1%3a19.1.2-1ubuntu1_amd64.deb ... 163s Unpacking llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 163s Selecting previously unselected package libpfm4:amd64. 163s Preparing to unpack .../429-libpfm4_4.13.0+git83-g91970fe-1_amd64.deb ... 163s Unpacking libpfm4:amd64 (4.13.0+git83-g91970fe-1) ... 163s Selecting previously unselected package llvm-19. 163s Preparing to unpack .../430-llvm-19_1%3a19.1.2-1ubuntu1_amd64.deb ... 163s Unpacking llvm-19 (1:19.1.2-1ubuntu1) ... 165s Selecting previously unselected package llvm. 165s Preparing to unpack .../431-llvm_1%3a19.0-60~exp1_amd64.deb ... 165s Unpacking llvm (1:19.0-60~exp1) ... 165s Selecting previously unselected package binutils-mingw-w64-x86-64. 165s Preparing to unpack .../432-binutils-mingw-w64-x86-64_2.43.1-4ubuntu1+12_amd64.deb ... 165s Unpacking binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 165s Selecting previously unselected package binutils-mingw-w64-i686. 165s Preparing to unpack .../433-binutils-mingw-w64-i686_2.43.1-4ubuntu1+12_amd64.deb ... 165s Unpacking binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 165s Selecting previously unselected package librust-python3-dll-a-dev:amd64. 165s Preparing to unpack .../434-librust-python3-dll-a-dev_0.2.10-1_amd64.deb ... 165s Unpacking librust-python3-dll-a-dev:amd64 (0.2.10-1) ... 165s Selecting previously unselected package librust-target-lexicon-dev:amd64. 165s Preparing to unpack .../435-librust-target-lexicon-dev_0.12.14-1_amd64.deb ... 165s Unpacking librust-target-lexicon-dev:amd64 (0.12.14-1) ... 165s Selecting previously unselected package librust-pyo3-build-config-dev:amd64. 165s Preparing to unpack .../436-librust-pyo3-build-config-dev_0.22.5-1_amd64.deb ... 165s Unpacking librust-pyo3-build-config-dev:amd64 (0.22.5-1) ... 165s Selecting previously unselected package python3.12-dev. 165s Preparing to unpack .../437-python3.12-dev_3.12.7-2_amd64.deb ... 165s Unpacking python3.12-dev (3.12.7-2) ... 165s Selecting previously unselected package librust-pyo3-ffi-dev:amd64. 165s Preparing to unpack .../438-librust-pyo3-ffi-dev_0.22.5-1_amd64.deb ... 165s Unpacking librust-pyo3-ffi-dev:amd64 (0.22.5-1) ... 165s Selecting previously unselected package librust-pyo3-macros-backend-dev:amd64. 165s Preparing to unpack .../439-librust-pyo3-macros-backend-dev_0.22.5-1_amd64.deb ... 165s Unpacking librust-pyo3-macros-backend-dev:amd64 (0.22.5-1) ... 165s Selecting previously unselected package librust-pyo3-macros-dev:amd64. 165s Preparing to unpack .../440-librust-pyo3-macros-dev_0.22.5-1_amd64.deb ... 165s Unpacking librust-pyo3-macros-dev:amd64 (0.22.5-1) ... 165s Selecting previously unselected package librust-rust-decimal-dev:amd64. 165s Preparing to unpack .../441-librust-rust-decimal-dev_1.36.0-1_amd64.deb ... 165s Unpacking librust-rust-decimal-dev:amd64 (1.36.0-1) ... 165s Selecting previously unselected package librust-unindent-dev:amd64. 165s Preparing to unpack .../442-librust-unindent-dev_0.2.3-1_amd64.deb ... 165s Unpacking librust-unindent-dev:amd64 (0.2.3-1) ... 165s Selecting previously unselected package librust-pyo3-dev:amd64. 165s Preparing to unpack .../443-librust-pyo3-dev_0.22.5-1_amd64.deb ... 165s Unpacking librust-pyo3-dev:amd64 (0.22.5-1) ... 165s Selecting previously unselected package librust-rustc-hash-dev:amd64. 165s Preparing to unpack .../444-librust-rustc-hash-dev_1.1.0-1_amd64.deb ... 165s Unpacking librust-rustc-hash-dev:amd64 (1.1.0-1) ... 165s Selecting previously unselected package pybuild-plugin-autopkgtest. 165s Preparing to unpack .../445-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 165s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 165s Selecting previously unselected package python3-packaging. 165s Preparing to unpack .../446-python3-packaging_24.1-1_all.deb ... 165s Unpacking python3-packaging (24.1-1) ... 165s Selecting previously unselected package python3-pyproject-hooks. 165s Preparing to unpack .../447-python3-pyproject-hooks_1.2.0-1_all.deb ... 165s Unpacking python3-pyproject-hooks (1.2.0-1) ... 165s Selecting previously unselected package python3-toml. 165s Preparing to unpack .../448-python3-toml_0.10.2-1_all.deb ... 165s Unpacking python3-toml (0.10.2-1) ... 165s Selecting previously unselected package python3-wheel. 165s Preparing to unpack .../449-python3-wheel_0.44.0-1_all.deb ... 165s Unpacking python3-wheel (0.44.0-1) ... 165s Selecting previously unselected package python3-build. 165s Preparing to unpack .../450-python3-build_1.2.2-1_all.deb ... 165s Unpacking python3-build (1.2.2-1) ... 165s Selecting previously unselected package python3-installer. 165s Preparing to unpack .../451-python3-installer_0.7.0+dfsg1-3_all.deb ... 165s Unpacking python3-installer (0.7.0+dfsg1-3) ... 165s Selecting previously unselected package pybuild-plugin-pyproject. 165s Preparing to unpack .../452-pybuild-plugin-pyproject_6.20241024_all.deb ... 165s Unpacking pybuild-plugin-pyproject (6.20241024) ... 165s Selecting previously unselected package python3-all. 165s Preparing to unpack .../453-python3-all_3.12.6-0ubuntu1_amd64.deb ... 165s Unpacking python3-all (3.12.6-0ubuntu1) ... 165s Selecting previously unselected package python3-six. 165s Preparing to unpack .../454-python3-six_1.16.0-7_all.deb ... 165s Unpacking python3-six (1.16.0-7) ... 165s Selecting previously unselected package python3-dateutil. 165s Preparing to unpack .../455-python3-dateutil_2.9.0-2_all.deb ... 165s Unpacking python3-dateutil (2.9.0-2) ... 165s Selecting previously unselected package python3-sortedcontainers. 165s Preparing to unpack .../456-python3-sortedcontainers_2.4.0-2_all.deb ... 165s Unpacking python3-sortedcontainers (2.4.0-2) ... 165s Selecting previously unselected package python3-hypothesis. 165s Preparing to unpack .../457-python3-hypothesis_6.105.1-1_all.deb ... 165s Unpacking python3-hypothesis (6.105.1-1) ... 165s Selecting previously unselected package python3-iniconfig. 165s Preparing to unpack .../458-python3-iniconfig_1.1.1-2_all.deb ... 165s Unpacking python3-iniconfig (1.1.1-2) ... 165s Selecting previously unselected package python3-pluggy. 165s Preparing to unpack .../459-python3-pluggy_1.5.0-1_all.deb ... 165s Unpacking python3-pluggy (1.5.0-1) ... 165s Selecting previously unselected package python3-pytest. 165s Preparing to unpack .../460-python3-pytest_8.3.2-1_all.deb ... 165s Unpacking python3-pytest (8.3.2-1) ... 165s Selecting previously unselected package python3-regex. 165s Preparing to unpack .../461-python3-regex_0.1.20240724-1_amd64.deb ... 165s Unpacking python3-regex (0.1.20240724-1) ... 165s Selecting previously unselected package python3-semantic-version. 165s Preparing to unpack .../462-python3-semantic-version_2.10.0-2_all.deb ... 165s Unpacking python3-semantic-version (2.10.0-2) ... 165s Selecting previously unselected package rustc. 165s Preparing to unpack .../463-rustc_1.80.1ubuntu2_amd64.deb ... 165s Unpacking rustc (1.80.1ubuntu2) ... 165s Selecting previously unselected package cargo. 165s Preparing to unpack .../464-cargo_1.80.1ubuntu2_amd64.deb ... 165s Unpacking cargo (1.80.1ubuntu2) ... 165s Selecting previously unselected package python3-setuptools-rust. 165s Preparing to unpack .../465-python3-setuptools-rust_1.9.0+dfsg-2_all.deb ... 165s Unpacking python3-setuptools-rust (1.9.0+dfsg-2) ... 165s Selecting previously unselected package python3-tiktoken. 165s Preparing to unpack .../466-python3-tiktoken_0.8.0-1_amd64.deb ... 165s Unpacking python3-tiktoken (0.8.0-1) ... 165s Selecting previously unselected package autopkgtest-satdep. 165s Preparing to unpack .../467-1-autopkgtest-satdep.deb ... 165s Unpacking autopkgtest-satdep (0) ... 165s Setting up dh-python (6.20241024) ... 165s Setting up librust-ciborium-io-dev:amd64 (0.2.2-1) ... 165s Setting up librust-crossbeam-utils-dev:amd64 (0.8.19-1) ... 165s Setting up librust-parking-dev:amd64 (2.2.0-1) ... 165s Setting up librust-ppv-lite86-dev:amd64 (0.2.16-1) ... 165s Setting up python3-iniconfig (1.1.1-2) ... 166s Setting up libsharpyuv0:amd64 (1.4.0-0.1) ... 166s Setting up librust-pin-utils-dev:amd64 (0.1.0-1) ... 166s Setting up librust-fnv-dev:amd64 (1.0.7-1) ... 166s Setting up librust-libc-dev:amd64 (0.2.155-1) ... 166s Setting up librust-unindent-dev:amd64 (0.2.3-1) ... 166s Setting up librust-quick-error-dev:amd64 (2.0.1-1) ... 166s Setting up librust-is-terminal-dev:amd64 (0.4.13-1) ... 166s Setting up librust-traitobject-dev:amd64 (0.1.0-1) ... 166s Setting up librust-either-dev:amd64 (1.13.0-1) ... 166s Setting up binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 166s Setting up librust-adler-dev:amd64 (1.0.2-2) ... 166s Setting up librust-version-check-dev:amd64 (0.9.5-1) ... 166s Setting up librust-base64-dev:amd64 (0.21.7-1) ... 166s Setting up librust-indoc-dev:amd64 (2.0.5-1) ... 166s Setting up librust-anstyle-dev:amd64 (1.0.8-1) ... 166s Setting up librust-winapi-i686-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 166s Setting up librust-futures-task-dev:amd64 (0.3.30-1) ... 166s Setting up librust-rustc-hash-dev:amd64 (1.1.0-1) ... 166s Setting up librust-wasm-bindgen-shared-dev:amd64 (0.2.87-1) ... 166s Setting up libarchive-zip-perl (1.68-1) ... 166s Setting up librust-colorchoice-dev:amd64 (1.0.0-1) ... 166s Setting up librust-fastrand-dev:amd64 (2.1.1-1) ... 166s Setting up librust-socket2-dev:amd64 (0.5.7-1) ... 166s Setting up libdebhelper-perl (13.20ubuntu1) ... 166s Setting up librust-unsafe-any-dev:amd64 (0.4.2-2) ... 166s Setting up librust-tinyvec-macros-dev:amd64 (0.1.0-1) ... 166s Setting up librust-num-cpus-dev:amd64 (1.16.0-1) ... 166s Setting up librust-libm-dev:amd64 (0.2.8-1) ... 166s Setting up librust-strsim-dev:amd64 (0.11.1-1) ... 166s Setting up libwebpdecoder3:amd64 (1.4.0-0.1) ... 166s Setting up m4 (1.4.19-4build1) ... 166s Setting up librust-rustc-demangle-dev:amd64 (0.1.21-1) ... 166s Setting up python3-all (3.12.6-0ubuntu1) ... 166s Setting up librust-cpufeatures-dev:amd64 (0.2.11-1) ... 166s Setting up librust-const-cstr-dev:amd64 (0.3.0-1) ... 166s Setting up librust-fallible-iterator-dev:amd64 (0.3.0-2) ... 166s Setting up librust-ryu-dev:amd64 (1.0.15-1) ... 166s Setting up python3-sortedcontainers (2.4.0-2) ... 166s Setting up librust-humantime-dev:amd64 (2.1.0-1) ... 166s Setting up librust-anstyle-query-dev:amd64 (1.0.0-1) ... 166s Setting up librust-cast-dev:amd64 (0.3.0-1) ... 166s Setting up libgomp1:amd64 (14.2.0-7ubuntu1) ... 166s Setting up librust-subtle-dev:amd64 (2.6.1-1) ... 166s Setting up librust-simdutf8-dev:amd64 (0.1.4-4) ... 166s Setting up librust-atomic-waker-dev:amd64 (1.1.2-1) ... 166s Setting up librust-miniz-oxide-dev:amd64 (0.7.1-1) ... 166s Setting up librust-pin-project-lite-dev:amd64 (0.2.13-1) ... 166s Setting up python3-wheel (0.44.0-1) ... 166s Setting up librust-bytes-dev:amd64 (1.5.0-1) ... 166s Setting up librust-unicode-segmentation-dev:amd64 (1.11.0-1) ... 166s Setting up librust-typemap-dev:amd64 (0.3.3-2) ... 166s Setting up python3-six (1.16.0-7) ... 166s Setting up librust-compiler-builtins-dev:amd64 (0.1.101-1) ... 166s Setting up librust-weezl-dev:amd64 (0.1.5-1) ... 166s Setting up librust-utf8parse-dev:amd64 (0.2.1-1) ... 166s Setting up librust-signal-hook-registry-dev:amd64 (1.4.0-1) ... 166s Setting up librust-crossbeam-epoch-dev:amd64 (0.9.18-1) ... 166s Setting up autotools-dev (20220109.1) ... 166s Setting up librust-tap-dev:amd64 (1.0.1-1) ... 166s Setting up librust-errno-dev:amd64 (0.3.8-1) ... 166s Setting up python3-packaging (24.1-1) ... 166s Setting up librust-array-init-dev:amd64 (2.0.1-1) ... 166s Setting up libpkgconf3:amd64 (1.8.1-4) ... 166s Setting up libpfm4:amd64 (4.13.0+git83-g91970fe-1) ... 166s Setting up librust-oorandom-dev:amd64 (11.1.3-1) ... 166s Setting up libexpat1-dev:amd64 (2.6.2-2) ... 166s Setting up python3-pyproject-hooks (1.2.0-1) ... 166s Setting up librust-rustc-std-workspace-core-dev:amd64 (1.0.0-1) ... 166s Setting up librust-funty-dev:amd64 (2.0.0-1) ... 166s Setting up librust-futures-io-dev:amd64 (0.3.30-2) ... 166s Setting up librust-typenum-dev:amd64 (1.17.0-2) ... 166s Setting up uuid-dev:amd64 (2.40.2-1ubuntu1) ... 166s Setting up librust-core-maths-dev:amd64 (0.1.0-2) ... 166s Setting up librust-stable-deref-trait-dev:amd64 (1.2.0-1) ... 166s Setting up librust-critical-section-dev:amd64 (1.1.3-1) ... 166s Setting up libquadmath0:amd64 (14.2.0-7ubuntu1) ... 166s Setting up librust-scopeguard-dev:amd64 (1.2.0-1) ... 166s Setting up librust-iana-time-zone-dev:amd64 (0.1.60-1) ... 166s Setting up fonts-dejavu-mono (2.37-8) ... 166s Setting up libmpc3:amd64 (1.3.1-1build2) ... 166s Setting up librust-rand-core-dev:amd64 (0.6.4-2) ... 166s Setting up python3-semantic-version (2.10.0-2) ... 166s Setting up librust-jobserver-dev:amd64 (0.1.32-1) ... 166s Setting up autopoint (0.22.5-2) ... 166s Setting up libjsoncpp25:amd64 (1.9.5-6build1) ... 166s Setting up fonts-dejavu-core (2.37-8) ... 166s Setting up librust-seahash-dev:amd64 (4.1.0-1) ... 166s Setting up pkgconf-bin (1.8.1-4) ... 166s Setting up librust-ab-glyph-rasterizer-dev:amd64 (0.1.7-1) ... 166s Setting up binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 166s Setting up librust-time-core-dev:amd64 (0.1.2-1) ... 166s Setting up python3-regex (0.1.20240724-1) ... 167s Setting up librust-crunchy-dev:amd64 (0.2.2-1) ... 167s Setting up python3-toml (0.10.2-1) ... 167s Setting up librust-unicase-dev:amd64 (2.7.0-1) ... 167s Setting up librust-unicode-width-dev:amd64 (0.1.13-3) ... 167s Setting up python3-installer (0.7.0+dfsg1-3) ... 167s Setting up autoconf (2.72-3) ... 167s Setting up python3-pluggy (1.5.0-1) ... 167s Setting up libwebp7:amd64 (1.4.0-0.1) ... 167s Setting up libubsan1:amd64 (14.2.0-7ubuntu1) ... 167s Setting up zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 167s Setting up librust-unicode-ident-dev:amd64 (1.0.13-1) ... 167s Setting up librust-equivalent-dev:amd64 (1.0.1-1) ... 167s Setting up dwz (0.15-1build6) ... 167s Setting up librust-bitflags-1-dev:amd64 (1.3.2-5) ... 167s Setting up librust-uncased-dev:amd64 (0.9.6-2) ... 167s Setting up librust-slog-dev:amd64 (2.7.0-1) ... 167s Setting up python3-tiktoken (0.8.0-1) ... 167s Setting up librust-pure-rust-locales-dev:amd64 (0.8.1-1) ... 167s Setting up libhwasan0:amd64 (14.2.0-7ubuntu1) ... 167s Setting up librhash0:amd64 (1.4.3-3build1) ... 167s Setting up libasan8:amd64 (14.2.0-7ubuntu1) ... 167s Setting up librust-wait-timeout-dev:amd64 (0.2.0-1) ... 167s Setting up librust-ttf-parser-dev:amd64 (0.24.1-1) ... 167s Setting up librust-cfg-if-dev:amd64 (1.0.0-1) ... 167s Setting up debugedit (1:5.1-1) ... 167s Setting up librust-color-quant-dev:amd64 (1.1.0-1) ... 167s Setting up python3-dateutil (2.9.0-2) ... 167s Setting up librust-blobby-dev:amd64 (0.3.1-1) ... 167s Setting up cmake-data (3.30.3-1) ... 167s Setting up llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 167s Setting up librust-byteorder-dev:amd64 (1.5.0-1) ... 167s Setting up libtsan2:amd64 (14.2.0-7ubuntu1) ... 167s Setting up librust-static-assertions-dev:amd64 (1.1.0-1) ... 167s Setting up librust-compiler-builtins+core-dev:amd64 (0.1.101-1) ... 167s Setting up librust-float-ord-dev:amd64 (0.3.2-1) ... 167s Setting up librust-autocfg-dev:amd64 (1.1.0-1) ... 167s Setting up libisl23:amd64 (0.27-1) ... 167s Setting up librust-time-macros-dev:amd64 (0.2.16-1) ... 167s Setting up llvm-19-runtime (1:19.1.2-1ubuntu1) ... 167s Setting up librust-futures-sink-dev:amd64 (0.3.31-1) ... 167s Setting up python3-build (1.2.2-1) ... 167s Setting up libsharpyuv-dev:amd64 (1.4.0-0.1) ... 167s Setting up librust-cfg-if-0.1-dev:amd64 (0.1.10-2) ... 167s Setting up librust-tinyvec-dev:amd64 (1.6.0-2) ... 167s Setting up libwebpmux3:amd64 (1.4.0-0.1) ... 167s Setting up librust-plotters-backend-dev:amd64 (0.3.5-1) ... 167s Setting up librust-shlex-dev:amd64 (1.3.0-1) ... 167s Setting up librust-indenter-dev:amd64 (0.3.3-1) ... 167s Setting up librust-cpp-demangle-dev:amd64 (0.4.0-1) ... 167s Setting up librust-winapi-x86-64-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 167s Setting up libcc1-0:amd64 (14.2.0-7ubuntu1) ... 167s Setting up libbrotli-dev:amd64 (1.1.0-2build2) ... 167s Setting up liblsan0:amd64 (14.2.0-7ubuntu1) ... 167s Setting up libitm1:amd64 (14.2.0-7ubuntu1) ... 167s Setting up librust-clap-lex-dev:amd64 (0.7.2-2) ... 167s Setting up libhttp-parser2.9:amd64 (2.9.4-6build1) ... 167s Setting up librust-unarray-dev:amd64 (0.1.4-1) ... 167s Setting up libstd-rust-1.80:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 167s Setting up librust-itertools-dev:amd64 (0.10.5-1) ... 167s Setting up librust-heck-dev:amd64 (0.4.1-1) ... 167s Setting up libbz2-dev:amd64 (1.0.8-6) ... 167s Setting up automake (1:1.16.5-1.3ubuntu1) ... 167s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 167s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 167s Setting up librust-owned-ttf-parser-dev:amd64 (0.24.0-1) ... 167s Setting up librust-num-threads-dev:amd64 (0.1.7-1) ... 167s Setting up librust-crossbeam-epoch+std-dev:amd64 (0.9.18-1) ... 167s Setting up gettext (0.22.5-2) ... 167s Setting up librust-gif-dev:amd64 (0.11.3-1) ... 167s Setting up librust-crossbeam-deque-dev:amd64 (0.8.5-1) ... 167s Setting up librust-tiny-keccak-dev:amd64 (2.0.2-1) ... 167s Setting up librust-linux-raw-sys-dev:amd64 (0.4.14-1) ... 167s Setting up pybuild-plugin-pyproject (6.20241024) ... 167s Setting up fontconfig-config (2.15.0-1.1ubuntu2) ... 167s Setting up librust-getrandom-dev:amd64 (0.2.12-1) ... 167s Setting up python3-pytest (8.3.2-1) ... 168s Setting up librust-libloading-dev:amd64 (0.8.5-1) ... 168s Setting up librust-memmap2-dev:amd64 (0.9.3-1) ... 168s Setting up libwebpdemux2:amd64 (1.4.0-0.1) ... 168s Setting up python3-hypothesis (6.105.1-1) ... 168s Setting up librust-ab-glyph-rasterizer+libm-dev:amd64 (0.1.7-1) ... 168s Setting up libpng-dev:amd64 (1.6.44-1) ... 168s Setting up librust-tinyvec+tinyvec-macros-dev:amd64 (1.6.0-2) ... 168s Setting up librust-owning-ref-dev:amd64 (0.4.1-1) ... 168s Setting up librust-memoffset-dev:amd64 (0.8.0-1) ... 168s Setting up libpython3.12-dev:amd64 (3.12.7-2) ... 168s Setting up librust-proc-macro2-dev:amd64 (1.0.86-1) ... 168s Setting up librust-compiler-builtins+rustc-dep-of-std-dev:amd64 (0.1.101-1) ... 168s Setting up librust-rayon-core-dev:amd64 (1.12.1-1) ... 168s Setting up librust-winapi-dev:amd64 (0.3.9-1) ... 168s Setting up pkgconf:amd64 (1.8.1-4) ... 168s Setting up librust-ab-glyph-dev:amd64 (0.2.28-1) ... 168s Setting up libstd-rust-1.80-dev:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 168s Setting up libfreetype-dev:amd64 (2.13.3+dfsg-1) ... 168s Setting up intltool-debian (0.35.0+20060710.6) ... 168s Setting up librust-rand-core+getrandom-dev:amd64 (0.6.4-2) ... 168s Setting up librust-rand-xorshift-dev:amd64 (0.3.0-2) ... 168s Setting up libwebp-dev:amd64 (1.4.0-0.1) ... 168s Setting up librust-anes-dev:amd64 (0.1.6-1) ... 168s Setting up llvm-runtime:amd64 (1:19.0-60~exp1) ... 168s Setting up librust-cc-dev:amd64 (1.1.14-1) ... 168s Setting up python3.12-dev (3.12.7-2) ... 168s Setting up pkg-config:amd64 (1.8.1-4) ... 168s Setting up cpp-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 168s Setting up cpp-14 (14.2.0-7ubuntu1) ... 168s Setting up dh-strip-nondeterminism (1.14.0-1) ... 168s Setting up librust-crc32fast-dev:amd64 (1.4.2-1) ... 168s Setting up librust-num-traits-dev:amd64 (0.2.19-2) ... 168s Setting up librust-winapi-util-dev:amd64 (0.1.6-1) ... 168s Setting up cmake (3.30.3-1) ... 168s Setting up libgit2-1.7:amd64 (1.7.2+ds-1ubuntu3) ... 168s Setting up llvm-19 (1:19.1.2-1ubuntu1) ... 168s Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ... 168s Setting up librust-sha1-asm-dev:amd64 (0.5.1-2) ... 168s Setting up libgcc-14-dev:amd64 (14.2.0-7ubuntu1) ... 168s Setting up librust-same-file-dev:amd64 (1.0.6-1) ... 168s Setting up librust-rayon-dev:amd64 (1.10.0-1) ... 168s Setting up librust-termcolor-dev:amd64 (1.4.1-1) ... 168s Setting up librust-pkg-config-dev:amd64 (0.3.27-1) ... 168s Setting up libstdc++-14-dev:amd64 (14.2.0-7ubuntu1) ... 168s Setting up librust-jpeg-decoder-dev:amd64 (0.3.0-1) ... 168s Setting up librust-dirs-sys-next-dev:amd64 (0.1.1-1) ... 168s Setting up cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 168s Setting up librust-cmake-dev:amd64 (0.1.45-1) ... 168s Setting up librust-num-integer-dev:amd64 (0.1.46-1) ... 168s Setting up librust-dirs-next-dev:amd64 (2.0.0-1) ... 168s Setting up libpython3-dev:amd64 (3.12.6-0ubuntu1) ... 168s Setting up librust-dlib-dev:amd64 (0.5.2-2) ... 168s Setting up libfontconfig-dev:amd64 (2.15.0-1.1ubuntu2) ... 168s Setting up librust-sha2-asm-dev:amd64 (0.6.2-2) ... 168s Setting up librust-libwebp-sys-dev:amd64 (0.9.5-1build1) ... 168s Setting up po-debconf (1.0.21+nmu1) ... 168s Setting up librust-quote-dev:amd64 (1.0.37-1) ... 168s Setting up librust-freetype-sys-dev:amd64 (0.13.1-1) ... 168s Setting up librust-libz-sys-dev:amd64 (1.1.20-1) ... 168s Setting up librust-syn-dev:amd64 (2.0.77-1) ... 168s Setting up librust-rand-core+std-dev:amd64 (0.6.4-2) ... 168s Setting up librust-powerfmt-macros-dev:amd64 (0.1.0-1) ... 168s Setting up librust-powerfmt-dev:amd64 (0.2.0-1) ... 168s Setting up librust-sval-derive-dev:amd64 (2.6.1-2) ... 168s Setting up libpython3-all-dev:amd64 (3.12.6-0ubuntu1) ... 168s Setting up librust-md5-asm-dev:amd64 (0.5.0-2) ... 168s Setting up librust-freetype-dev:amd64 (0.7.0-4) ... 168s Setting up librust-zeroize-derive-dev:amd64 (1.4.2-1) ... 168s Setting up llvm (1:19.0-60~exp1) ... 168s Setting up librust-postgres-derive-dev:amd64 (0.4.5-1) ... 168s Setting up librust-syn-1-dev:amd64 (1.0.109-2) ... 168s Setting up librust-clap-derive-dev:amd64 (4.5.13-2) ... 168s Setting up librust-bytecheck-derive-dev:amd64 (0.6.12-1) ... 168s Setting up librust-no-panic-dev:amd64 (0.1.13-1) ... 168s Setting up cpp (4:14.1.0-2ubuntu1) ... 168s Setting up librust-serde-derive-dev:amd64 (1.0.210-1) ... 168s Setting up librust-walkdir-dev:amd64 (2.5.0-1) ... 168s Setting up librust-zerocopy-derive-dev:amd64 (0.7.32-2) ... 168s Setting up gcc-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 168s Setting up librust-valuable-derive-dev:amd64 (0.1.0-1) ... 168s Setting up librust-ghost-dev:amd64 (0.1.5-1) ... 168s Setting up librust-serde-dev:amd64 (1.0.210-2) ... 168s Setting up librust-bytemuck-derive-dev:amd64 (1.5.0-2) ... 168s Setting up librust-derive-arbitrary-dev:amd64 (1.3.2-1) ... 168s Setting up librust-allocator-api2-dev:amd64 (0.2.16-1) ... 168s Setting up librust-async-attributes-dev (1.1.2-6) ... 168s Setting up librust-rand-chacha-dev:amd64 (0.3.1-2) ... 168s Setting up librust-futures-macro-dev:amd64 (0.3.30-1) ... 168s Setting up librust-ctor-dev:amd64 (0.1.26-1) ... 168s Setting up librust-unicode-bidi-dev:amd64 (0.3.13-1) ... 168s Setting up librust-tracing-attributes-dev:amd64 (0.1.27-1) ... 168s Setting up librust-ptr-meta-derive-dev:amd64 (0.1.4-1) ... 168s Setting up gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 168s Setting up librust-serde-fmt-dev (1.0.3-3) ... 168s Setting up librust-portable-atomic-dev:amd64 (1.4.3-2) ... 168s Setting up librust-tokio-macros-dev:amd64 (2.4.0-2) ... 168s Setting up librust-flate2-dev:amd64 (1.0.27-2) ... 168s Setting up librust-lock-api-dev:amd64 (0.4.12-1) ... 168s Setting up librust-ptr-meta-dev:amd64 (0.1.4-1) ... 168s Setting up librust-inventory-dev:amd64 (0.3.2-1) ... 168s Setting up librust-sval-dev:amd64 (2.6.1-2) ... 168s Setting up librust-itoa-dev:amd64 (1.0.9-1) ... 168s Setting up gcc-14 (14.2.0-7ubuntu1) ... 168s Setting up librust-bumpalo-dev:amd64 (3.16.0-1) ... 168s Setting up librust-python3-dll-a-dev:amd64 (0.2.10-1) ... 168s Setting up librust-siphasher-dev:amd64 (0.3.10-1) ... 168s Setting up librust-rand-core+serde-dev:amd64 (0.6.4-2) ... 168s Setting up librust-sval-ref-dev:amd64 (2.6.1-1) ... 168s Setting up librust-rkyv-derive-dev:amd64 (0.7.44-1) ... 168s Setting up librust-zerocopy-dev:amd64 (0.7.32-1) ... 168s Setting up librust-semver-dev:amd64 (1.0.23-1) ... 168s Setting up librust-bytemuck-dev:amd64 (1.14.0-1) ... 168s Setting up librust-bit-vec-dev:amd64 (0.6.3-1) ... 168s Setting up librust-zeroize-dev:amd64 (1.8.1-1) ... 168s Setting up g++-14-x86-64-linux-gnu (14.2.0-7ubuntu1) ... 168s Setting up librust-slab-dev:amd64 (0.4.9-1) ... 168s Setting up librust-arbitrary-dev:amd64 (1.3.2-1) ... 168s Setting up librust-valuable-dev:amd64 (0.1.0-4) ... 168s Setting up librust-target-lexicon-dev:amd64 (0.12.14-1) ... 168s Setting up librust-serde-test-dev:amd64 (1.0.171-1) ... 168s Setting up librust-bit-set-dev:amd64 (0.5.2-1) ... 168s Setting up g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 168s Setting up librust-concurrent-queue-dev:amd64 (2.5.0-4) ... 168s Setting up g++-14 (14.2.0-7ubuntu1) ... 168s Setting up librust-erased-serde-dev:amd64 (0.3.31-1) ... 168s Setting up librust-radium-dev:amd64 (1.1.0-1) ... 168s Setting up librust-bit-set+std-dev:amd64 (0.5.2-1) ... 168s Setting up librust-phf-shared-dev:amd64 (0.11.2-1) ... 168s Setting up librust-tiff-dev:amd64 (0.9.0-1) ... 168s Setting up librust-smol-str-dev:amd64 (0.2.0-1) ... 168s Setting up librust-atomic-dev:amd64 (0.6.0-1) ... 168s Setting up librust-generic-array-dev:amd64 (0.14.7-1) ... 168s Setting up librust-half-dev:amd64 (1.8.2-4) ... 168s Setting up librust-phf-dev:amd64 (0.11.2-1) ... 168s Setting up librust-spin-dev:amd64 (0.9.8-4) ... 168s Setting up librust-sval-dynamic-dev:amd64 (2.6.1-1) ... 168s Setting up librust-qoi-dev:amd64 (0.4.1-2) ... 168s Setting up librust-async-task-dev (4.7.1-3) ... 168s Setting up librust-crypto-common-dev:amd64 (0.1.6-1) ... 168s Setting up librust-ciborium-ll-dev:amd64 (0.2.2-1) ... 168s Setting up librust-futures-core-dev:amd64 (0.3.30-1) ... 168s Setting up librust-lazy-static-dev:amd64 (1.4.0-2) ... 168s Setting up libtool (2.4.7-7build1) ... 168s Setting up librust-sval-buffer-dev:amd64 (2.6.1-1) ... 168s Setting up librust-arrayvec-dev:amd64 (0.7.4-2) ... 168s Setting up librust-png-dev:amd64 (0.17.7-3) ... 168s Setting up librust-rustc-version-dev:amd64 (0.4.0-1) ... 168s Setting up librust-event-listener-dev (5.3.1-8) ... 168s Setting up librust-smallvec-dev:amd64 (1.13.2-1) ... 168s Setting up librust-sval-fmt-dev:amd64 (2.6.1-1) ... 168s Setting up librust-const-oid-dev:amd64 (0.9.3-1) ... 168s Setting up gcc (4:14.1.0-2ubuntu1) ... 168s Setting up librust-anstyle-parse-dev:amd64 (0.2.1-1) ... 168s Setting up rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 168s Setting up dh-autoreconf (20) ... 168s Setting up librust-ciborium-dev:amd64 (0.2.2-2) ... 168s Setting up librust-block-buffer-dev:amd64 (0.10.2-2) ... 168s Setting up librust-pathfinder-simd-dev:amd64 (0.5.2-1) ... 168s Setting up librust-unicode-normalization-dev:amd64 (0.1.22-1) ... 168s Setting up librust-anstream-dev:amd64 (0.6.15-1) ... 168s Setting up librust-bitflags-dev:amd64 (2.6.0-1) ... 168s Setting up librust-regex-syntax-dev:amd64 (0.8.2-1) ... 168s Setting up g++ (4:14.1.0-2ubuntu1) ... 168s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 168s Setting up rustc (1.80.1ubuntu2) ... 168s Setting up librust-parking-lot-core-dev:amd64 (0.9.10-1) ... 168s Setting up build-essential (12.10ubuntu1) ... 168s Setting up librust-futures-channel-dev:amd64 (0.3.30-1) ... 168s Setting up cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 168s Setting up librust-once-cell-dev:amd64 (1.19.0-1) ... 168s Setting up librust-pyo3-build-config-dev:amd64 (0.22.5-1) ... 168s Setting up librust-phf-shared+uncased-dev:amd64 (0.11.2-1) ... 168s Setting up librust-digest-dev:amd64 (0.10.7-2) ... 168s Setting up librust-md-5-dev:amd64 (0.10.6-1) ... 168s Setting up librust-sval-serde-dev:amd64 (2.6.1-1) ... 168s Setting up librust-parking-lot-dev:amd64 (0.12.1-2build1) ... 168s Setting up librust-event-listener-strategy-dev:amd64 (0.5.2-3) ... 168s Setting up librust-pyo3-macros-backend-dev:amd64 (0.22.5-1) ... 168s Setting up librust-pyo3-ffi-dev:amd64 (0.22.5-1) ... 168s Setting up librust-const-random-macro-dev:amd64 (0.1.16-2) ... 168s Setting up librust-const-random-dev:amd64 (0.1.17-2) ... 168s Setting up librust-pyo3-macros-dev:amd64 (0.22.5-1) ... 168s Setting up librust-sha1-dev:amd64 (0.10.6-1) ... 168s Setting up debhelper (13.20ubuntu1) ... 168s Setting up librust-ahash-dev (0.8.11-8) ... 168s Setting up librust-async-channel-dev (2.3.1-8) ... 168s Setting up librust-stringprep-dev:amd64 (0.1.2-1) ... 168s Setting up librust-tracing-core-dev:amd64 (0.1.32-1) ... 168s Setting up cargo (1.80.1ubuntu2) ... 168s Setting up librust-async-lock-dev (3.4.0-4) ... 168s Setting up python3-setuptools-rust (1.9.0+dfsg-2) ... 168s Setting up librust-eyre-dev:amd64 (0.6.12-1) ... 168s Setting up librust-yeslogic-fontconfig-sys-dev:amd64 (3.0.1-1) ... 168s Setting up librust-sha2-dev:amd64 (0.10.8-1) ... 168s Setting up librust-hmac-dev:amd64 (0.12.1-1) ... 168s Setting up librust-rustix-dev:amd64 (0.38.32-1) ... 168s Setting up librust-wyz-dev:amd64 (0.5.1-1) ... 168s Setting up librust-bitvec-dev:amd64 (1.0.1-1) ... 168s Setting up librust-phf+uncased-dev:amd64 (0.11.2-1) ... 168s Setting up librust-value-bag-sval2-dev:amd64 (1.9.0-1) ... 168s Setting up librust-tempfile-dev:amd64 (3.10.1-1) ... 168s Setting up librust-eyre+default-dev:amd64 (0.6.12-1) ... 168s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 168s Setting up librust-rusty-fork-dev:amd64 (0.3.0-1) ... 168s Setting up librust-hashbrown-dev:amd64 (0.14.5-5) ... 168s Setting up librust-rusty-fork+wait-timeout-dev:amd64 (0.3.0-1) ... 168s Setting up librust-terminal-size-dev:amd64 (0.3.0-2) ... 168s Setting up librust-indexmap-dev:amd64 (2.2.6-1) ... 168s Setting up librust-gimli-dev:amd64 (0.28.1-2) ... 168s Setting up librust-webp-dev:amd64 (0.2.6-1) ... 168s Setting up librust-memchr-dev:amd64 (2.7.1-1) ... 168s Setting up librust-futures-util-dev:amd64 (0.3.30-2) ... 168s Setting up librust-csv-core-dev:amd64 (0.1.11-1) ... 168s Setting up librust-futures-lite-dev:amd64 (2.3.0-2) ... 168s Setting up librust-csv-dev:amd64 (1.3.0-1) ... 168s Setting up librust-serde-json-dev:amd64 (1.0.128-1) ... 168s Setting up librust-async-executor-dev (1.13.1-1) ... 168s Setting up librust-futures-executor-dev:amd64 (0.3.30-1) ... 168s Setting up librust-value-bag-serde1-dev:amd64 (1.9.0-1) ... 168s Setting up librust-tinytemplate-dev:amd64 (1.2.1-1) ... 168s Setting up librust-futures-dev:amd64 (0.3.30-2) ... 168s Setting up librust-value-bag-dev:amd64 (1.9.0-1) ... 168s Setting up librust-log-dev:amd64 (0.4.22-1) ... 168s Setting up librust-kv-log-macro-dev (1.0.8-4) ... 168s Setting up librust-pathfinder-geometry-dev:amd64 (0.5.1-1) ... 168s Setting up librust-tracing-dev:amd64 (0.1.40-1) ... 168s Setting up librust-polling-dev:amd64 (3.4.0-1) ... 168s Setting up librust-aho-corasick-dev:amd64 (1.1.3-1) ... 168s Setting up librust-font-kit-dev:amd64 (0.11.0-2) ... 168s Setting up librust-async-io-dev:amd64 (2.3.3-4) ... 168s Setting up librust-blocking-dev (1.6.1-5) ... 168s Setting up librust-async-net-dev (2.0.0-4) ... 168s Setting up librust-rand-dev:amd64 (0.8.5-1) ... 168s Setting up librust-mio-dev:amd64 (1.0.2-2) ... 168s Setting up librust-wasm-bindgen-backend-dev:amd64 (0.2.87-1) ... 168s Setting up librust-twox-hash-dev:amd64 (1.6.3-1) ... 168s Setting up librust-proptest-dev:amd64 (1.5.0-2) ... 168s Setting up librust-wasm-bindgen-macro-support-dev:amd64 (0.2.87-1) ... 168s Setting up librust-regex-automata-dev:amd64 (0.4.7-1) ... 168s Setting up librust-wasm-bindgen-macro-support+spans-dev:amd64 (0.2.87-1) ... 168s Setting up librust-wasm-bindgen-macro-dev:amd64 (0.2.87-1) ... 168s Setting up librust-uuid-dev:amd64 (1.10.0-1) ... 168s Setting up librust-bstr-dev:amd64 (1.7.0-2build1) ... 168s Setting up librust-async-signal-dev:amd64 (0.2.10-1) ... 168s Setting up librust-bytecheck-dev:amd64 (0.6.12-1) ... 168s Setting up librust-postgres-protocol-dev:amd64 (0.6.6-2) ... 168s Setting up librust-async-fs-dev (2.1.2-4) ... 168s Setting up librust-wasm-bindgen-dev:amd64 (0.2.87-1) ... 168s Setting up librust-convert-case-dev:amd64 (0.6.0-2) ... 168s Setting up librust-regex-dev:amd64 (1.10.6-1) ... 168s Setting up librust-fancy-regex-dev:amd64 (0.11.0-2) ... 168s Setting up librust-async-process-dev (2.3.0-1) ... 168s Setting up librust-wasm-bindgen-macro+spans-dev:amd64 (0.2.87-1) ... 168s Setting up librust-rend-dev:amd64 (0.4.0-1) ... 168s Setting up librust-derive-more-0.99-dev:amd64 (0.99.18-1) ... 168s Setting up librust-env-logger-dev:amd64 (0.10.2-2) ... 168s Setting up librust-wasm-bindgen+spans-dev:amd64 (0.2.87-1) ... 168s Setting up librust-wasm-bindgen+default-dev:amd64 (0.2.87-1) ... 168s Setting up librust-rkyv-dev:amd64 (0.7.44-1) ... 168s Setting up librust-eui48-dev:amd64 (1.1.0-2) ... 168s Setting up librust-parse-zoneinfo-dev:amd64 (0.3.0-1) ... 168s Setting up librust-smol-dev (2.0.2-1) ... 168s Setting up librust-js-sys-dev:amd64 (0.3.64-1) ... 168s Setting up librust-num-complex-dev:amd64 (0.4.6-2) ... 168s Setting up librust-approx-dev:amd64 (0.5.1-1) ... 168s Setting up librust-ruzstd-dev:amd64 (0.5.0-1) ... 168s Setting up librust-web-sys-dev:amd64 (0.3.64-2) ... 168s Setting up librust-quickcheck-dev:amd64 (1.0.3-3) ... 168s Setting up librust-geo-types-dev:amd64 (0.7.11-2) ... 168s Setting up librust-deranged-dev:amd64 (0.3.11-1) ... 168s Setting up librust-num-bigint-dev:amd64 (0.4.6-1) ... 168s Setting up librust-num-rational-dev:amd64 (0.4.2-1) ... 168s Setting up librust-chrono-dev:amd64 (0.4.38-2) ... 168s Setting up librust-object-dev:amd64 (0.32.2-1) ... 168s Setting up librust-image-dev:amd64 (0.24.7-2) ... 168s Setting up librust-time-dev:amd64 (0.3.31-2) ... 168s Setting up librust-plotters-bitmap-dev:amd64 (0.3.3-3) ... 168s Setting up librust-postgres-types-dev:amd64 (0.2.6-2) ... 168s Setting up librust-addr2line-dev:amd64 (0.21.0-2) ... 168s Setting up librust-plotters-svg-dev:amd64 (0.3.5-1) ... 168s Setting up librust-rust-decimal-dev:amd64 (1.36.0-1) ... 168s Setting up librust-plotters-dev:amd64 (0.3.5-4) ... 168s Setting up librust-backtrace-dev:amd64 (0.3.69-2) ... 168s Setting up librust-tokio-dev:amd64 (1.39.3-3) ... 168s Setting up librust-async-global-executor-dev:amd64 (2.4.1-5) ... 168s Setting up librust-clap-builder-dev:amd64 (4.5.15-2) ... 168s Setting up librust-clap-dev:amd64 (4.5.16-1) ... 168s Setting up librust-async-std-dev (1.12.0-22) ... 168s Setting up librust-anyhow-dev:amd64 (1.0.86-1) ... 168s Setting up librust-criterion-dev (0.5.1-6) ... 168s Setting up librust-phf-generator-dev:amd64 (0.11.2-2) ... 168s Setting up librust-phf-codegen-dev:amd64 (0.11.2-1) ... 168s Setting up librust-chrono-tz-build-dev:amd64 (0.2.1-1) ... 168s Setting up librust-chrono-tz-dev:amd64 (0.8.6-2) ... 168s Setting up librust-pyo3-dev:amd64 (0.22.5-1) ... 168s Setting up autopkgtest-satdep (0) ... 168s Processing triggers for libc-bin (2.40-1ubuntu3) ... 169s Processing triggers for systemd (256.5-2ubuntu4) ... 169s Processing triggers for man-db (2.12.1-3) ... 170s Processing triggers for install-info (7.1.1-1) ... 181s (Reading database ... 101231 files and directories currently installed.) 181s Removing autopkgtest-satdep (0) ... 182s autopkgtest [16:10:57]: test pybuild-autopkgtest: pybuild-autopkgtest 182s autopkgtest [16:10:57]: test pybuild-autopkgtest: [----------------------- 182s pybuild-autopkgtest 183s I: pybuild base:311: cd /tmp/autopkgtest.BgRSpK/autopkgtest_tmp/build; python3.12 -m pytest tests 183s ============================= test session starts ============================== 183s platform linux -- Python 3.12.7+, pytest-8.3.2, pluggy-1.5.0 183s rootdir: /tmp/autopkgtest.BgRSpK/autopkgtest_tmp/build 183s configfile: pyproject.toml 183s plugins: typeguard-4.4.1, hypothesis-6.105.1 183s collected 30 items 183s 770s tests/test_encoding.py FFFFFFFFFFFFFFFFFFFFFF [ 73%] 770s tests/test_misc.py F. [ 80%] 774s tests/test_offsets.py FF [ 86%] 775s tests/test_pickle.py F [ 90%] 776s tests/test_simple_public.py FF. [100%] 776s 776s =================================== FAILURES =================================== 776s _________________________________ test_simple __________________________________ 776s 776s self = 776s 776s def _new_conn(self) -> socket.socket: 776s """Establish a socket connection and set nodelay settings on it. 776s 776s :return: New socket connection. 776s """ 776s try: 776s > sock = connection.create_connection( 776s (self._dns_host, self.port), 776s self.timeout, 776s source_address=self.source_address, 776s socket_options=self.socket_options, 776s ) 776s 776s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 776s raise err 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s 776s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 776s source_address = None, socket_options = [(6, 1, 1)] 776s 776s def create_connection( 776s address: tuple[str, int], 776s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 776s source_address: tuple[str, int] | None = None, 776s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 776s ) -> socket.socket: 776s """Connect to *address* and return the socket object. 776s 776s Convenience function. Connect to *address* (a 2-tuple ``(host, 776s port)``) and return the socket object. Passing the optional 776s *timeout* parameter will set the timeout on the socket instance 776s before attempting to connect. If no *timeout* is supplied, the 776s global default timeout setting returned by :func:`socket.getdefaulttimeout` 776s is used. If *source_address* is set it must be a tuple of (host, port) 776s for the socket to bind as a source address before making the connection. 776s An host of '' or port 0 tells the OS to use the default. 776s """ 776s 776s host, port = address 776s if host.startswith("["): 776s host = host.strip("[]") 776s err = None 776s 776s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 776s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 776s # The original create_connection function always returns all records. 776s family = allowed_gai_family() 776s 776s try: 776s host.encode("idna") 776s except UnicodeError: 776s raise LocationParseError(f"'{host}', label empty or too long") from None 776s 776s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 776s af, socktype, proto, canonname, sa = res 776s sock = None 776s try: 776s sock = socket.socket(af, socktype, proto) 776s 776s # If provided, set socket level options before connecting. 776s _set_socket_options(sock, socket_options) 776s 776s if timeout is not _DEFAULT_TIMEOUT: 776s sock.settimeout(timeout) 776s if source_address: 776s sock.bind(source_address) 776s > sock.connect(sa) 776s E ConnectionRefusedError: [Errno 111] Connection refused 776s 776s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 776s 776s The above exception was the direct cause of the following exception: 776s 776s self = 776s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 776s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 776s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 776s redirect = False, assert_same_host = False 776s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 776s release_conn = False, chunked = False, body_pos = None, preload_content = False 776s decode_content = False, response_kw = {} 776s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 776s destination_scheme = None, conn = None, release_this_conn = True 776s http_tunnel_required = False, err = None, clean_exit = False 776s 776s def urlopen( # type: ignore[override] 776s self, 776s method: str, 776s url: str, 776s body: _TYPE_BODY | None = None, 776s headers: typing.Mapping[str, str] | None = None, 776s retries: Retry | bool | int | None = None, 776s redirect: bool = True, 776s assert_same_host: bool = True, 776s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 776s pool_timeout: int | None = None, 776s release_conn: bool | None = None, 776s chunked: bool = False, 776s body_pos: _TYPE_BODY_POSITION | None = None, 776s preload_content: bool = True, 776s decode_content: bool = True, 776s **response_kw: typing.Any, 776s ) -> BaseHTTPResponse: 776s """ 776s Get a connection from the pool and perform an HTTP request. This is the 776s lowest level call for making a request, so you'll need to specify all 776s the raw details. 776s 776s .. note:: 776s 776s More commonly, it's appropriate to use a convenience method 776s such as :meth:`request`. 776s 776s .. note:: 776s 776s `release_conn` will only behave as expected if 776s `preload_content=False` because we want to make 776s `preload_content=False` the default behaviour someday soon without 776s breaking backwards compatibility. 776s 776s :param method: 776s HTTP request method (such as GET, POST, PUT, etc.) 776s 776s :param url: 776s The URL to perform the request on. 776s 776s :param body: 776s Data to send in the request body, either :class:`str`, :class:`bytes`, 776s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 776s 776s :param headers: 776s Dictionary of custom headers to send, such as User-Agent, 776s If-None-Match, etc. If None, pool headers are used. If provided, 776s these headers completely replace any pool-specific headers. 776s 776s :param retries: 776s Configure the number of retries to allow before raising a 776s :class:`~urllib3.exceptions.MaxRetryError` exception. 776s 776s Pass ``None`` to retry until you receive a response. Pass a 776s :class:`~urllib3.util.retry.Retry` object for fine-grained control 776s over different types of retries. 776s Pass an integer number to retry connection errors that many times, 776s but no other types of errors. Pass zero to never retry. 776s 776s If ``False``, then retries are disabled and any exception is raised 776s immediately. Also, instead of raising a MaxRetryError on redirects, 776s the redirect response will be returned. 776s 776s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 776s 776s :param redirect: 776s If True, automatically handle redirects (status codes 301, 302, 776s 303, 307, 308). Each redirect counts as a retry. Disabling retries 776s will disable redirect, too. 776s 776s :param assert_same_host: 776s If ``True``, will make sure that the host of the pool requests is 776s consistent else will raise HostChangedError. When ``False``, you can 776s use the pool on an HTTP proxy and request foreign hosts. 776s 776s :param timeout: 776s If specified, overrides the default timeout for this one 776s request. It may be a float (in seconds) or an instance of 776s :class:`urllib3.util.Timeout`. 776s 776s :param pool_timeout: 776s If set and the pool is set to block=True, then this method will 776s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 776s connection is available within the time period. 776s 776s :param bool preload_content: 776s If True, the response's body will be preloaded into memory. 776s 776s :param bool decode_content: 776s If True, will attempt to decode the body based on the 776s 'content-encoding' header. 776s 776s :param release_conn: 776s If False, then the urlopen call will not release the connection 776s back into the pool once a response is received (but will release if 776s you read the entire contents of the response such as when 776s `preload_content=True`). This is useful if you're not preloading 776s the response's content immediately. You will need to call 776s ``r.release_conn()`` on the response ``r`` to return the connection 776s back into the pool. If None, it takes the value of ``preload_content`` 776s which defaults to ``True``. 776s 776s :param bool chunked: 776s If True, urllib3 will send the body using chunked transfer 776s encoding. Otherwise, urllib3 will send the body using the standard 776s content-length form. Defaults to False. 776s 776s :param int body_pos: 776s Position to seek to in file-like body in the event of a retry or 776s redirect. Typically this won't need to be set because urllib3 will 776s auto-populate the value when needed. 776s """ 776s parsed_url = parse_url(url) 776s destination_scheme = parsed_url.scheme 776s 776s if headers is None: 776s headers = self.headers 776s 776s if not isinstance(retries, Retry): 776s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 776s 776s if release_conn is None: 776s release_conn = preload_content 776s 776s # Check host 776s if assert_same_host and not self.is_same_host(url): 776s raise HostChangedError(self, url, retries) 776s 776s # Ensure that the URL we're connecting to is properly encoded 776s if url.startswith("/"): 776s url = to_str(_encode_target(url)) 776s else: 776s url = to_str(parsed_url.url) 776s 776s conn = None 776s 776s # Track whether `conn` needs to be released before 776s # returning/raising/recursing. Update this variable if necessary, and 776s # leave `release_conn` constant throughout the function. That way, if 776s # the function recurses, the original value of `release_conn` will be 776s # passed down into the recursive call, and its value will be respected. 776s # 776s # See issue #651 [1] for details. 776s # 776s # [1] 776s release_this_conn = release_conn 776s 776s http_tunnel_required = connection_requires_http_tunnel( 776s self.proxy, self.proxy_config, destination_scheme 776s ) 776s 776s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 776s # have to copy the headers dict so we can safely change it without those 776s # changes being reflected in anyone else's copy. 776s if not http_tunnel_required: 776s headers = headers.copy() # type: ignore[attr-defined] 776s headers.update(self.proxy_headers) # type: ignore[union-attr] 776s 776s # Must keep the exception bound to a separate variable or else Python 3 776s # complains about UnboundLocalError. 776s err = None 776s 776s # Keep track of whether we cleanly exited the except block. This 776s # ensures we do proper cleanup in finally. 776s clean_exit = False 776s 776s # Rewind body position, if needed. Record current position 776s # for future rewinds in the event of a redirect/retry. 776s body_pos = set_file_position(body, body_pos) 776s 776s try: 776s # Request a connection from the queue. 776s timeout_obj = self._get_timeout(timeout) 776s conn = self._get_conn(timeout=pool_timeout) 776s 776s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 776s 776s # Is this a closed/new connection that requires CONNECT tunnelling? 776s if self.proxy is not None and http_tunnel_required and conn.is_closed: 776s try: 776s self._prepare_proxy(conn) 776s except (BaseSSLError, OSError, SocketTimeout) as e: 776s self._raise_timeout( 776s err=e, url=self.proxy.url, timeout_value=conn.timeout 776s ) 776s raise 776s 776s # If we're going to release the connection in ``finally:``, then 776s # the response doesn't need to know about the connection. Otherwise 776s # it will also try to release it and we'll have a double-release 776s # mess. 776s response_conn = conn if not release_conn else None 776s 776s # Make the request on the HTTPConnection object 776s > response = self._make_request( 776s conn, 776s method, 776s url, 776s timeout=timeout_obj, 776s body=body, 776s headers=headers, 776s chunked=chunked, 776s retries=retries, 776s response_conn=response_conn, 776s preload_content=preload_content, 776s decode_content=decode_content, 776s **response_kw, 776s ) 776s 776s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 776s raise new_e 776s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 776s self._validate_conn(conn) 776s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 776s conn.connect() 776s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 776s self.sock = sock = self._new_conn() 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s 776s self = 776s 776s def _new_conn(self) -> socket.socket: 776s """Establish a socket connection and set nodelay settings on it. 776s 776s :return: New socket connection. 776s """ 776s try: 776s sock = connection.create_connection( 776s (self._dns_host, self.port), 776s self.timeout, 776s source_address=self.source_address, 776s socket_options=self.socket_options, 776s ) 776s except socket.gaierror as e: 776s raise NameResolutionError(self.host, self, e) from e 776s except SocketTimeout as e: 776s raise ConnectTimeoutError( 776s self, 776s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 776s ) from e 776s 776s except OSError as e: 776s > raise NewConnectionError( 776s self, f"Failed to establish a new connection: {e}" 776s ) from e 776s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 776s 776s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 776s 776s The above exception was the direct cause of the following exception: 776s 776s self = 776s request = , stream = False 776s timeout = Timeout(connect=None, read=None, total=None), verify = True 776s cert = None, proxies = OrderedDict() 776s 776s def send( 776s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 776s ): 776s """Sends PreparedRequest object. Returns Response object. 776s 776s :param request: The :class:`PreparedRequest ` being sent. 776s :param stream: (optional) Whether to stream the request content. 776s :param timeout: (optional) How long to wait for the server to send 776s data before giving up, as a float, or a :ref:`(connect timeout, 776s read timeout) ` tuple. 776s :type timeout: float or tuple or urllib3 Timeout object 776s :param verify: (optional) Either a boolean, in which case it controls whether 776s we verify the server's TLS certificate, or a string, in which case it 776s must be a path to a CA bundle to use 776s :param cert: (optional) Any user-provided SSL certificate to be trusted. 776s :param proxies: (optional) The proxies dictionary to apply to the request. 776s :rtype: requests.Response 776s """ 776s 776s try: 776s conn = self.get_connection_with_tls_context( 776s request, verify, proxies=proxies, cert=cert 776s ) 776s except LocationValueError as e: 776s raise InvalidURL(e, request=request) 776s 776s self.cert_verify(conn, request.url, verify, cert) 776s url = self.request_url(request, proxies) 776s self.add_headers( 776s request, 776s stream=stream, 776s timeout=timeout, 776s verify=verify, 776s cert=cert, 776s proxies=proxies, 776s ) 776s 776s chunked = not (request.body is None or "Content-Length" in request.headers) 776s 776s if isinstance(timeout, tuple): 776s try: 776s connect, read = timeout 776s timeout = TimeoutSauce(connect=connect, read=read) 776s except ValueError: 776s raise ValueError( 776s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 776s f"or a single float to set both timeouts to the same value." 776s ) 776s elif isinstance(timeout, TimeoutSauce): 776s pass 776s else: 776s timeout = TimeoutSauce(connect=timeout, read=timeout) 776s 776s try: 776s > resp = conn.urlopen( 776s method=request.method, 776s url=url, 776s body=request.body, 776s headers=request.headers, 776s redirect=False, 776s assert_same_host=False, 776s preload_content=False, 776s decode_content=False, 776s retries=self.max_retries, 776s timeout=timeout, 776s chunked=chunked, 776s ) 776s 776s /usr/lib/python3/dist-packages/requests/adapters.py:667: 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 776s retries = retries.increment( 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s 776s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 776s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 776s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 776s _pool = 776s _stacktrace = 776s 776s def increment( 776s self, 776s method: str | None = None, 776s url: str | None = None, 776s response: BaseHTTPResponse | None = None, 776s error: Exception | None = None, 776s _pool: ConnectionPool | None = None, 776s _stacktrace: TracebackType | None = None, 776s ) -> Retry: 776s """Return a new Retry object with incremented retry counters. 776s 776s :param response: A response object, or None, if the server did not 776s return a response. 776s :type response: :class:`~urllib3.response.BaseHTTPResponse` 776s :param Exception error: An error encountered during the request, or 776s None if the response was received successfully. 776s 776s :return: A new ``Retry`` object. 776s """ 776s if self.total is False and error: 776s # Disabled, indicate to re-raise the error. 776s raise reraise(type(error), error, _stacktrace) 776s 776s total = self.total 776s if total is not None: 776s total -= 1 776s 776s connect = self.connect 776s read = self.read 776s redirect = self.redirect 776s status_count = self.status 776s other = self.other 776s cause = "unknown" 776s status = None 776s redirect_location = None 776s 776s if error and self._is_connection_error(error): 776s # Connect retry? 776s if connect is False: 776s raise reraise(type(error), error, _stacktrace) 776s elif connect is not None: 776s connect -= 1 776s 776s elif error and self._is_read_error(error): 776s # Read retry? 776s if read is False or method is None or not self._is_method_retryable(method): 776s raise reraise(type(error), error, _stacktrace) 776s elif read is not None: 776s read -= 1 776s 776s elif error: 776s # Other retry? 776s if other is not None: 776s other -= 1 776s 776s elif response and response.get_redirect_location(): 776s # Redirect retry? 776s if redirect is not None: 776s redirect -= 1 776s cause = "too many redirects" 776s response_redirect_location = response.get_redirect_location() 776s if response_redirect_location: 776s redirect_location = response_redirect_location 776s status = response.status 776s 776s else: 776s # Incrementing because of a server error like a 500 in 776s # status_forcelist and the given method is in the allowed_methods 776s cause = ResponseError.GENERIC_ERROR 776s if response and response.status: 776s if status_count is not None: 776s status_count -= 1 776s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 776s status = response.status 776s 776s history = self.history + ( 776s RequestHistory(method, url, error, status, redirect_location), 776s ) 776s 776s new_retry = self.new( 776s total=total, 776s connect=connect, 776s read=read, 776s redirect=redirect, 776s status=status_count, 776s other=other, 776s history=history, 776s ) 776s 776s if new_retry.is_exhausted(): 776s reason = error or ResponseError(cause) 776s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 776s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 776s 776s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 776s 776s During handling of the above exception, another exception occurred: 776s 776s def test_simple(): 776s > enc = tiktoken.get_encoding("gpt2") 776s 776s tests/test_encoding.py:15: 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 776s enc = Encoding(**constructor()) 776s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 776s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 776s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 776s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 776s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 776s contents = read_file(blobpath) 776s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 776s resp = requests.get(blobpath) 776s /usr/lib/python3/dist-packages/requests/api.py:73: in get 776s return request("get", url, params=params, **kwargs) 776s /usr/lib/python3/dist-packages/requests/api.py:59: in request 776s return session.request(method=method, url=url, **kwargs) 776s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 776s resp = self.send(prep, **send_kwargs) 776s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 776s r = adapter.send(request, **kwargs) 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s 776s self = 776s request = , stream = False 776s timeout = Timeout(connect=None, read=None, total=None), verify = True 776s cert = None, proxies = OrderedDict() 776s 776s def send( 776s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 776s ): 776s """Sends PreparedRequest object. Returns Response object. 776s 776s :param request: The :class:`PreparedRequest ` being sent. 776s :param stream: (optional) Whether to stream the request content. 776s :param timeout: (optional) How long to wait for the server to send 776s data before giving up, as a float, or a :ref:`(connect timeout, 776s read timeout) ` tuple. 776s :type timeout: float or tuple or urllib3 Timeout object 776s :param verify: (optional) Either a boolean, in which case it controls whether 776s we verify the server's TLS certificate, or a string, in which case it 776s must be a path to a CA bundle to use 776s :param cert: (optional) Any user-provided SSL certificate to be trusted. 776s :param proxies: (optional) The proxies dictionary to apply to the request. 776s :rtype: requests.Response 776s """ 776s 776s try: 776s conn = self.get_connection_with_tls_context( 776s request, verify, proxies=proxies, cert=cert 776s ) 776s except LocationValueError as e: 776s raise InvalidURL(e, request=request) 776s 776s self.cert_verify(conn, request.url, verify, cert) 776s url = self.request_url(request, proxies) 776s self.add_headers( 776s request, 776s stream=stream, 776s timeout=timeout, 776s verify=verify, 776s cert=cert, 776s proxies=proxies, 776s ) 776s 776s chunked = not (request.body is None or "Content-Length" in request.headers) 776s 776s if isinstance(timeout, tuple): 776s try: 776s connect, read = timeout 776s timeout = TimeoutSauce(connect=connect, read=read) 776s except ValueError: 776s raise ValueError( 776s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 776s f"or a single float to set both timeouts to the same value." 776s ) 776s elif isinstance(timeout, TimeoutSauce): 776s pass 776s else: 776s timeout = TimeoutSauce(connect=timeout, read=timeout) 776s 776s try: 776s resp = conn.urlopen( 776s method=request.method, 776s url=url, 776s body=request.body, 776s headers=request.headers, 776s redirect=False, 776s assert_same_host=False, 776s preload_content=False, 776s decode_content=False, 776s retries=self.max_retries, 776s timeout=timeout, 776s chunked=chunked, 776s ) 776s 776s except (ProtocolError, OSError) as err: 776s raise ConnectionError(err, request=request) 776s 776s except MaxRetryError as e: 776s if isinstance(e.reason, ConnectTimeoutError): 776s # TODO: Remove this in 3.0.0: see #2811 776s if not isinstance(e.reason, NewConnectionError): 776s raise ConnectTimeout(e, request=request) 776s 776s if isinstance(e.reason, ResponseError): 776s raise RetryError(e, request=request) 776s 776s if isinstance(e.reason, _ProxyError): 776s raise ProxyError(e, request=request) 776s 776s if isinstance(e.reason, _SSLError): 776s # This branch is for urllib3 v1.22 and later. 776s raise SSLError(e, request=request) 776s 776s > raise ConnectionError(e, request=request) 776s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 776s 776s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 776s _____________________________ test_simple_repeated _____________________________ 776s 776s self = 776s 776s def _new_conn(self) -> socket.socket: 776s """Establish a socket connection and set nodelay settings on it. 776s 776s :return: New socket connection. 776s """ 776s try: 776s > sock = connection.create_connection( 776s (self._dns_host, self.port), 776s self.timeout, 776s source_address=self.source_address, 776s socket_options=self.socket_options, 776s ) 776s 776s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 776s raise err 776s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 776s 776s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 776s source_address = None, socket_options = [(6, 1, 1)] 776s 776s def create_connection( 776s address: tuple[str, int], 776s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 776s source_address: tuple[str, int] | None = None, 776s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 776s ) -> socket.socket: 776s """Connect to *address* and return the socket object. 776s 776s Convenience function. Connect to *address* (a 2-tuple ``(host, 776s port)``) and return the socket object. Passing the optional 776s *timeout* parameter will set the timeout on the socket instance 776s before attempting to connect. If no *timeout* is supplied, the 776s global default timeout setting returned by :func:`socket.getdefaulttimeout` 776s is used. If *source_address* is set it must be a tuple of (host, port) 776s for the socket to bind as a source address before making the connection. 776s An host of '' or port 0 tells the OS to use the default. 776s """ 776s 776s host, port = address 776s if host.startswith("["): 776s host = host.strip("[]") 776s err = None 776s 776s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 776s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 776s # The original create_connection function always returns all records. 776s family = allowed_gai_family() 776s 776s try: 776s host.encode("idna") 776s except UnicodeError: 776s raise LocationParseError(f"'{host}', label empty or too long") from None 776s 776s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 776s af, socktype, proto, canonname, sa = res 776s sock = None 776s try: 776s sock = socket.socket(af, socktype, proto) 776s 776s # If provided, set socket level options before connecting. 776s _set_socket_options(sock, socket_options) 776s 776s if timeout is not _DEFAULT_TIMEOUT: 776s sock.settimeout(timeout) 776s if source_address: 776s sock.bind(source_address) 776s > sock.connect(sa) 776s E ConnectionRefusedError: [Errno 111] Connection refused 776s 776s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 776s 776s The above exception was the direct cause of the following exception: 776s 776s self = 776s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 776s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 776s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 776s redirect = False, assert_same_host = False 776s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 776s release_conn = False, chunked = False, body_pos = None, preload_content = False 776s decode_content = False, response_kw = {} 776s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 776s destination_scheme = None, conn = None, release_this_conn = True 776s http_tunnel_required = False, err = None, clean_exit = False 776s 776s def urlopen( # type: ignore[override] 776s self, 776s method: str, 776s url: str, 776s body: _TYPE_BODY | None = None, 776s headers: typing.Mapping[str, str] | None = None, 776s retries: Retry | bool | int | None = None, 776s redirect: bool = True, 776s assert_same_host: bool = True, 776s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 776s pool_timeout: int | None = None, 776s release_conn: bool | None = None, 776s chunked: bool = False, 776s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_simple_repeated(): 777s > enc = tiktoken.get_encoding("gpt2") 777s 777s tests/test_encoding.py:32: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 777s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 777s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_simple_regex _______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_simple_regex(): 777s > enc = tiktoken.get_encoding("cl100k_base") 777s 777s tests/test_encoding.py:53: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_basic_encode _______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_basic_encode(): 777s > enc = tiktoken.get_encoding("r50k_base") 777s 777s tests/test_encoding.py:62: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_encode_empty _______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_encode_empty(): 777s > enc = tiktoken.get_encoding("r50k_base") 777s 777s tests/test_encoding.py:74: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_encode_bytes _______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_encode_bytes(): 777s > enc = tiktoken.get_encoding("cl100k_base") 777s 777s tests/test_encoding.py:79: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _________________________ test_encode_surrogate_pairs __________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_encode_surrogate_pairs(): 777s > enc = tiktoken.get_encoding("cl100k_base") 777s 777s tests/test_encoding.py:84: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _________________ test_catastrophically_repetitive[r50k_base] __________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:96: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ________________ test_catastrophically_repetitive[cl100k_base] _________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:96: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _______________________ test_basic_roundtrip[r50k_base] ________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_basic_roundtrip(make_enc): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:115: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________ test_basic_roundtrip[cl100k_base] _______________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_basic_roundtrip(make_enc): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:115: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ________________________ test_hyp_roundtrip[r50k_base] _________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(text=st.text()) 777s 777s tests/test_encoding.py:131: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:134: in test_hyp_roundtrip 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_roundtrip( 777s E make_enc=functools.partial(get_encoding, 'r50k_base'), 777s E text='', # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _______________________ test_hyp_roundtrip[cl100k_base] ________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(text=st.text()) 777s 777s tests/test_encoding.py:131: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:134: in test_hyp_roundtrip 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_roundtrip( 777s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 777s E text='', # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ____________________ test_single_token_roundtrip[r50k_base] ____________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:141: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ___________________ test_single_token_roundtrip[cl100k_base] ___________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:141: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_special_token ______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_special_token(): 777s > enc = tiktoken.get_encoding("cl100k_base") 777s 777s tests/test_encoding.py:157: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _____________________ test_hyp_special_ordinary[r50k_base] _____________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremE: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.BgRSpK/autopkgtest_tmp/build; python3.12 -m pytest tests 777s ented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(text=st.text()) 777s 777s tests/test_encoding.py:208: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:211: in test_hyp_special_ordinary 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 777s make: *** [/tmp/LtgMdDjw1J/run:4: pybuild-autopkgtest] Error 25 777s pybuild-autopkgtest: error: /tmp/LtgMdDjw1J/run pybuild-autopkgtest returned exit code 2 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_special_ordinary( 777s E make_enc=functools.partial(get_encoding, 'r50k_base'), 777s E text='', # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ____________________ test_hyp_special_ordinary[cl100k_base] ____________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(text=st.text()) 777s 777s tests/test_encoding.py:208: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:211: in test_hyp_special_ordinary 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_special_ordinary( 777s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 777s E text='', # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _________________________ test_batch_encode[r50k_base] _________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:222: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ________________________ test_batch_encode[cl100k_base] ________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 777s > enc = make_enc() 777s 777s tests/test_encoding.py:222: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _____________________ test_hyp_batch_roundtrip[r50k_base] ______________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'r50k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(batch=st.lists(st.text())) 777s 777s tests/test_encoding.py:237: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_batch_roundtrip( 777s E make_enc=functools.partial(get_encoding, 'r50k_base'), 777s E batch=[], # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ____________________ test_hyp_batch_roundtrip[cl100k_base] _____________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 777s > @hypothesis.given(batch=st.lists(st.text())) 777s 777s tests/test_encoding.py:237: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_batch_roundtrip( 777s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 777s E batch=[], # or any other generated value 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ___________________________ test_encoding_for_model ____________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_encoding_for_model(): 777s > enc = tiktoken.encoding_for_model("gpt2") 777s 777s tests/test_misc.py:8: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 777s return get_encoding(encoding_name_for_model(model_name)) 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 777s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 777s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ________________________ test_hyp_offsets[cl100k_base] _________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s make_enc = functools.partial(, 'cl100k_base') 777s 777s @pytest.mark.parametrize("make_enc", SOME_ENCODING_FACTORIES) 777s > @hypothesis.given(data=st.data()) 777s 777s tests/test_offsets.py:29: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s tests/test_offsets.py:32: in test_hyp_offsets 777s enc = make_enc() 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s E Falsifying example: test_hyp_offsets( 777s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 777s E data=data(...), 777s E ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ______________________________ test_basic_offsets ______________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_basic_offsets(): 777s > enc = tiktoken.get_encoding("cl100k_base") 777s 777s tests/test_offsets.py:50: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _________________________________ test_pickle __________________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_pickle(): 777s import pickle 777s 777s > enc_old = tiktoken.get_encoding("r50k_base") 777s 777s tests/test_pickle.py:7: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 777s mergeable_ranks = load_tiktoken_bpe( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 777s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s _________________________________ test_simple __________________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_simple(): 777s # Note that there are more actual tests, they're just not currently public :-) 777s > enc = tiktoken.get_encoding("gpt2") 777s 777s tests/test_simple_public.py:9: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 777s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 777s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s ___________________________ test_encoding_for_model ____________________________ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s > sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 777s raise err 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 777s source_address = None, socket_options = [(6, 1, 1)] 777s 777s def create_connection( 777s address: tuple[str, int], 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s source_address: tuple[str, int] | None = None, 777s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 777s ) -> socket.socket: 777s """Connect to *address* and return the socket object. 777s 777s Convenience function. Connect to *address* (a 2-tuple ``(host, 777s port)``) and return the socket object. Passing the optional 777s *timeout* parameter will set the timeout on the socket instance 777s before attempting to connect. If no *timeout* is supplied, the 777s global default timeout setting returned by :func:`socket.getdefaulttimeout` 777s is used. If *source_address* is set it must be a tuple of (host, port) 777s for the socket to bind as a source address before making the connection. 777s An host of '' or port 0 tells the OS to use the default. 777s """ 777s 777s host, port = address 777s if host.startswith("["): 777s host = host.strip("[]") 777s err = None 777s 777s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 777s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 777s # The original create_connection function always returns all records. 777s family = allowed_gai_family() 777s 777s try: 777s host.encode("idna") 777s except UnicodeError: 777s raise LocationParseError(f"'{host}', label empty or too long") from None 777s 777s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 777s af, socktype, proto, canonname, sa = res 777s sock = None 777s try: 777s sock = socket.socket(af, socktype, proto) 777s 777s # If provided, set socket level options before connecting. 777s _set_socket_options(sock, socket_options) 777s 777s if timeout is not _DEFAULT_TIMEOUT: 777s sock.settimeout(timeout) 777s if source_address: 777s sock.bind(source_address) 777s > sock.connect(sa) 777s E ConnectionRefusedError: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 777s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 777s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s redirect = False, assert_same_host = False 777s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 777s release_conn = False, chunked = False, body_pos = None, preload_content = False 777s decode_content = False, response_kw = {} 777s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 777s destination_scheme = None, conn = None, release_this_conn = True 777s http_tunnel_required = False, err = None, clean_exit = False 777s 777s def urlopen( # type: ignore[override] 777s self, 777s method: str, 777s url: str, 777s body: _TYPE_BODY | None = None, 777s headers: typing.Mapping[str, str] | None = None, 777s retries: Retry | bool | int | None = None, 777s redirect: bool = True, 777s assert_same_host: bool = True, 777s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 777s pool_timeout: int | None = None, 777s release_conn: bool | None = None, 777s chunked: bool = False, 777s body_pos: _TYPE_BODY_POSITION | None = None, 777s preload_content: bool = True, 777s decode_content: bool = True, 777s **response_kw: typing.Any, 777s ) -> BaseHTTPResponse: 777s """ 777s Get a connection from the pool and perform an HTTP request. This is the 777s lowest level call for making a request, so you'll need to specify all 777s the raw details. 777s 777s .. note:: 777s 777s More commonly, it's appropriate to use a convenience method 777s such as :meth:`request`. 777s 777s .. note:: 777s 777s `release_conn` will only behave as expected if 777s `preload_content=False` because we want to make 777s `preload_content=False` the default behaviour someday soon without 777s breaking backwards compatibility. 777s 777s :param method: 777s HTTP request method (such as GET, POST, PUT, etc.) 777s 777s :param url: 777s The URL to perform the request on. 777s 777s :param body: 777s Data to send in the request body, either :class:`str`, :class:`bytes`, 777s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 777s 777s :param headers: 777s Dictionary of custom headers to send, such as User-Agent, 777s If-None-Match, etc. If None, pool headers are used. If provided, 777s these headers completely replace any pool-specific headers. 777s 777s :param retries: 777s Configure the number of retries to allow before raising a 777s :class:`~urllib3.exceptions.MaxRetryError` exception. 777s 777s Pass ``None`` to retry until you receive a response. Pass a 777s :class:`~urllib3.util.retry.Retry` object for fine-grained control 777s over different types of retries. 777s Pass an integer number to retry connection errors that many times, 777s but no other types of errors. Pass zero to never retry. 777s 777s If ``False``, then retries are disabled and any exception is raised 777s immediately. Also, instead of raising a MaxRetryError on redirects, 777s the redirect response will be returned. 777s 777s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 777s 777s :param redirect: 777s If True, automatically handle redirects (status codes 301, 302, 777s 303, 307, 308). Each redirect counts as a retry. Disabling retries 777s will disable redirect, too. 777s 777s :param assert_same_host: 777s If ``True``, will make sure that the host of the pool requests is 777s consistent else will raise HostChangedError. When ``False``, you can 777s use the pool on an HTTP proxy and request foreign hosts. 777s 777s :param timeout: 777s If specified, overrides the default timeout for this one 777s request. It may be a float (in seconds) or an instance of 777s :class:`urllib3.util.Timeout`. 777s 777s :param pool_timeout: 777s If set and the pool is set to block=True, then this method will 777s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 777s connection is available within the time period. 777s 777s :param bool preload_content: 777s If True, the response's body will be preloaded into memory. 777s 777s :param bool decode_content: 777s If True, will attempt to decode the body based on the 777s 'content-encoding' header. 777s 777s :param release_conn: 777s If False, then the urlopen call will not release the connection 777s back into the pool once a response is received (but will release if 777s you read the entire contents of the response such as when 777s `preload_content=True`). This is useful if you're not preloading 777s the response's content immediately. You will need to call 777s ``r.release_conn()`` on the response ``r`` to return the connection 777s back into the pool. If None, it takes the value of ``preload_content`` 777s which defaults to ``True``. 777s 777s :param bool chunked: 777s If True, urllib3 will send the body using chunked transfer 777s encoding. Otherwise, urllib3 will send the body using the standard 777s content-length form. Defaults to False. 777s 777s :param int body_pos: 777s Position to seek to in file-like body in the event of a retry or 777s redirect. Typically this won't need to be set because urllib3 will 777s auto-populate the value when needed. 777s """ 777s parsed_url = parse_url(url) 777s destination_scheme = parsed_url.scheme 777s 777s if headers is None: 777s headers = self.headers 777s 777s if not isinstance(retries, Retry): 777s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 777s 777s if release_conn is None: 777s release_conn = preload_content 777s 777s # Check host 777s if assert_same_host and not self.is_same_host(url): 777s raise HostChangedError(self, url, retries) 777s 777s # Ensure that the URL we're connecting to is properly encoded 777s if url.startswith("/"): 777s url = to_str(_encode_target(url)) 777s else: 777s url = to_str(parsed_url.url) 777s 777s conn = None 777s 777s # Track whether `conn` needs to be released before 777s # returning/raising/recursing. Update this variable if necessary, and 777s # leave `release_conn` constant throughout the function. That way, if 777s # the function recurses, the original value of `release_conn` will be 777s # passed down into the recursive call, and its value will be respected. 777s # 777s # See issue #651 [1] for details. 777s # 777s # [1] 777s release_this_conn = release_conn 777s 777s http_tunnel_required = connection_requires_http_tunnel( 777s self.proxy, self.proxy_config, destination_scheme 777s ) 777s 777s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 777s # have to copy the headers dict so we can safely change it without those 777s # changes being reflected in anyone else's copy. 777s if not http_tunnel_required: 777s headers = headers.copy() # type: ignore[attr-defined] 777s headers.update(self.proxy_headers) # type: ignore[union-attr] 777s 777s # Must keep the exception bound to a separate variable or else Python 3 777s # complains about UnboundLocalError. 777s err = None 777s 777s # Keep track of whether we cleanly exited the except block. This 777s # ensures we do proper cleanup in finally. 777s clean_exit = False 777s 777s # Rewind body position, if needed. Record current position 777s # for future rewinds in the event of a redirect/retry. 777s body_pos = set_file_position(body, body_pos) 777s 777s try: 777s # Request a connection from the queue. 777s timeout_obj = self._get_timeout(timeout) 777s conn = self._get_conn(timeout=pool_timeout) 777s 777s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 777s 777s # Is this a closed/new connection that requires CONNECT tunnelling? 777s if self.proxy is not None and http_tunnel_required and conn.is_closed: 777s try: 777s self._prepare_proxy(conn) 777s except (BaseSSLError, OSError, SocketTimeout) as e: 777s self._raise_timeout( 777s err=e, url=self.proxy.url, timeout_value=conn.timeout 777s ) 777s raise 777s 777s # If we're going to release the connection in ``finally:``, then 777s # the response doesn't need to know about the connection. Otherwise 777s # it will also try to release it and we'll have a double-release 777s # mess. 777s response_conn = conn if not release_conn else None 777s 777s # Make the request on the HTTPConnection object 777s > response = self._make_request( 777s conn, 777s method, 777s url, 777s timeout=timeout_obj, 777s body=body, 777s headers=headers, 777s chunked=chunked, 777s retries=retries, 777s response_conn=response_conn, 777s preload_content=preload_content, 777s decode_content=decode_content, 777s **response_kw, 777s ) 777s 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 777s raise new_e 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 777s self._validate_conn(conn) 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 777s conn.connect() 777s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 777s self.sock = sock = self._new_conn() 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s 777s def _new_conn(self) -> socket.socket: 777s """Establish a socket connection and set nodelay settings on it. 777s 777s :return: New socket connection. 777s """ 777s try: 777s sock = connection.create_connection( 777s (self._dns_host, self.port), 777s self.timeout, 777s source_address=self.source_address, 777s socket_options=self.socket_options, 777s ) 777s except socket.gaierror as e: 777s raise NameResolutionError(self.host, self, e) from e 777s except SocketTimeout as e: 777s raise ConnectTimeoutError( 777s self, 777s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 777s ) from e 777s 777s except OSError as e: 777s > raise NewConnectionError( 777s self, f"Failed to establish a new connection: {e}" 777s ) from e 777s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 777s 777s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 777s 777s The above exception was the direct cause of the following exception: 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s > resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:667: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 777s retries = retries.increment( 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 777s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 777s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 777s _pool = 777s _stacktrace = 777s 777s def increment( 777s self, 777s method: str | None = None, 777s url: str | None = None, 777s response: BaseHTTPResponse | None = None, 777s error: Exception | None = None, 777s _pool: ConnectionPool | None = None, 777s _stacktrace: TracebackType | None = None, 777s ) -> Retry: 777s """Return a new Retry object with incremented retry counters. 777s 777s :param response: A response object, or None, if the server did not 777s return a response. 777s :type response: :class:`~urllib3.response.BaseHTTPResponse` 777s :param Exception error: An error encountered during the request, or 777s None if the response was received successfully. 777s 777s :return: A new ``Retry`` object. 777s """ 777s if self.total is False and error: 777s # Disabled, indicate to re-raise the error. 777s raise reraise(type(error), error, _stacktrace) 777s 777s total = self.total 777s if total is not None: 777s total -= 1 777s 777s connect = self.connect 777s read = self.read 777s redirect = self.redirect 777s status_count = self.status 777s other = self.other 777s cause = "unknown" 777s status = None 777s redirect_location = None 777s 777s if error and self._is_connection_error(error): 777s # Connect retry? 777s if connect is False: 777s raise reraise(type(error), error, _stacktrace) 777s elif connect is not None: 777s connect -= 1 777s 777s elif error and self._is_read_error(error): 777s # Read retry? 777s if read is False or method is None or not self._is_method_retryable(method): 777s raise reraise(type(error), error, _stacktrace) 777s elif read is not None: 777s read -= 1 777s 777s elif error: 777s # Other retry? 777s if other is not None: 777s other -= 1 777s 777s elif response and response.get_redirect_location(): 777s # Redirect retry? 777s if redirect is not None: 777s redirect -= 1 777s cause = "too many redirects" 777s response_redirect_location = response.get_redirect_location() 777s if response_redirect_location: 777s redirect_location = response_redirect_location 777s status = response.status 777s 777s else: 777s # Incrementing because of a server error like a 500 in 777s # status_forcelist and the given method is in the allowed_methods 777s cause = ResponseError.GENERIC_ERROR 777s if response and response.status: 777s if status_count is not None: 777s status_count -= 1 777s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 777s status = response.status 777s 777s history = self.history + ( 777s RequestHistory(method, url, error, status, redirect_location), 777s ) 777s 777s new_retry = self.new( 777s total=total, 777s connect=connect, 777s read=read, 777s redirect=redirect, 777s status=status_count, 777s other=other, 777s history=history, 777s ) 777s 777s if new_retry.is_exhausted(): 777s reason = error or ResponseError(cause) 777s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 777s E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 777s 777s During handling of the above exception, another exception occurred: 777s 777s def test_encoding_for_model(): 777s > enc = tiktoken.encoding_for_model("gpt2") 777s 777s tests/test_simple_public.py:26: 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 777s return get_encoding(encoding_name_for_model(model_name)) 777s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 777s enc = Encoding(**constructor()) 777s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 777s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 777s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 777s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 777s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 777s contents = read_file(blobpath) 777s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 777s resp = requests.get(blobpath) 777s /usr/lib/python3/dist-packages/requests/api.py:73: in get 777s return request("get", url, params=params, **kwargs) 777s /usr/lib/python3/dist-packages/requests/api.py:59: in request 777s return session.request(method=method, url=url, **kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 777s resp = self.send(prep, **send_kwargs) 777s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 777s r = adapter.send(request, **kwargs) 777s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 777s 777s self = 777s request = , stream = False 777s timeout = Timeout(connect=None, read=None, total=None), verify = True 777s cert = None, proxies = OrderedDict() 777s 777s def send( 777s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 777s ): 777s """Sends PreparedRequest object. Returns Response object. 777s 777s :param request: The :class:`PreparedRequest ` being sent. 777s :param stream: (optional) Whether to stream the request content. 777s :param timeout: (optional) How long to wait for the server to send 777s data before giving up, as a float, or a :ref:`(connect timeout, 777s read timeout) ` tuple. 777s :type timeout: float or tuple or urllib3 Timeout object 777s :param verify: (optional) Either a boolean, in which case it controls whether 777s we verify the server's TLS certificate, or a string, in which case it 777s must be a path to a CA bundle to use 777s :param cert: (optional) Any user-provided SSL certificate to be trusted. 777s :param proxies: (optional) The proxies dictionary to apply to the request. 777s :rtype: requests.Response 777s """ 777s 777s try: 777s conn = self.get_connection_with_tls_context( 777s request, verify, proxies=proxies, cert=cert 777s ) 777s except LocationValueError as e: 777s raise InvalidURL(e, request=request) 777s 777s self.cert_verify(conn, request.url, verify, cert) 777s url = self.request_url(request, proxies) 777s self.add_headers( 777s request, 777s stream=stream, 777s timeout=timeout, 777s verify=verify, 777s cert=cert, 777s proxies=proxies, 777s ) 777s 777s chunked = not (request.body is None or "Content-Length" in request.headers) 777s 777s if isinstance(timeout, tuple): 777s try: 777s connect, read = timeout 777s timeout = TimeoutSauce(connect=connect, read=read) 777s except ValueError: 777s raise ValueError( 777s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 777s f"or a single float to set both timeouts to the same value." 777s ) 777s elif isinstance(timeout, TimeoutSauce): 777s pass 777s else: 777s timeout = TimeoutSauce(connect=timeout, read=timeout) 777s 777s try: 777s resp = conn.urlopen( 777s method=request.method, 777s url=url, 777s body=request.body, 777s headers=request.headers, 777s redirect=False, 777s assert_same_host=False, 777s preload_content=False, 777s decode_content=False, 777s retries=self.max_retries, 777s timeout=timeout, 777s chunked=chunked, 777s ) 777s 777s except (ProtocolError, OSError) as err: 777s raise ConnectionError(err, request=request) 777s 777s except MaxRetryError as e: 777s if isinstance(e.reason, ConnectTimeoutError): 777s # TODO: Remove this in 3.0.0: see #2811 777s if not isinstance(e.reason, NewConnectionError): 777s raise ConnectTimeout(e, request=request) 777s 777s if isinstance(e.reason, ResponseError): 777s raise RetryError(e, request=request) 777s 777s if isinstance(e.reason, _ProxyError): 777s raise ProxyError(e, request=request) 777s 777s if isinstance(e.reason, _SSLError): 777s # This branch is for urllib3 v1.22 and later. 777s raise SSLError(e, request=request) 777s 777s > raise ConnectionError(e, request=request) 777s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /gpt-2/encodings/main/vocab.bpe (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 777s 777s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 777s =========================== short test summary info ============================ 777s FAILED tests/test_encoding.py::test_simple - requests.exceptions.ConnectionEr... 777s FAILED tests/test_encoding.py::test_simple_repeated - requests.exceptions.Con... 777s FAILED tests/test_encoding.py::test_simple_regex - requests.exceptions.Connec... 777s FAILED tests/test_encoding.py::test_basic_encode - requests.exceptions.Connec... 777s FAILED tests/test_encoding.py::test_encode_empty - requests.exceptions.Connec... 777s FAILED tests/test_encoding.py::test_encode_bytes - requests.exceptions.Connec... 777s FAILED tests/test_encoding.py::test_encode_surrogate_pairs - requests.excepti... 777s FAILED tests/test_encoding.py::test_catastrophically_repetitive[r50k_base] - ... 777s FAILED tests/test_encoding.py::test_catastrophically_repetitive[cl100k_base] 777s FAILED tests/test_encoding.py::test_basic_roundtrip[r50k_base] - requests.exc... 777s FAILED tests/test_encoding.py::test_basic_roundtrip[cl100k_base] - requests.e... 777s FAILED tests/test_encoding.py::test_hyp_roundtrip[r50k_base] - requests.excep... 777s FAILED tests/test_encoding.py::test_hyp_roundtrip[cl100k_base] - requests.exc... 777s FAILED tests/test_encoding.py::test_single_token_roundtrip[r50k_base] - reque... 777s FAILED tests/test_encoding.py::test_single_token_roundtrip[cl100k_base] - req... 777s FAILED tests/test_encoding.py::test_special_token - requests.exceptions.Conne... 777s FAILED tests/test_encoding.py::test_hyp_special_ordinary[r50k_base] - request... 777s FAILED tests/test_encoding.py::test_hyp_special_ordinary[cl100k_base] - reque... 777s FAILED tests/test_encoding.py::test_batch_encode[r50k_base] - requests.except... 777s FAILED tests/test_encoding.py::test_batch_encode[cl100k_base] - requests.exce... 777s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[r50k_base] - requests... 777s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[cl100k_base] - reques... 777s FAILED tests/test_misc.py::test_encoding_for_model - requests.exceptions.Conn... 777s FAILED tests/test_offsets.py::test_hyp_offsets[cl100k_base] - requests.except... 777s FAILED tests/test_offsets.py::test_basic_offsets - requests.exceptions.Connec... 777s FAILED tests/test_pickle.py::test_pickle - requests.exceptions.ConnectionErro... 777s FAILED tests/test_simple_public.py::test_simple - requests.exceptions.Connect... 777s FAILED tests/test_simple_public.py::test_encoding_for_model - requests.except... 777s =================== 28 failed, 2 passed in 593.66s (0:09:53) =================== 777s autopkgtest [16:20:52]: test pybuild-autopkgtest: -----------------------] 778s pybuild-autopkgtest FAIL non-zero exit status 25 778s autopkgtest [16:20:53]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 778s autopkgtest [16:20:53]: @@@@@@@@@@@@@@@@@@@@ summary 778s pybuild-autopkgtest FAIL non-zero exit status 25 790s nova [W] Skipping flock for amd64 790s Creating nova instance adt-plucky-amd64-tiktoken-20241109-160755-juju-7f2275-prod-proposed-migration-environment-15-b3582668-c566-4867-be49-430a4f6cf607 from image adt/ubuntu-plucky-amd64-server-20241108.img (UUID 8e5f101b-f604-4dd5-a1be-68c34044e0a9)...