0s autopkgtest [09:20:33]: starting date and time: 2024-11-25 09:20:33+0000 0s autopkgtest [09:20:33]: git checkout: 0acbae0a WIP show VirtSubproc stderr in real-time 0s autopkgtest [09:20:33]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.hy33s5cd/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-1build1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-arm64-16.secgroup --name adt-plucky-arm64-tiktoken-20241125-092032-juju-7f2275-prod-proposed-migration-environment-2-7c7b0c6c-2ac0-45f0-9395-feb1bf60fa9e --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -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/ 91s autopkgtest [09:22:04]: testbed dpkg architecture: arm64 92s autopkgtest [09:22:05]: testbed apt version: 2.9.8 92s autopkgtest [09:22:05]: @@@@@@@@@@@@@@@@@@@@ test bed setup 93s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 93s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [797 kB] 93s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [49.6 kB] 93s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 93s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [14.2 kB] 93s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [78.7 kB] 93s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 Packages [57.8 kB] 93s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [621 kB] 93s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [19.3 kB] 94s Fetched 1721 kB in 1s (1934 kB/s) 94s Reading package lists... 97s Reading package lists... 98s Building dependency tree... 98s Reading state information... 99s Calculating upgrade... 100s The following package was automatically installed and is no longer required: 100s libsgutils2-1.46-2 100s Use 'sudo apt autoremove' to remove it. 100s The following NEW packages will be installed: 100s libsgutils2-1.48 100s The following packages will be upgraded: 100s bash bpftrace curl debconf debconf-i18n distro-info dracut-install 100s fwupd-signed gir1.2-girepository-2.0 gir1.2-glib-2.0 hostname init 100s init-system-helpers libaudit-common libaudit1 libcurl3t64-gnutls libcurl4t64 100s libgirepository-1.0-1 libglib2.0-0t64 libglib2.0-data liblzma5 100s libpam-modules libpam-modules-bin libpam-runtime libpam0g libplymouth5 100s libselinux1 libsemanage-common libsemanage2 linux-base lto-disabled-list 100s lxd-installer openssh-client openssh-server openssh-sftp-server 100s pinentry-curses plymouth plymouth-theme-ubuntu-text python3-blinker 100s python3-dbus python3-debconf python3-gi python3-jsonschema-specifications 100s python3-rpds-py python3-yaml sg3-utils sg3-utils-udev vim-common vim-tiny 100s xxd xz-utils 100s 51 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 100s Need to get 12.2 MB of archives. 100s After this operation, 2599 kB of additional disk space will be used. 100s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 bash arm64 5.2.32-1ubuntu2 [791 kB] 101s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 hostname arm64 3.25 [11.0 kB] 101s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 init-system-helpers all 1.67ubuntu1 [39.1 kB] 101s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 101s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 libaudit1 arm64 1:4.0.2-2ubuntu1 [54.2 kB] 101s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 debconf-i18n all 1.5.87ubuntu1 [204 kB] 101s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-debconf all 1.5.87ubuntu1 [4156 B] 101s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 debconf all 1.5.87ubuntu1 [124 kB] 101s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam0g arm64 1.5.3-7ubuntu4 [68.6 kB] 101s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 libselinux1 arm64 3.7-3ubuntu1 [81.6 kB] 101s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-modules-bin arm64 1.5.3-7ubuntu4 [50.4 kB] 101s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-modules arm64 1.5.3-7ubuntu4 [285 kB] 101s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 init arm64 1.67ubuntu1 [6428 B] 101s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-sftp-server arm64 1:9.9p1-3ubuntu2 [36.8 kB] 101s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-server arm64 1:9.9p1-3ubuntu2 [524 kB] 101s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-client arm64 1:9.9p1-3ubuntu2 [920 kB] 101s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 101s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 liblzma5 arm64 5.6.3-1 [138 kB] 101s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 libsemanage-common all 3.7-2build1 [7186 B] 101s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 libsemanage2 arm64 3.7-2build1 [92.2 kB] 101s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 distro-info arm64 1.12 [19.4 kB] 101s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 gir1.2-girepository-2.0 arm64 1.82.0-2 [25.2 kB] 101s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 gir1.2-glib-2.0 arm64 2.82.2-3 [182 kB] 101s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 libglib2.0-0t64 arm64 2.82.2-3 [1560 kB] 101s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 libgirepository-1.0-1 arm64 1.82.0-2 [83.0 kB] 101s Get:26 http://ftpmaster.internal/ubuntu plucky/main arm64 libglib2.0-data all 2.82.2-3 [51.7 kB] 101s Get:27 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-dbus arm64 1.3.2-5build4 [109 kB] 101s Get:28 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-gi arm64 3.50.0-3build1 [279 kB] 101s Get:29 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-yaml arm64 6.0.2-1build1 [164 kB] 101s Get:30 http://ftpmaster.internal/ubuntu plucky/main arm64 vim-tiny arm64 2:9.1.0861-1ubuntu1 [805 kB] 101s Get:31 http://ftpmaster.internal/ubuntu plucky/main arm64 vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 101s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 xxd arm64 2:9.1.0861-1ubuntu1 [67.3 kB] 101s Get:33 http://ftpmaster.internal/ubuntu plucky/main arm64 libplymouth5 arm64 24.004.60-2ubuntu4 [141 kB] 101s Get:34 http://ftpmaster.internal/ubuntu plucky/main arm64 plymouth-theme-ubuntu-text arm64 24.004.60-2ubuntu4 [9904 B] 101s Get:35 http://ftpmaster.internal/ubuntu plucky/main arm64 plymouth arm64 24.004.60-2ubuntu4 [135 kB] 101s Get:36 http://ftpmaster.internal/ubuntu plucky/main arm64 xz-utils arm64 5.6.3-1 [272 kB] 101s Get:37 http://ftpmaster.internal/ubuntu plucky/main arm64 bpftrace arm64 0.21.2-2ubuntu3 [1854 kB] 101s Get:38 http://ftpmaster.internal/ubuntu plucky/main arm64 curl arm64 8.11.0-1ubuntu2 [243 kB] 101s Get:39 http://ftpmaster.internal/ubuntu plucky/main arm64 libcurl4t64 arm64 8.11.0-1ubuntu2 [372 kB] 101s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 dracut-install arm64 105-2ubuntu2 [34.7 kB] 101s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 fwupd-signed arm64 1.55+1.7-1 [30.9 kB] 101s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 libcurl3t64-gnutls arm64 8.11.0-1ubuntu2 [367 kB] 101s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 libsgutils2-1.48 arm64 1.48-0ubuntu1 [118 kB] 101s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 linux-base all 4.10.1ubuntu1 [34.8 kB] 101s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 lto-disabled-list all 54 [12.2 kB] 101s Get:46 http://ftpmaster.internal/ubuntu plucky/main arm64 lxd-installer all 10 [5264 B] 101s Get:47 http://ftpmaster.internal/ubuntu plucky/main arm64 pinentry-curses arm64 1.3.1-0ubuntu2 [38.5 kB] 101s Get:48 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-blinker all 1.9.0-1 [10.7 kB] 101s Get:49 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-rpds-py arm64 0.21.0-2ubuntu1 [302 kB] 101s Get:50 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 101s Get:51 http://ftpmaster.internal/ubuntu plucky/main arm64 sg3-utils arm64 1.48-0ubuntu1 [999 kB] 101s Get:52 http://ftpmaster.internal/ubuntu plucky/main arm64 sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 102s Preconfiguring packages ... 102s Fetched 12.2 MB in 1s (9064 kB/s) 102s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../bash_5.2.32-1ubuntu2_arm64.deb ... 103s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 103s Setting up bash (5.2.32-1ubuntu2) ... 103s update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode 103s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../hostname_3.25_arm64.deb ... 103s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 103s Setting up hostname (3.25) ... 103s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../init-system-helpers_1.67ubuntu1_all.deb ... 103s Unpacking init-system-helpers (1.67ubuntu1) over (1.66ubuntu1) ... 103s Setting up init-system-helpers (1.67ubuntu1) ... 103s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 103s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 103s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 103s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_arm64.deb ... 103s Unpacking libaudit1:arm64 (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 103s Setting up libaudit1:arm64 (1:4.0.2-2ubuntu1) ... 103s (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 ... 80002 files and directories currently installed.) 103s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 103s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 103s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 104s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 104s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 104s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 104s Setting up debconf (1.5.87ubuntu1) ... 104s (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 ... 80002 files and directories currently installed.) 104s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_arm64.deb ... 104s Unpacking libpam0g:arm64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 104s Setting up libpam0g:arm64 (1.5.3-7ubuntu4) ... 104s (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 ... 80002 files and directories currently installed.) 104s Preparing to unpack .../libselinux1_3.7-3ubuntu1_arm64.deb ... 104s Unpacking libselinux1:arm64 (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 104s Setting up libselinux1:arm64 (3.7-3ubuntu1) ... 104s (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 ... 80002 files and directories currently installed.) 104s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_arm64.deb ... 104s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 104s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 105s pam_namespace.service is a disabled or a static unit not running, not starting it. 105s (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 ... 80002 files and directories currently installed.) 105s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_arm64.deb ... 105s Unpacking libpam-modules:arm64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 105s Setting up libpam-modules:arm64 (1.5.3-7ubuntu4) ... 105s (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 ... 80002 files and directories currently installed.) 105s Preparing to unpack .../init_1.67ubuntu1_arm64.deb ... 105s Unpacking init (1.67ubuntu1) over (1.66ubuntu1) ... 105s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_arm64.deb ... 105s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 105s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_arm64.deb ... 106s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 106s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_arm64.deb ... 106s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 106s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 106s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 106s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 106s (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 ... 80004 files and directories currently installed.) 106s Preparing to unpack .../liblzma5_5.6.3-1_arm64.deb ... 106s Unpacking liblzma5:arm64 (5.6.3-1) over (5.6.2-2) ... 106s Setting up liblzma5:arm64 (5.6.3-1) ... 106s (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 ... 80004 files and directories currently installed.) 106s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 106s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 106s Setting up libsemanage-common (3.7-2build1) ... 106s (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 ... 80003 files and directories currently installed.) 107s Preparing to unpack .../libsemanage2_3.7-2build1_arm64.deb ... 107s Unpacking libsemanage2:arm64 (3.7-2build1) over (3.5-1build6) ... 107s Setting up libsemanage2:arm64 (3.7-2build1) ... 107s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80003 files and directories currently installed.) 107s Preparing to unpack .../00-distro-info_1.12_arm64.deb ... 107s Unpacking distro-info (1.12) over (1.9) ... 107s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_arm64.deb ... 107s Unpacking gir1.2-girepository-2.0:arm64 (1.82.0-2) over (1.80.1-4) ... 107s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_arm64.deb ... 107s Unpacking gir1.2-glib-2.0:arm64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 107s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_arm64.deb ... 107s Unpacking libglib2.0-0t64:arm64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 107s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_arm64.deb ... 107s Unpacking libgirepository-1.0-1:arm64 (1.82.0-2) over (1.80.1-4) ... 107s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 107s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 107s Preparing to unpack .../06-python3-dbus_1.3.2-5build4_arm64.deb ... 107s Unpacking python3-dbus (1.3.2-5build4) over (1.3.2-5build3) ... 107s Preparing to unpack .../07-python3-gi_3.50.0-3build1_arm64.deb ... 107s Unpacking python3-gi (3.50.0-3build1) over (3.50.0-3) ... 107s Preparing to unpack .../08-python3-yaml_6.0.2-1build1_arm64.deb ... 108s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 108s Preparing to unpack .../09-vim-tiny_2%3a9.1.0861-1ubuntu1_arm64.deb ... 108s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 108s Preparing to unpack .../10-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 108s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 108s Preparing to unpack .../11-xxd_2%3a9.1.0861-1ubuntu1_arm64.deb ... 108s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 108s Preparing to unpack .../12-libplymouth5_24.004.60-2ubuntu4_arm64.deb ... 108s Unpacking libplymouth5:arm64 (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 108s Preparing to unpack .../13-plymouth-theme-ubuntu-text_24.004.60-2ubuntu4_arm64.deb ... 108s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 108s Preparing to unpack .../14-plymouth_24.004.60-2ubuntu4_arm64.deb ... 108s Unpacking plymouth (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 108s Preparing to unpack .../15-xz-utils_5.6.3-1_arm64.deb ... 108s Unpacking xz-utils (5.6.3-1) over (5.6.2-2) ... 108s Preparing to unpack .../16-bpftrace_0.21.2-2ubuntu3_arm64.deb ... 108s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 109s Preparing to unpack .../17-curl_8.11.0-1ubuntu2_arm64.deb ... 109s Unpacking curl (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 109s Preparing to unpack .../18-libcurl4t64_8.11.0-1ubuntu2_arm64.deb ... 109s Unpacking libcurl4t64:arm64 (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 109s Preparing to unpack .../19-dracut-install_105-2ubuntu2_arm64.deb ... 109s Unpacking dracut-install (105-2ubuntu2) over (105-1ubuntu1) ... 109s Preparing to unpack .../20-fwupd-signed_1.55+1.7-1_arm64.deb ... 109s Unpacking fwupd-signed (1.55+1.7-1) over (1.54+1.6-1build1) ... 109s Preparing to unpack .../21-libcurl3t64-gnutls_8.11.0-1ubuntu2_arm64.deb ... 109s Unpacking libcurl3t64-gnutls:arm64 (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 109s Selecting previously unselected package libsgutils2-1.48:arm64. 109s Preparing to unpack .../22-libsgutils2-1.48_1.48-0ubuntu1_arm64.deb ... 109s Unpacking libsgutils2-1.48:arm64 (1.48-0ubuntu1) ... 109s Preparing to unpack .../23-linux-base_4.10.1ubuntu1_all.deb ... 109s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 109s Preparing to unpack .../24-lto-disabled-list_54_all.deb ... 109s Unpacking lto-disabled-list (54) over (53) ... 109s Preparing to unpack .../25-lxd-installer_10_all.deb ... 109s Unpacking lxd-installer (10) over (9) ... 109s Preparing to unpack .../26-pinentry-curses_1.3.1-0ubuntu2_arm64.deb ... 109s Unpacking pinentry-curses (1.3.1-0ubuntu2) over (1.2.1-3ubuntu5) ... 109s Preparing to unpack .../27-python3-blinker_1.9.0-1_all.deb ... 109s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 109s Preparing to unpack .../28-python3-rpds-py_0.21.0-2ubuntu1_arm64.deb ... 110s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 110s Preparing to unpack .../29-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 110s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 110s Preparing to unpack .../30-sg3-utils_1.48-0ubuntu1_arm64.deb ... 110s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 110s Preparing to unpack .../31-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 110s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 110s Setting up pinentry-curses (1.3.1-0ubuntu2) ... 110s Setting up distro-info (1.12) ... 110s Setting up lto-disabled-list (54) ... 110s Setting up linux-base (4.10.1ubuntu1) ... 110s Setting up init (1.67ubuntu1) ... 110s Setting up libcurl4t64:arm64 (8.11.0-1ubuntu2) ... 110s Setting up bpftrace (0.21.2-2ubuntu3) ... 110s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 110s Setting up python3-debconf (1.5.87ubuntu1) ... 110s Setting up libcurl3t64-gnutls:arm64 (8.11.0-1ubuntu2) ... 110s Setting up fwupd-signed (1.55+1.7-1) ... 110s Setting up libsgutils2-1.48:arm64 (1.48-0ubuntu1) ... 110s Setting up python3-yaml (6.0.2-1build1) ... 111s Setting up debconf-i18n (1.5.87ubuntu1) ... 111s Setting up xxd (2:9.1.0861-1ubuntu1) ... 111s Setting up libglib2.0-0t64:arm64 (2.82.2-3) ... 111s No schema files found: doing nothing. 111s Setting up libglib2.0-data (2.82.2-3) ... 111s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 111s Setting up xz-utils (5.6.3-1) ... 111s Setting up gir1.2-glib-2.0:arm64 (2.82.2-3) ... 111s Setting up lxd-installer (10) ... 111s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 111s Setting up dracut-install (105-2ubuntu2) ... 111s Setting up libplymouth5:arm64 (24.004.60-2ubuntu4) ... 111s Setting up libgirepository-1.0-1:arm64 (1.82.0-2) ... 111s Setting up curl (8.11.0-1ubuntu2) ... 111s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 112s Setting up sg3-utils (1.48-0ubuntu1) ... 112s Setting up python3-blinker (1.9.0-1) ... 112s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 112s Setting up python3-dbus (1.3.2-5build4) ... 112s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 112s Installing new version of config file /etc/ssh/moduli ... 112s Replacing config file /etc/ssh/sshd_config with new version 114s Setting up plymouth (24.004.60-2ubuntu4) ... 114s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 114s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 114s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 114s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 114s update-initramfs: deferring update (trigger activated) 114s Setting up gir1.2-girepository-2.0:arm64 (1.82.0-2) ... 114s Setting up python3-gi (3.50.0-3build1) ... 115s Processing triggers for debianutils (5.21) ... 115s Processing triggers for install-info (7.1.1-1) ... 115s Processing triggers for initramfs-tools (0.142ubuntu35) ... 115s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 115s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 138s System running in EFI mode, skipping. 138s Processing triggers for libc-bin (2.40-1ubuntu3) ... 138s Processing triggers for ufw (0.36.2-8) ... 139s Processing triggers for man-db (2.13.0-1) ... 141s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu4) ... 141s Processing triggers for initramfs-tools (0.142ubuntu35) ... 141s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 141s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 162s System running in EFI mode, skipping. 162s Reading package lists... 163s Building dependency tree... 163s Reading state information... 164s The following packages will be REMOVED: 164s libsgutils2-1.46-2* 165s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 165s After this operation, 314 kB disk space will be freed. 165s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80036 files and directories currently installed.) 165s Removing libsgutils2-1.46-2:arm64 (1.46-3ubuntu5) ... 165s Processing triggers for libc-bin (2.40-1ubuntu3) ... 166s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 166s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 166s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 166s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 168s Reading package lists... 168s Reading package lists... 168s Building dependency tree... 168s Reading state information... 170s Calculating upgrade... 171s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 171s Reading package lists... 172s Building dependency tree... 172s Reading state information... 173s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 174s autopkgtest [09:23:27]: rebooting testbed after setup commands that affected boot 178s autopkgtest-virt-ssh: WARNING: ssh connection failed. Retrying in 3 seconds... 200s autopkgtest [09:23:53]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 14:19:41 UTC 2024 203s autopkgtest [09:23:56]: @@@@@@@@@@@@@@@@@@@@ apt-source tiktoken 205s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (dsc) [2247 B] 205s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (tar) [31.6 kB] 205s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (diff) [3908 B] 205s gpgv: Signature made Mon Nov 18 15:38:19 2024 UTC 205s gpgv: using RSA key 25E3FF2D7F469DBE7D0D4E50AFCFEC8E669CE1C2 205s gpgv: Can't check signature: No public key 205s dpkg-source: warning: cannot verify inline signature for ./tiktoken_0.8.0-1build1.dsc: no acceptable signature found 205s autopkgtest [09:23:58]: testing package tiktoken version 0.8.0-1build1 206s autopkgtest [09:23:59]: build not needed 206s autopkgtest [09:23:59]: test pybuild-autopkgtest: preparing testbed 208s Reading package lists... 208s Building dependency tree... 208s Reading state information... 208s Starting pkgProblemResolver with broken count: 0 209s Starting 2 pkgProblemResolver with broken count: 0 209s Done 210s The following additional packages will be installed: 210s autoconf automake autopoint autotools-dev binutils-mingw-w64-i686 210s binutils-mingw-w64-x86-64 build-essential cargo cargo-1.80 cmake cmake-data 210s cpp cpp-14 cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper 210s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz 210s fontconfig-config fonts-dejavu-core fonts-dejavu-mono g++ g++-14 210s g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14 210s gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 210s libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev libcc1-0 210s libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 210s libfontconfig-dev libfontconfig1 libfreetype-dev libgcc-14-dev libgit2-1.7 210s libgomp1 libhttp-parser2.9 libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 210s libmpc3 libpfm4 libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev 210s libpython3.12-dev librhash0 librust-ab-glyph-dev 210s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 210s librust-addr2line-dev librust-adler-dev librust-ahash-dev 210s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 210s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 210s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 210s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 210s librust-async-attributes-dev librust-async-channel-dev 210s librust-async-executor-dev librust-async-fs-dev 210s librust-async-global-executor-dev librust-async-io-dev 210s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 210s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 210s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 210s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 210s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 210s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 210s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 210s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 210s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 210s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 210s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 210s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 210s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 210s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 210s librust-color-quant-dev librust-colorchoice-dev 210s librust-compiler-builtins+core-dev 210s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 210s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 210s librust-const-random-dev librust-const-random-macro-dev 210s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 210s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 210s librust-critical-section-dev librust-crossbeam-deque-dev 210s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 210s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 210s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 210s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 210s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 210s librust-either-dev librust-env-logger-dev librust-equivalent-dev 210s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 210s librust-event-listener-dev librust-event-listener-strategy-dev 210s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 210s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 210s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 210s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 210s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 210s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 210s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 210s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 210s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 210s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 210s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 210s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 210s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 210s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 210s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 210s librust-libc-dev librust-libloading-dev librust-libm-dev 210s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 210s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 210s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 210s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 210s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 210s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 210s librust-num-threads-dev librust-num-traits-dev librust-object-dev 210s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 210s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 210s librust-parking-lot-dev librust-parse-zoneinfo-dev 210s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 210s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 210s librust-phf-generator-dev librust-phf-shared+uncased-dev 210s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 210s librust-pkg-config-dev librust-plotters-backend-dev 210s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 210s librust-png-dev librust-polling-dev librust-portable-atomic-dev 210s librust-postgres-derive-dev librust-postgres-protocol-dev 210s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 210s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 210s librust-ptr-meta-derive-dev librust-ptr-meta-dev 210s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 210s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 210s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 210s librust-quickcheck-dev librust-quote-dev librust-radium-dev 210s librust-rand-chacha-dev librust-rand-core+getrandom-dev 210s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 210s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 210s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 210s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 210s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 210s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 210s librust-rustc-version-dev librust-rustix-dev 210s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 210s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 210s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 210s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 210s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 210s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 210s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 210s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 210s librust-smol-str-dev librust-socket2-dev librust-spin-dev 210s librust-stable-deref-trait-dev librust-static-assertions-dev 210s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 210s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 210s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 210s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 210s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 210s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 210s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 210s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 210s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 210s librust-tokio-macros-dev librust-tracing-attributes-dev 210s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 210s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 210s librust-typenum-dev librust-unarray-dev librust-uncased-dev 210s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 210s librust-unicode-normalization-dev librust-unicode-segmentation-dev 210s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 210s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 210s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 210s librust-value-bag-sval2-dev librust-version-check-dev 210s librust-wait-timeout-dev librust-walkdir-dev 210s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 210s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 210s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 210s librust-wasm-bindgen-macro-support+spans-dev 210s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 210s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 210s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 210s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 210s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 210s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 210s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 210s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 210s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 210s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 210s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 210s python3-build python3-dateutil python3-hypothesis python3-iniconfig 210s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 210s python3-pytest python3-regex python3-semantic-version 210s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 210s python3-toml python3-wheel python3.12-dev rustc rustc-1.80 uuid-dev 210s zlib1g-dev 210s Suggested packages: 210s autoconf-archive gnu-standards autoconf-doc cargo-1.80-doc cmake-doc 210s cmake-format elpa-cmake-mode ninja-build cpp-doc gcc-14-locales cpp-14-doc 210s dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb gcc-doc 210s gdb-aarch64-linux-gnu gettext-doc libasprintf-dev libgettextpo-dev 210s freetype2-doc librust-adler+compiler-builtins-dev librust-adler+core-dev 210s librust-adler+rustc-dep-of-std-dev librust-backtrace+cpp-demangle-dev 210s librust-backtrace+rustc-serialize-dev librust-backtrace+serde-dev 210s librust-backtrace+verify-winapi-dev librust-backtrace+winapi-dev 210s librust-cfg-if-0.1+core-dev librust-cfg-if+core-dev 210s librust-compiler-builtins+c-dev gnuplot-nox librust-csv-core+libc-dev 210s librust-either+serde-dev librust-getrandom+compiler-builtins-dev 210s librust-getrandom+core-dev librust-getrandom+rustc-dep-of-std-dev 210s librust-phf+phf-macros-dev librust-phf+serde-dev librust-phf+unicase-dev 210s librust-phf-shared+unicase-dev librust-rand-xorshift+serde-dev 210s librust-rustc-demangle+compiler-builtins-dev librust-rustc-demangle+core-dev 210s librust-rustc-demangle+rustc-dep-of-std-dev librust-ryu+no-panic-dev 210s librust-slog+erased-serde-dev librust-tinyvec+arbitrary-dev 210s librust-tinyvec+serde-dev librust-uncased+serde-dev 210s librust-uncased+with-serde-alloc-dev 210s librust-wasm-bindgen-backend+extra-traits-dev librust-wasm-bindgen+serde-dev 210s librust-wasm-bindgen+serde-serialize-dev librust-wasm-bindgen+serde-json-dev 210s librust-wasm-bindgen+strict-macro-dev 210s librust-wasm-bindgen+xxx-debug-only-print-generated-code-dev 210s librust-wasm-bindgen-macro+strict-macro-dev 210s librust-wasm-bindgen-macro-support+extra-traits-dev librust-weezl+async-dev 210s librust-weezl+futures-dev libstdc++-14-doc libtool-doc gfortran 210s | fortran95-compiler gcj-jdk llvm-19-doc m4-doc libmail-box-perl python3-pip 210s python3-venv python-build-doc python-hypothesis-doc python-installer-doc 210s python-semantic-version-doc python-sortedcontainers-doc llvm-18 lld-18 210s clang-18 210s Recommended packages: 210s bzip2-doc libarchive-cpio-perl libpng-tools librust-phf+std-dev 210s librust-subtle+default-dev libltdl-dev llvm-19-dev libmail-sendmail-perl 210s python3-click 210s The following NEW packages will be installed: 210s autoconf automake autopkgtest-satdep autopoint autotools-dev 210s binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 build-essential cargo 210s cargo-1.80 cmake cmake-data cpp cpp-14 cpp-14-aarch64-linux-gnu 210s cpp-aarch64-linux-gnu debhelper debugedit dh-autoreconf dh-python 210s dh-strip-nondeterminism dwz fontconfig-config fonts-dejavu-core 210s fonts-dejavu-mono g++ g++-14 g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu 210s gcc gcc-14 gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext 210s intltool-debian libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev 210s libcc1-0 libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 210s libfontconfig-dev libfontconfig1 libfreetype-dev libgcc-14-dev libgit2-1.7 210s libgomp1 libhttp-parser2.9 libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 210s libmpc3 libpfm4 libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev 210s libpython3.12-dev librhash0 librust-ab-glyph-dev 210s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 210s librust-addr2line-dev librust-adler-dev librust-ahash-dev 210s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 210s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 210s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 210s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 210s librust-async-attributes-dev librust-async-channel-dev 210s librust-async-executor-dev librust-async-fs-dev 210s librust-async-global-executor-dev librust-async-io-dev 210s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 210s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 210s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 210s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 210s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 210s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 210s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 210s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 210s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 210s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 210s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 210s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 210s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 210s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 210s librust-color-quant-dev librust-colorchoice-dev 210s librust-compiler-builtins+core-dev 210s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 210s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 210s librust-const-random-dev librust-const-random-macro-dev 210s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 210s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 210s librust-critical-section-dev librust-crossbeam-deque-dev 210s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 210s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 210s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 210s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 210s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 210s librust-either-dev librust-env-logger-dev librust-equivalent-dev 210s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 210s librust-event-listener-dev librust-event-listener-strategy-dev 210s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 210s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 210s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 210s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 210s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 210s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 210s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 210s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 210s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 210s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 210s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 210s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 210s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 210s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 210s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 210s librust-libc-dev librust-libloading-dev librust-libm-dev 210s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 210s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 210s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 210s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 210s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 210s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 210s librust-num-threads-dev librust-num-traits-dev librust-object-dev 210s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 210s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 210s librust-parking-lot-dev librust-parse-zoneinfo-dev 210s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 210s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 210s librust-phf-generator-dev librust-phf-shared+uncased-dev 210s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 210s librust-pkg-config-dev librust-plotters-backend-dev 210s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 210s librust-png-dev librust-polling-dev librust-portable-atomic-dev 210s librust-postgres-derive-dev librust-postgres-protocol-dev 210s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 210s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 210s librust-ptr-meta-derive-dev librust-ptr-meta-dev 210s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 210s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 210s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 210s librust-quickcheck-dev librust-quote-dev librust-radium-dev 210s librust-rand-chacha-dev librust-rand-core+getrandom-dev 210s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 210s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 210s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 210s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 210s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 210s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 210s librust-rustc-version-dev librust-rustix-dev 210s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 210s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 210s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 210s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 210s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 210s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 210s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 210s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 210s librust-smol-str-dev librust-socket2-dev librust-spin-dev 210s librust-stable-deref-trait-dev librust-static-assertions-dev 210s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 210s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 210s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 210s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 210s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 210s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 210s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 210s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 210s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 210s librust-tokio-macros-dev librust-tracing-attributes-dev 210s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 210s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 210s librust-typenum-dev librust-unarray-dev librust-uncased-dev 210s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 210s librust-unicode-normalization-dev librust-unicode-segmentation-dev 210s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 210s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 210s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 210s librust-value-bag-sval2-dev librust-version-check-dev 210s librust-wait-timeout-dev librust-walkdir-dev 210s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 210s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 210s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 210s librust-wasm-bindgen-macro-support+spans-dev 210s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 210s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 210s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 210s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 210s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 210s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 210s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 210s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 210s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 210s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 210s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 210s python3-build python3-dateutil python3-hypothesis python3-iniconfig 210s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 210s python3-pytest python3-regex python3-semantic-version 210s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 210s python3-toml python3-wheel python3.12-dev rustc rustc-1.80 uuid-dev 210s zlib1g-dev 210s 0 upgraded, 467 newly installed, 0 to remove and 0 not upgraded. 210s Need to get 209 MB/209 MB of archives. 210s After this operation, 888 MB of additional disk space will be used. 210s Get:1 /tmp/autopkgtest.tkneb0/1-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [860 B] 210s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 m4 arm64 1.4.19-4build1 [240 kB] 210s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 autoconf all 2.72-3 [382 kB] 211s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 autotools-dev all 20220109.1 [44.9 kB] 211s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 automake all 1:1.16.5-1.3ubuntu1 [558 kB] 211s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 autopoint all 0.22.5-2 [616 kB] 211s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 libisl23 arm64 0.27-1 [676 kB] 211s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 libmpc3 arm64 1.3.1-1build2 [56.8 kB] 211s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [10.6 MB] 211s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14 arm64 14.2.0-8ubuntu1 [1028 B] 211s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [5452 B] 211s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp arm64 4:14.1.0-2ubuntu1 [22.5 kB] 211s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 libcc1-0 arm64 14.2.0-8ubuntu1 [49.7 kB] 211s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 libgomp1 arm64 14.2.0-8ubuntu1 [145 kB] 211s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 libitm1 arm64 14.2.0-8ubuntu1 [27.8 kB] 211s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 libasan8 arm64 14.2.0-8ubuntu1 [2893 kB] 211s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 liblsan0 arm64 14.2.0-8ubuntu1 [1283 kB] 211s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 libtsan2 arm64 14.2.0-8ubuntu1 [2686 kB] 211s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 libubsan1 arm64 14.2.0-8ubuntu1 [1151 kB] 211s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 libhwasan0 arm64 14.2.0-8ubuntu1 [1598 kB] 212s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 libgcc-14-dev arm64 14.2.0-8ubuntu1 [2594 kB] 212s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [20.9 MB] 212s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14 arm64 14.2.0-8ubuntu1 [518 kB] 212s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [1200 B] 212s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc arm64 4:14.1.0-2ubuntu1 [4994 B] 212s Get:26 http://ftpmaster.internal/ubuntu plucky/main arm64 libstdc++-14-dev arm64 14.2.0-8ubuntu1 [2476 kB] 212s Get:27 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [12.1 MB] 212s Get:28 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14 arm64 14.2.0-8ubuntu1 [19.9 kB] 212s Get:29 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [958 B] 212s Get:30 http://ftpmaster.internal/ubuntu plucky/main arm64 g++ arm64 4:14.1.0-2ubuntu1 [1080 B] 212s Get:31 http://ftpmaster.internal/ubuntu plucky/main arm64 build-essential arm64 12.10ubuntu1 [4932 B] 212s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 libhttp-parser2.9 arm64 2.9.4-6build1 [21.9 kB] 212s Get:33 http://ftpmaster.internal/ubuntu plucky/main arm64 libgit2-1.7 arm64 1.7.2+ds-1ubuntu3 [528 kB] 212s Get:34 http://ftpmaster.internal/ubuntu plucky/main arm64 libstd-rust-1.80 arm64 1.80.1+dfsg0ubuntu1-0ubuntu1 [20.0 MB] 213s Get:35 http://ftpmaster.internal/ubuntu plucky/main arm64 libstd-rust-1.80-dev arm64 1.80.1+dfsg0ubuntu1-0ubuntu1 [40.8 MB] 214s Get:36 http://ftpmaster.internal/ubuntu plucky/main arm64 rustc-1.80 arm64 1.80.1+dfsg0ubuntu1-0ubuntu1 [3139 kB] 214s Get:37 http://ftpmaster.internal/ubuntu plucky/main arm64 cargo-1.80 arm64 1.80.1+dfsg0ubuntu1-0ubuntu1 [5764 kB] 214s Get:38 http://ftpmaster.internal/ubuntu plucky/main arm64 libjsoncpp25 arm64 1.9.5-6build1 [78.2 kB] 214s Get:39 http://ftpmaster.internal/ubuntu plucky/main arm64 librhash0 arm64 1.4.3-3build1 [126 kB] 214s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 cmake-data all 3.30.3-1 [2246 kB] 214s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 cmake arm64 3.30.3-1 [10.9 MB] 215s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 215s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 libtool all 2.4.7-8 [166 kB] 215s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 dh-autoreconf all 20 [16.1 kB] 215s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 215s Get:46 http://ftpmaster.internal/ubuntu plucky/main arm64 libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 215s Get:47 http://ftpmaster.internal/ubuntu plucky/main arm64 dh-strip-nondeterminism all 1.14.0-1 [5058 B] 215s Get:48 http://ftpmaster.internal/ubuntu plucky/main arm64 debugedit arm64 1:5.1-1 [45.9 kB] 215s Get:49 http://ftpmaster.internal/ubuntu plucky/main arm64 dwz arm64 0.15-1build6 [113 kB] 215s Get:50 http://ftpmaster.internal/ubuntu plucky/main arm64 gettext arm64 0.22.5-2 [930 kB] 215s Get:51 http://ftpmaster.internal/ubuntu plucky/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 215s Get:52 http://ftpmaster.internal/ubuntu plucky/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 215s Get:53 http://ftpmaster.internal/ubuntu plucky/main arm64 debhelper all 13.20ubuntu1 [893 kB] 215s Get:54 http://ftpmaster.internal/ubuntu plucky/universe arm64 dh-python all 6.20241024 [112 kB] 215s Get:55 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-dejavu-mono all 2.37-8 [502 kB] 215s Get:56 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-dejavu-core all 2.37-8 [835 kB] 215s Get:57 http://ftpmaster.internal/ubuntu plucky/main arm64 fontconfig-config arm64 2.15.0-1.1ubuntu2 [37.4 kB] 215s Get:58 http://ftpmaster.internal/ubuntu plucky/main arm64 libbrotli-dev arm64 1.1.0-2build3 [359 kB] 215s Get:59 http://ftpmaster.internal/ubuntu plucky/main arm64 libbz2-dev arm64 1.0.8-6 [36.1 kB] 215s Get:60 http://ftpmaster.internal/ubuntu plucky/main arm64 libexpat1-dev arm64 2.6.4-1 [129 kB] 215s Get:61 http://ftpmaster.internal/ubuntu plucky/main arm64 libfontconfig1 arm64 2.15.0-1.1ubuntu2 [142 kB] 215s Get:62 http://ftpmaster.internal/ubuntu plucky/main arm64 zlib1g-dev arm64 1:1.3.dfsg+really1.3.1-1ubuntu1 [894 kB] 215s Get:63 http://ftpmaster.internal/ubuntu plucky/main arm64 libpng-dev arm64 1.6.44-2 [270 kB] 215s Get:64 http://ftpmaster.internal/ubuntu plucky/main arm64 libfreetype-dev arm64 2.13.3+dfsg-1 [574 kB] 215s Get:65 http://ftpmaster.internal/ubuntu plucky/main arm64 uuid-dev arm64 2.40.2-1ubuntu1 [53.6 kB] 215s Get:66 http://ftpmaster.internal/ubuntu plucky/main arm64 libpkgconf3 arm64 1.8.1-4 [31.4 kB] 215s Get:67 http://ftpmaster.internal/ubuntu plucky/main arm64 pkgconf-bin arm64 1.8.1-4 [20.9 kB] 215s Get:68 http://ftpmaster.internal/ubuntu plucky/main arm64 pkgconf arm64 1.8.1-4 [16.7 kB] 215s Get:69 http://ftpmaster.internal/ubuntu plucky/main arm64 libfontconfig-dev arm64 2.15.0-1.1ubuntu2 [165 kB] 215s Get:70 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3.12-dev arm64 3.12.7-3 [5565 kB] 215s Get:71 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3-dev arm64 3.12.6-0ubuntu1 [10.2 kB] 215s Get:72 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3-all-dev arm64 3.12.6-0ubuntu1 [916 B] 215s Get:73 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ab-glyph-rasterizer-dev arm64 0.1.7-1 [12.2 kB] 215s Get:74 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-libm-dev arm64 0.2.8-1 [101 kB] 215s Get:75 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ab-glyph-rasterizer+libm-dev arm64 0.1.7-1 [1062 B] 215s Get:76 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-core-maths-dev arm64 0.1.0-2 [7944 B] 215s Get:77 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ttf-parser-dev arm64 0.24.1-1 [148 kB] 215s Get:78 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-owned-ttf-parser-dev arm64 0.24.0-1 [129 kB] 215s Get:79 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ab-glyph-dev arm64 0.2.28-1 [20.7 kB] 215s Get:80 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cfg-if-dev arm64 1.0.0-1 [10.5 kB] 215s Get:81 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cpp-demangle-dev arm64 0.4.0-1 [66.1 kB] 215s Get:82 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-fallible-iterator-dev arm64 0.3.0-2 [20.3 kB] 215s Get:83 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicode-ident-dev arm64 1.0.13-1 [38.5 kB] 215s Get:84 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-proc-macro2-dev arm64 1.0.86-1 [44.8 kB] 215s Get:85 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-quote-dev arm64 1.0.37-1 [29.5 kB] 215s Get:86 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-syn-dev arm64 2.0.85-1 [219 kB] 215s Get:87 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-derive-arbitrary-dev arm64 1.3.2-1 [12.3 kB] 215s Get:88 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-arbitrary-dev arm64 1.3.2-1 [31.4 kB] 215s Get:89 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-equivalent-dev arm64 1.0.1-1 [8240 B] 215s Get:90 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-critical-section-dev arm64 1.1.3-1 [20.5 kB] 215s Get:91 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-serde-derive-dev arm64 1.0.210-1 [50.1 kB] 215s Get:92 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-serde-dev arm64 1.0.210-2 [66.4 kB] 215s Get:93 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-portable-atomic-dev arm64 1.9.0-4 [124 kB] 215s Get:94 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rustc-std-workspace-core-dev arm64 1.0.0-1 [3020 B] 215s Get:95 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-libc-dev arm64 0.2.161-1 [379 kB] 215s Get:96 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-getrandom-dev arm64 0.2.12-1 [36.4 kB] 215s Get:97 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-smallvec-dev arm64 1.13.2-1 [35.5 kB] 215s Get:98 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-parking-lot-core-dev arm64 0.9.10-1 [32.6 kB] 215s Get:99 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-once-cell-dev arm64 1.20.2-1 [31.9 kB] 215s Get:100 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crunchy-dev arm64 0.2.2-1 [5336 B] 215s Get:101 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tiny-keccak-dev arm64 2.0.2-1 [20.9 kB] 215s Get:102 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-const-random-macro-dev arm64 0.1.16-2 [10.5 kB] 215s Get:103 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-const-random-dev arm64 0.1.17-2 [8588 B] 215s Get:104 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-version-check-dev arm64 0.9.5-1 [16.9 kB] 216s Get:105 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-byteorder-dev arm64 1.5.0-1 [22.4 kB] 216s Get:106 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-zerocopy-derive-dev arm64 0.7.32-2 [29.7 kB] 216s Get:107 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-zerocopy-dev arm64 0.7.32-1 [116 kB] 216s Get:108 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ahash-dev all 0.8.11-8 [37.9 kB] 216s Get:109 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-allocator-api2-dev arm64 0.2.16-1 [54.8 kB] 216s Get:110 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-compiler-builtins-dev arm64 0.1.101-1 [156 kB] 216s Get:111 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-either-dev arm64 1.13.0-1 [20.2 kB] 216s Get:112 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crossbeam-utils-dev arm64 0.8.19-1 [41.1 kB] 216s Get:113 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crossbeam-epoch-dev arm64 0.9.18-1 [42.3 kB] 216s Get:114 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crossbeam-epoch+std-dev arm64 0.9.18-1 [1128 B] 216s Get:115 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crossbeam-deque-dev arm64 0.8.5-1 [22.4 kB] 216s Get:116 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rayon-core-dev arm64 1.12.1-1 [63.7 kB] 216s Get:117 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rayon-dev arm64 1.10.0-1 [149 kB] 216s Get:118 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-hashbrown-dev arm64 0.14.5-5 [110 kB] 216s Get:119 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-indexmap-dev arm64 2.2.6-1 [66.7 kB] 216s Get:120 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-stable-deref-trait-dev arm64 1.2.0-1 [9794 B] 216s Get:121 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-gimli-dev arm64 0.28.1-2 [209 kB] 216s Get:122 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-memmap2-dev arm64 0.9.3-1 [30.8 kB] 216s Get:123 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crc32fast-dev arm64 1.4.2-1 [39.8 kB] 216s Get:124 http://ftpmaster.internal/ubuntu plucky/main arm64 pkg-config arm64 1.8.1-4 [7362 B] 216s Get:125 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pkg-config-dev arm64 0.3.27-1 [21.5 kB] 216s Get:126 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-libz-sys-dev arm64 1.1.20-1 [19.8 kB] 216s Get:127 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-adler-dev arm64 1.0.2-2 [15.3 kB] 216s Get:128 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-miniz-oxide-dev arm64 0.7.1-1 [51.5 kB] 216s Get:129 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-flate2-dev arm64 1.0.34-1 [94.5 kB] 216s Get:130 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-derive-dev arm64 2.6.1-2 [11.0 kB] 216s Get:131 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-dev arm64 2.6.1-2 [28.0 kB] 216s Get:132 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-ref-dev arm64 2.6.1-1 [8942 B] 216s Get:133 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-erased-serde-dev arm64 0.3.31-1 [22.7 kB] 216s Get:134 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-serde-fmt-dev all 1.0.3-3 [6956 B] 216s Get:135 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-syn-1-dev arm64 1.0.109-2 [188 kB] 216s Get:136 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-no-panic-dev arm64 0.1.13-1 [11.3 kB] 216s Get:137 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-itoa-dev arm64 1.0.9-1 [13.1 kB] 216s Get:138 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ryu-dev arm64 1.0.15-1 [41.7 kB] 216s Get:139 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-serde-json-dev arm64 1.0.128-1 [128 kB] 216s Get:140 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-serde-test-dev arm64 1.0.171-1 [20.6 kB] 216s Get:141 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-value-bag-serde1-dev arm64 1.9.0-1 [7820 B] 216s Get:142 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-buffer-dev arm64 2.6.1-1 [16.7 kB] 216s Get:143 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-dynamic-dev arm64 2.6.1-1 [9540 B] 216s Get:144 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-fmt-dev arm64 2.6.1-1 [12.0 kB] 216s Get:145 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sval-serde-dev arm64 2.6.1-1 [13.2 kB] 216s Get:146 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-value-bag-sval2-dev arm64 1.9.0-1 [7860 B] 216s Get:147 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-value-bag-dev arm64 1.9.0-1 [37.6 kB] 216s Get:148 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-log-dev arm64 0.4.22-1 [43.0 kB] 216s Get:149 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-memchr-dev arm64 2.7.4-1 [71.8 kB] 216s Get:150 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ppv-lite86-dev arm64 0.2.16-1 [21.9 kB] 216s Get:151 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-core-dev arm64 0.6.4-2 [23.8 kB] 216s Get:152 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-chacha-dev arm64 0.3.1-2 [16.9 kB] 216s Get:153 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-core+getrandom-dev arm64 0.6.4-2 [1052 B] 216s Get:154 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-core+serde-dev arm64 0.6.4-2 [1108 B] 216s Get:155 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-core+std-dev arm64 0.6.4-2 [1050 B] 216s Get:156 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-dev arm64 0.8.5-1 [77.5 kB] 216s Get:157 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicode-segmentation-dev arm64 1.11.0-1 [74.2 kB] 216s Get:158 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-convert-case-dev arm64 0.6.0-2 [19.5 kB] 216s Get:159 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-semver-dev arm64 1.0.23-1 [30.6 kB] 216s Get:160 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rustc-version-dev arm64 0.4.0-1 [13.8 kB] 216s Get:161 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-derive-more-dev arm64 0.99.17-1 [50.0 kB] 216s Get:162 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cfg-if-0.1-dev arm64 0.1.10-2 [10.2 kB] 216s Get:163 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-blobby-dev arm64 0.3.1-1 [11.3 kB] 216s Get:164 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-typenum-dev arm64 1.17.0-2 [41.2 kB] 216s Get:165 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-zeroize-derive-dev arm64 1.4.2-1 [12.7 kB] 216s Get:166 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-zeroize-dev arm64 1.8.1-1 [21.6 kB] 216s Get:167 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-generic-array-dev arm64 0.14.7-1 [16.9 kB] 216s Get:168 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-block-buffer-dev arm64 0.10.2-2 [12.2 kB] 216s Get:169 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-const-oid-dev arm64 0.9.3-1 [40.9 kB] 216s Get:170 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-crypto-common-dev arm64 0.1.6-1 [10.5 kB] 216s Get:171 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-subtle-dev arm64 2.6.1-1 [16.1 kB] 216s Get:172 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-digest-dev arm64 0.10.7-2 [20.9 kB] 216s Get:173 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-static-assertions-dev arm64 1.1.0-1 [19.0 kB] 217s Get:174 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-twox-hash-dev arm64 1.6.3-1 [21.6 kB] 217s Get:175 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ruzstd-dev arm64 0.5.0-1 [44.6 kB] 217s Get:176 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-object-dev arm64 0.32.2-1 [228 kB] 217s Get:177 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rustc-demangle-dev arm64 0.1.21-1 [27.7 kB] 217s Get:178 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-addr2line-dev arm64 0.21.0-2 [36.4 kB] 217s Get:179 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-aho-corasick-dev arm64 1.1.3-1 [146 kB] 217s Get:180 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bitflags-1-dev arm64 1.3.2-5 [25.3 kB] 217s Get:181 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anes-dev arm64 0.1.6-1 [21.1 kB] 217s Get:182 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anstyle-dev arm64 1.0.8-1 [16.7 kB] 217s Get:183 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-arrayvec-dev arm64 0.7.4-2 [29.9 kB] 217s Get:184 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-utf8parse-dev arm64 0.2.1-1 [15.0 kB] 217s Get:185 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anstyle-parse-dev arm64 0.2.1-1 [17.1 kB] 217s Get:186 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anstyle-query-dev arm64 1.0.0-1 [9768 B] 217s Get:187 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-colorchoice-dev arm64 1.0.0-1 [8336 B] 217s Get:188 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anstream-dev arm64 0.6.15-1 [25.7 kB] 217s Get:189 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-jobserver-dev arm64 0.1.32-1 [29.1 kB] 217s Get:190 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-shlex-dev arm64 1.3.0-1 [20.1 kB] 217s Get:191 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cc-dev arm64 1.1.14-1 [73.6 kB] 217s Get:192 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-backtrace-dev arm64 0.3.69-2 [69.9 kB] 217s Get:193 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-anyhow-dev arm64 1.0.86-1 [44.3 kB] 217s Get:194 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bytecheck-derive-dev arm64 0.6.12-1 [7086 B] 217s Get:195 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ptr-meta-derive-dev arm64 0.1.4-1 [3964 B] 217s Get:196 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ptr-meta-dev arm64 0.1.4-1 [7342 B] 217s Get:197 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-simdutf8-dev arm64 0.1.4-4 [27.2 kB] 217s Get:198 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bytemuck-derive-dev arm64 1.5.0-2 [18.7 kB] 217s Get:199 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bytemuck-dev arm64 1.14.0-1 [42.7 kB] 217s Get:200 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-atomic-dev arm64 0.6.0-1 [15.5 kB] 217s Get:201 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-md5-asm-dev arm64 0.5.0-2 [7512 B] 217s Get:202 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-md-5-dev arm64 0.10.6-1 [17.5 kB] 217s Get:203 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cpufeatures-dev arm64 0.2.11-1 [14.9 kB] 217s Get:204 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sha1-asm-dev arm64 0.5.1-2 [8058 B] 217s Get:205 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sha1-dev arm64 0.10.6-1 [16.0 kB] 217s Get:206 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-slog-dev arm64 2.7.0-1 [44.0 kB] 217s Get:207 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-uuid-dev arm64 1.10.0-1 [44.2 kB] 217s Get:208 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bytecheck-dev arm64 0.6.12-1 [10.2 kB] 217s Get:209 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-autocfg-dev arm64 1.1.0-1 [15.1 kB] 217s Get:210 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-traits-dev arm64 0.2.19-2 [46.2 kB] 217s Get:211 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-funty-dev arm64 2.0.0-1 [13.8 kB] 217s Get:212 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-radium-dev arm64 1.1.0-1 [14.9 kB] 217s Get:213 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tap-dev arm64 1.0.1-1 [12.7 kB] 217s Get:214 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-traitobject-dev arm64 0.1.0-1 [4540 B] 217s Get:215 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unsafe-any-dev arm64 0.4.2-2 [4622 B] 217s Get:216 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-typemap-dev arm64 0.3.3-2 [6724 B] 217s Get:217 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wyz-dev arm64 0.5.1-1 [19.7 kB] 217s Get:218 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bitvec-dev arm64 1.0.1-1 [179 kB] 217s Get:219 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bytes-dev arm64 1.8.0-1 [56.9 kB] 217s Get:220 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rend-dev arm64 0.4.0-1 [10.3 kB] 217s Get:221 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rkyv-derive-dev arm64 0.7.44-1 [17.5 kB] 217s Get:222 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-seahash-dev arm64 4.1.0-1 [25.1 kB] 217s Get:223 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-smol-str-dev arm64 0.2.0-1 [15.2 kB] 217s Get:224 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tinyvec-dev arm64 1.6.0-2 [37.7 kB] 217s Get:225 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tinyvec-macros-dev arm64 0.1.0-1 [3852 B] 217s Get:226 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tinyvec+tinyvec-macros-dev arm64 1.6.0-2 [1124 B] 218s Get:227 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rkyv-dev arm64 0.7.44-1 [94.4 kB] 218s Get:228 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-complex-dev arm64 0.4.6-2 [30.8 kB] 218s Get:229 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-approx-dev arm64 0.5.1-1 [16.0 kB] 218s Get:230 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-array-init-dev arm64 2.0.1-1 [12.3 kB] 218s Get:231 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-attributes-dev all 1.1.2-6 [6756 B] 218s Get:232 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-concurrent-queue-dev arm64 2.5.0-4 [23.9 kB] 218s Get:233 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-parking-dev arm64 2.2.0-1 [11.6 kB] 218s Get:234 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pin-project-lite-dev arm64 0.2.13-1 [30.2 kB] 218s Get:235 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-event-listener-dev all 5.3.1-8 [29.6 kB] 218s Get:236 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-event-listener-strategy-dev arm64 0.5.2-3 [12.6 kB] 218s Get:237 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-core-dev arm64 0.3.30-1 [16.7 kB] 218s Get:238 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-channel-dev all 2.3.1-8 [13.1 kB] 218s Get:239 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-task-dev all 4.7.1-3 [29.4 kB] 218s Get:240 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-fastrand-dev arm64 2.1.1-1 [17.8 kB] 218s Get:241 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-io-dev arm64 0.3.31-1 [11.2 kB] 218s Get:242 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-lite-dev arm64 2.3.0-2 [38.6 kB] 218s Get:243 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-slab-dev arm64 0.4.9-1 [21.2 kB] 218s Get:244 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-executor-dev all 1.13.1-1 [18.7 kB] 218s Get:245 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-lock-dev all 3.4.0-4 [29.3 kB] 218s Get:246 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-atomic-waker-dev arm64 1.1.2-1 [14.3 kB] 218s Get:247 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tracing-attributes-dev arm64 0.1.27-1 [33.3 kB] 218s Get:248 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-valuable-derive-dev arm64 0.1.0-1 [5942 B] 218s Get:249 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-valuable-dev arm64 0.1.0-4 [23.5 kB] 218s Get:250 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tracing-core-dev arm64 0.1.32-1 [53.8 kB] 218s Get:251 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tracing-dev arm64 0.1.40-1 [69.5 kB] 218s Get:252 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-blocking-dev all 1.6.1-5 [17.5 kB] 218s Get:253 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-fs-dev all 2.1.2-4 [15.3 kB] 218s Get:254 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bitflags-dev arm64 2.6.0-1 [41.1 kB] 218s Get:255 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-compiler-builtins+core-dev arm64 0.1.101-1 [1090 B] 218s Get:256 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-compiler-builtins+rustc-dep-of-std-dev arm64 0.1.101-1 [1104 B] 218s Get:257 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-errno-dev arm64 0.3.8-1 [13.0 kB] 218s Get:258 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-linux-raw-sys-dev arm64 0.4.14-1 [138 kB] 218s Get:259 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rustix-dev arm64 0.38.32-1 [274 kB] 218s Get:260 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-polling-dev arm64 3.4.0-1 [47.8 kB] 218s Get:261 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-io-dev arm64 2.3.3-4 [41.0 kB] 218s Get:262 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-mio-dev arm64 1.0.2-2 [87.6 kB] 218s Get:263 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-owning-ref-dev arm64 0.4.1-1 [13.7 kB] 218s Get:264 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-scopeguard-dev arm64 1.2.0-1 [13.3 kB] 218s Get:265 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-lock-api-dev arm64 0.4.12-1 [22.9 kB] 218s Get:266 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-parking-lot-dev arm64 0.12.3-1 [38.7 kB] 218s Get:267 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-signal-hook-registry-dev arm64 1.4.0-1 [19.2 kB] 218s Get:268 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-socket2-dev arm64 0.5.7-1 [48.3 kB] 218s Get:269 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tokio-macros-dev arm64 2.4.0-2 [14.0 kB] 218s Get:270 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tokio-dev arm64 1.39.3-3 [561 kB] 218s Get:271 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-global-executor-dev arm64 2.4.1-5 [14.6 kB] 218s Get:272 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-net-dev all 2.0.0-4 [14.6 kB] 218s Get:273 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-signal-dev arm64 0.2.10-1 [16.0 kB] 218s Get:274 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-process-dev all 2.3.0-1 [21.2 kB] 218s Get:275 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-kv-log-macro-dev all 1.0.8-4 [7290 B] 218s Get:276 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pin-utils-dev arm64 0.1.0-1 [9340 B] 218s Get:277 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-async-std-dev all 1.13.0-1 [170 kB] 218s Get:278 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-base64-dev arm64 0.21.7-1 [65.1 kB] 218s Get:279 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bit-vec-dev arm64 0.6.3-1 [21.1 kB] 218s Get:280 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bit-set-dev arm64 0.5.2-1 [15.7 kB] 218s Get:281 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bit-set+std-dev arm64 0.5.2-1 [1084 B] 218s Get:282 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-regex-syntax-dev arm64 0.8.2-1 [200 kB] 218s Get:283 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-regex-automata-dev arm64 0.4.7-1 [424 kB] 218s Get:284 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bstr-dev arm64 1.7.0-2build1 [271 kB] 218s Get:285 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-bumpalo-dev arm64 3.16.0-1 [75.7 kB] 218s Get:286 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cast-dev arm64 0.3.0-1 [13.1 kB] 218s Get:287 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-iana-time-zone-dev arm64 0.1.60-1 [25.1 kB] 218s Get:288 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-shared-dev arm64 0.2.87-1 [9090 B] 218s Get:289 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-backend-dev arm64 0.2.87-1 [27.0 kB] 218s Get:290 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-macro-support-dev arm64 0.2.87-1 [21.2 kB] 218s Get:291 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-macro-dev arm64 0.2.87-1 [16.6 kB] 218s Get:292 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-dev arm64 0.2.87-1 [157 kB] 218s Get:293 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-macro-support+spans-dev arm64 0.2.87-1 [1074 B] 218s Get:294 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen-macro+spans-dev arm64 0.2.87-1 [1058 B] 218s Get:295 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen+spans-dev arm64 0.2.87-1 [1038 B] 218s Get:296 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wasm-bindgen+default-dev arm64 0.2.87-1 [1046 B] 218s Get:297 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-js-sys-dev arm64 0.3.64-1 [71.9 kB] 218s Get:298 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pure-rust-locales-dev arm64 0.8.1-1 [112 kB] 218s Get:299 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-chrono-dev arm64 0.4.38-2 [172 kB] 218s Get:300 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-regex-dev arm64 1.10.6-1 [199 kB] 218s Get:301 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-parse-zoneinfo-dev arm64 0.3.0-1 [71.0 kB] 219s Get:302 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-siphasher-dev arm64 0.3.10-1 [12.0 kB] 219s Get:303 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf-shared-dev arm64 0.11.2-1 [15.6 kB] 219s Get:304 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf-dev arm64 0.11.2-1 [21.6 kB] 219s Get:305 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-uncased-dev arm64 0.9.6-2 [12.2 kB] 219s Get:306 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf-shared+uncased-dev arm64 0.11.2-1 [1028 B] 219s Get:307 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf+uncased-dev arm64 0.11.2-1 [1028 B] 219s Get:308 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ciborium-io-dev arm64 0.2.2-1 [8180 B] 219s Get:309 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-half-dev arm64 1.8.2-4 [34.8 kB] 219s Get:310 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ciborium-ll-dev arm64 0.2.2-1 [15.8 kB] 219s Get:311 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ciborium-dev arm64 0.2.2-2 [32.6 kB] 219s Get:312 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-clap-lex-dev arm64 0.7.2-2 [14.3 kB] 219s Get:313 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-strsim-dev arm64 0.11.1-1 [15.9 kB] 219s Get:314 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-terminal-size-dev arm64 0.3.0-2 [12.6 kB] 219s Get:315 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicase-dev arm64 2.7.0-1 [19.4 kB] 219s Get:316 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicode-width-dev arm64 0.1.14-1 [196 kB] 219s Get:317 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-clap-builder-dev arm64 4.5.15-2 [135 kB] 219s Get:318 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-heck-dev arm64 0.4.1-1 [13.3 kB] 219s Get:319 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-clap-derive-dev arm64 4.5.13-2 [29.3 kB] 219s Get:320 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-clap-dev arm64 4.5.16-1 [52.3 kB] 219s Get:321 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-csv-core-dev arm64 0.1.11-1 [25.9 kB] 219s Get:322 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-csv-dev arm64 1.3.0-1 [729 kB] 219s Get:323 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-sink-dev arm64 0.3.31-1 [10.1 kB] 219s Get:324 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-channel-dev arm64 0.3.30-1 [31.8 kB] 219s Get:325 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-task-dev arm64 0.3.30-1 [13.5 kB] 219s Get:326 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-macro-dev arm64 0.3.30-1 [13.3 kB] 219s Get:327 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-util-dev arm64 0.3.30-2 [127 kB] 219s Get:328 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-cpus-dev arm64 1.16.0-1 [18.1 kB] 219s Get:329 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-executor-dev arm64 0.3.30-1 [19.8 kB] 219s Get:330 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-futures-dev arm64 0.3.30-2 [53.2 kB] 219s Get:331 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-is-terminal-dev arm64 0.4.13-1 [8264 B] 219s Get:332 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-itertools-dev arm64 0.10.5-1 [101 kB] 219s Get:333 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-oorandom-dev arm64 11.1.3-1 [11.3 kB] 219s Get:334 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-winapi-i686-pc-windows-gnu-dev arm64 0.4.0-1 [3652 B] 219s Get:335 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-winapi-x86-64-pc-windows-gnu-dev arm64 0.4.0-1 [3660 B] 219s Get:336 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-winapi-dev arm64 0.3.9-1 [953 kB] 219s Get:337 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-dirs-sys-next-dev arm64 0.1.1-1 [12.1 kB] 219s Get:338 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-dirs-next-dev arm64 2.0.0-1 [13.1 kB] 219s Get:339 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-float-ord-dev arm64 0.3.2-1 [9400 B] 219s Get:340 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-cmake-dev arm64 0.1.45-1 [16.0 kB] 219s Get:341 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-freetype-sys-dev arm64 0.13.1-1 [11.8 kB] 219s Get:342 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-freetype-dev arm64 0.7.0-4 [20.4 kB] 219s Get:343 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-spin-dev arm64 0.9.8-4 [33.4 kB] 219s Get:344 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-lazy-static-dev arm64 1.5.0-1 [14.2 kB] 219s Get:345 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pathfinder-simd-dev arm64 0.5.2-1 [20.1 kB] 220s Get:346 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pathfinder-geometry-dev arm64 0.5.1-1 [13.2 kB] 220s Get:347 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-winapi-util-dev arm64 0.1.6-1 [14.0 kB] 220s Get:348 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-same-file-dev arm64 1.0.6-1 [11.5 kB] 220s Get:349 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-walkdir-dev arm64 2.5.0-1 [24.5 kB] 220s Get:350 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-const-cstr-dev arm64 0.3.0-1 [9068 B] 220s Get:351 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-libloading-dev arm64 0.8.5-1 [29.2 kB] 220s Get:352 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-dlib-dev arm64 0.5.2-2 [7970 B] 220s Get:353 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-yeslogic-fontconfig-sys-dev arm64 3.0.1-1 [8110 B] 220s Get:354 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-font-kit-dev arm64 0.11.0-2 [56.2 kB] 220s Get:355 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-color-quant-dev arm64 1.1.0-1 [8462 B] 220s Get:356 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-weezl-dev arm64 0.1.5-1 [30.3 kB] 220s Get:357 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-gif-dev arm64 0.11.3-1 [31.9 kB] 220s Get:358 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-jpeg-decoder-dev arm64 0.3.0-1 [717 kB] 220s Get:359 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-integer-dev arm64 0.1.46-1 [22.6 kB] 220s Get:360 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-humantime-dev arm64 2.1.0-1 [18.2 kB] 220s Get:361 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-termcolor-dev arm64 1.4.1-1 [19.7 kB] 220s Get:362 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-env-logger-dev arm64 0.10.2-2 [34.4 kB] 220s Get:363 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-quickcheck-dev arm64 1.0.3-3 [27.9 kB] 220s Get:364 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-bigint-dev arm64 0.4.6-1 [84.9 kB] 220s Get:365 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-rational-dev arm64 0.4.2-1 [28.7 kB] 220s Get:366 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-png-dev arm64 0.17.7-3 [63.4 kB] 220s Get:367 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-qoi-dev arm64 0.4.1-2 [56.7 kB] 220s Get:368 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tiff-dev arm64 0.9.0-1 [1413 kB] 220s Get:369 http://ftpmaster.internal/ubuntu plucky/main arm64 libsharpyuv0 arm64 1.4.0-0.1 [16.3 kB] 220s Get:370 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebp7 arm64 1.4.0-0.1 [192 kB] 220s Get:371 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebpdemux2 arm64 1.4.0-0.1 [12.3 kB] 220s Get:372 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebpmux3 arm64 1.4.0-0.1 [25.1 kB] 220s Get:373 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebpdecoder3 arm64 1.4.0-0.1 [89.0 kB] 220s Get:374 http://ftpmaster.internal/ubuntu plucky/main arm64 libsharpyuv-dev arm64 1.4.0-0.1 [17.9 kB] 220s Get:375 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebp-dev arm64 1.4.0-0.1 [339 kB] 220s Get:376 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-libwebp-sys-dev arm64 0.9.5-1build1 [1357 kB] 220s Get:377 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-webp-dev arm64 0.2.6-1 [1846 kB] 220s Get:378 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-image-dev arm64 0.24.7-2 [229 kB] 220s Get:379 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-plotters-backend-dev arm64 0.3.7-1 [15.7 kB] 220s Get:380 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-plotters-bitmap-dev arm64 0.3.3-3 [17.1 kB] 220s Get:381 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-plotters-svg-dev arm64 0.3.5-1 [9258 B] 220s Get:382 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-web-sys-dev arm64 0.3.64-2 [581 kB] 220s Get:383 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-plotters-dev arm64 0.3.5-4 [118 kB] 220s Get:384 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-smol-dev all 2.0.2-1 [205 kB] 220s Get:385 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tinytemplate-dev arm64 1.2.1-1 [26.8 kB] 220s Get:386 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-criterion-dev all 0.5.1-6 [104 kB] 220s Get:387 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf-generator-dev arm64 0.11.2-2 [12.3 kB] 220s Get:388 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-phf-codegen-dev arm64 0.11.2-1 [14.3 kB] 220s Get:389 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-chrono-tz-build-dev arm64 0.2.1-1 [12.1 kB] 220s Get:390 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-chrono-tz-dev arm64 0.8.6-2 [513 kB] 220s Get:391 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ctor-dev arm64 0.1.26-1 [12.0 kB] 220s Get:392 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-powerfmt-macros-dev arm64 0.1.0-1 [10.5 kB] 220s Get:393 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-powerfmt-dev arm64 0.2.0-1 [16.5 kB] 220s Get:394 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-deranged-dev arm64 0.3.11-1 [18.4 kB] 220s Get:395 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-eui48-dev arm64 1.1.0-2 [16.1 kB] 220s Get:396 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-indenter-dev arm64 0.3.3-1 [8646 B] 220s Get:397 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-eyre-dev arm64 0.6.12-1 [38.0 kB] 220s Get:398 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-eyre+default-dev arm64 0.6.12-1 [1050 B] 220s Get:399 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-fancy-regex-dev arm64 0.11.0-2 [54.7 kB] 220s Get:400 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-fnv-dev arm64 1.0.7-1 [12.8 kB] 220s Get:401 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-geo-types-dev arm64 0.7.11-2 [32.8 kB] 220s Get:402 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-ghost-dev arm64 0.1.5-1 [16.1 kB] 220s Get:403 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-hmac-dev arm64 0.12.1-1 [43.9 kB] 221s Get:404 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-indoc-dev arm64 2.0.5-1 [16.7 kB] 221s Get:405 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-inventory-dev arm64 0.3.2-1 [13.5 kB] 221s Get:406 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-memoffset-dev arm64 0.8.0-1 [10.9 kB] 221s Get:407 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-conv-dev arm64 0.1.0-1 [8990 B] 221s Get:408 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-num-threads-dev arm64 0.1.7-1 [9150 B] 221s Get:409 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-postgres-derive-dev arm64 0.4.5-1 [13.4 kB] 221s Get:410 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sha2-asm-dev arm64 0.6.2-2 [14.4 kB] 221s Get:411 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-sha2-dev arm64 0.10.8-1 [25.6 kB] 221s Get:412 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicode-bidi-dev arm64 0.3.13-1 [39.8 kB] 221s Get:413 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unicode-normalization-dev arm64 0.1.22-1 [104 kB] 221s Get:414 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-stringprep-dev arm64 0.1.2-1 [16.5 kB] 221s Get:415 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-postgres-protocol-dev arm64 0.6.6-2 [25.9 kB] 221s Get:416 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-time-core-dev arm64 0.1.2-1 [9134 B] 221s Get:417 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-time-macros-dev arm64 0.2.16-1 [25.1 kB] 221s Get:418 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-time-dev arm64 0.3.36-2 [99.4 kB] 221s Get:419 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-postgres-types-dev arm64 0.2.6-2 [30.1 kB] 221s Get:420 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rand-xorshift-dev arm64 0.3.0-2 [10.9 kB] 221s Get:421 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-quick-error-dev arm64 2.0.1-1 [15.6 kB] 221s Get:422 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-tempfile-dev arm64 3.10.1-1 [33.7 kB] 221s Get:423 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rusty-fork-dev arm64 0.3.0-1 [20.4 kB] 221s Get:424 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-wait-timeout-dev arm64 0.2.0-1 [14.2 kB] 221s Get:425 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rusty-fork+wait-timeout-dev arm64 0.3.0-1 [1132 B] 221s Get:426 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unarray-dev arm64 0.1.4-1 [14.6 kB] 221s Get:427 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-proptest-dev arm64 1.5.0-2 [171 kB] 221s Get:428 http://ftpmaster.internal/ubuntu plucky/universe arm64 llvm-19-runtime arm64 1:19.1.2-1ubuntu1 [532 kB] 221s Get:429 http://ftpmaster.internal/ubuntu plucky/universe arm64 llvm-runtime arm64 1:19.0-60~exp1 [5608 B] 221s Get:430 http://ftpmaster.internal/ubuntu plucky/universe arm64 llvm-19-linker-tools arm64 1:19.1.2-1ubuntu1 [1232 kB] 221s Get:431 http://ftpmaster.internal/ubuntu plucky/universe arm64 libpfm4 arm64 4.13.0+git83-g91970fe-1 [71.9 kB] 221s Get:432 http://ftpmaster.internal/ubuntu plucky/universe arm64 llvm-19 arm64 1:19.1.2-1ubuntu1 [17.0 MB] 222s Get:433 http://ftpmaster.internal/ubuntu plucky/universe arm64 llvm arm64 1:19.0-60~exp1 [4140 B] 222s Get:434 http://ftpmaster.internal/ubuntu plucky/universe arm64 binutils-mingw-w64-x86-64 arm64 2.43.1-4ubuntu1+12 [3460 kB] 222s Get:435 http://ftpmaster.internal/ubuntu plucky/universe arm64 binutils-mingw-w64-i686 arm64 2.43.1-4ubuntu1+12 [3166 kB] 222s Get:436 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-python3-dll-a-dev arm64 0.2.10-1 [31.6 kB] 222s Get:437 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-target-lexicon-dev arm64 0.12.14-1 [25.1 kB] 222s Get:438 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pyo3-build-config-dev arm64 0.22.6-1 [30.8 kB] 222s Get:439 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.12-dev arm64 3.12.7-3 [505 kB] 222s Get:440 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pyo3-ffi-dev arm64 0.22.6-1build1 [62.6 kB] 222s Get:441 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pyo3-macros-backend-dev arm64 0.22.6-1 [58.5 kB] 222s Get:442 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pyo3-macros-dev arm64 0.22.6-1 [10.4 kB] 222s Get:443 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rust-decimal-dev arm64 1.36.0-1 [114 kB] 222s Get:444 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-unindent-dev arm64 0.2.3-1 [9188 B] 222s Get:445 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-pyo3-dev arm64 0.22.6-1 [415 kB] 222s Get:446 http://ftpmaster.internal/ubuntu plucky/universe arm64 librust-rustc-hash-dev arm64 1.1.0-1 [10.8 kB] 222s Get:447 http://ftpmaster.internal/ubuntu plucky/universe arm64 pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 222s Get:448 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-packaging all 24.2-1 [51.5 kB] 222s Get:449 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 222s Get:450 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-toml all 0.10.2-1 [16.5 kB] 222s Get:451 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-wheel all 0.45.1-1 [57.7 kB] 222s Get:452 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-build all 1.2.2-1 [31.0 kB] 222s Get:453 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 222s Get:454 http://ftpmaster.internal/ubuntu plucky/universe arm64 pybuild-plugin-pyproject all 6.20241024 [1728 B] 222s Get:455 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-all arm64 3.12.6-0ubuntu1 [886 B] 222s Get:456 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-dateutil all 2.9.0-3 [80.2 kB] 222s Get:457 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-sortedcontainers all 2.4.0-2 [27.6 kB] 222s Get:458 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-hypothesis all 6.119.3-1 [329 kB] 222s Get:459 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 222s Get:460 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pluggy all 1.5.0-1 [21.0 kB] 222s Get:461 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest all 8.3.3-1 [251 kB] 222s Get:462 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-regex arm64 0.1.20240724-1build1 [285 kB] 222s Get:463 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-semantic-version all 2.10.0-2 [15.1 kB] 222s Get:464 http://ftpmaster.internal/ubuntu plucky/main arm64 rustc arm64 1.80.1ubuntu2 [2754 B] 222s Get:465 http://ftpmaster.internal/ubuntu plucky/main arm64 cargo arm64 1.80.1ubuntu2 [2244 B] 222s Get:466 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-setuptools-rust all 1.9.0+dfsg-2 [23.1 kB] 222s Get:467 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-tiktoken arm64 0.8.0-1build1 [753 kB] 223s Fetched 209 MB in 12s (17.1 MB/s) 223s Selecting previously unselected package m4. 223s (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 ... 80031 files and directories currently installed.) 223s Preparing to unpack .../000-m4_1.4.19-4build1_arm64.deb ... 223s Unpacking m4 (1.4.19-4build1) ... 223s Selecting previously unselected package autoconf. 224s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 224s Unpacking autoconf (2.72-3) ... 224s Selecting previously unselected package autotools-dev. 224s Preparing to unpack .../002-autotools-dev_20220109.1_all.deb ... 224s Unpacking autotools-dev (20220109.1) ... 224s Selecting previously unselected package automake. 224s Preparing to unpack .../003-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 224s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 224s Selecting previously unselected package autopoint. 224s Preparing to unpack .../004-autopoint_0.22.5-2_all.deb ... 224s Unpacking autopoint (0.22.5-2) ... 224s Selecting previously unselected package libisl23:arm64. 224s Preparing to unpack .../005-libisl23_0.27-1_arm64.deb ... 224s Unpacking libisl23:arm64 (0.27-1) ... 224s Selecting previously unselected package libmpc3:arm64. 224s Preparing to unpack .../006-libmpc3_1.3.1-1build2_arm64.deb ... 224s Unpacking libmpc3:arm64 (1.3.1-1build2) ... 224s Selecting previously unselected package cpp-14-aarch64-linux-gnu. 224s Preparing to unpack .../007-cpp-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking cpp-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package cpp-14. 224s Preparing to unpack .../008-cpp-14_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package cpp-aarch64-linux-gnu. 224s Preparing to unpack .../009-cpp-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 224s Unpacking cpp-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 224s Selecting previously unselected package cpp. 224s Preparing to unpack .../010-cpp_4%3a14.1.0-2ubuntu1_arm64.deb ... 224s Unpacking cpp (4:14.1.0-2ubuntu1) ... 224s Selecting previously unselected package libcc1-0:arm64. 224s Preparing to unpack .../011-libcc1-0_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libcc1-0:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libgomp1:arm64. 224s Preparing to unpack .../012-libgomp1_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libgomp1:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libitm1:arm64. 224s Preparing to unpack .../013-libitm1_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libitm1:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libasan8:arm64. 224s Preparing to unpack .../014-libasan8_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libasan8:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package liblsan0:arm64. 224s Preparing to unpack .../015-liblsan0_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking liblsan0:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libtsan2:arm64. 224s Preparing to unpack .../016-libtsan2_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libtsan2:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libubsan1:arm64. 224s Preparing to unpack .../017-libubsan1_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libubsan1:arm64 (14.2.0-8ubuntu1) ... 224s Selecting previously unselected package libhwasan0:arm64. 224s Preparing to unpack .../018-libhwasan0_14.2.0-8ubuntu1_arm64.deb ... 224s Unpacking libhwasan0:arm64 (14.2.0-8ubuntu1) ... 225s Selecting previously unselected package libgcc-14-dev:arm64. 225s Preparing to unpack .../019-libgcc-14-dev_14.2.0-8ubuntu1_arm64.deb ... 225s Unpacking libgcc-14-dev:arm64 (14.2.0-8ubuntu1) ... 225s Selecting previously unselected package gcc-14-aarch64-linux-gnu. 225s Preparing to unpack .../020-gcc-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 225s Unpacking gcc-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 225s Selecting previously unselected package gcc-14. 225s Preparing to unpack .../021-gcc-14_14.2.0-8ubuntu1_arm64.deb ... 225s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 225s Selecting previously unselected package gcc-aarch64-linux-gnu. 225s Preparing to unpack .../022-gcc-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 225s Unpacking gcc-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 225s Selecting previously unselected package gcc. 225s Preparing to unpack .../023-gcc_4%3a14.1.0-2ubuntu1_arm64.deb ... 225s Unpacking gcc (4:14.1.0-2ubuntu1) ... 225s Selecting previously unselected package libstdc++-14-dev:arm64. 225s Preparing to unpack .../024-libstdc++-14-dev_14.2.0-8ubuntu1_arm64.deb ... 225s Unpacking libstdc++-14-dev:arm64 (14.2.0-8ubuntu1) ... 225s Selecting previously unselected package g++-14-aarch64-linux-gnu. 225s Preparing to unpack .../025-g++-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 225s Unpacking g++-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 226s Selecting previously unselected package g++-14. 226s Preparing to unpack .../026-g++-14_14.2.0-8ubuntu1_arm64.deb ... 226s Unpacking g++-14 (14.2.0-8ubuntu1) ... 226s Selecting previously unselected package g++-aarch64-linux-gnu. 226s Preparing to unpack .../027-g++-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 226s Unpacking g++-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 226s Selecting previously unselected package g++. 226s Preparing to unpack .../028-g++_4%3a14.1.0-2ubuntu1_arm64.deb ... 226s Unpacking g++ (4:14.1.0-2ubuntu1) ... 226s Selecting previously unselected package build-essential. 226s Preparing to unpack .../029-build-essential_12.10ubuntu1_arm64.deb ... 226s Unpacking build-essential (12.10ubuntu1) ... 226s Selecting previously unselected package libhttp-parser2.9:arm64. 226s Preparing to unpack .../030-libhttp-parser2.9_2.9.4-6build1_arm64.deb ... 226s Unpacking libhttp-parser2.9:arm64 (2.9.4-6build1) ... 226s Selecting previously unselected package libgit2-1.7:arm64. 226s Preparing to unpack .../031-libgit2-1.7_1.7.2+ds-1ubuntu3_arm64.deb ... 226s Unpacking libgit2-1.7:arm64 (1.7.2+ds-1ubuntu3) ... 226s Selecting previously unselected package libstd-rust-1.80:arm64. 226s Preparing to unpack .../032-libstd-rust-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_arm64.deb ... 226s Unpacking libstd-rust-1.80:arm64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 226s Selecting previously unselected package libstd-rust-1.80-dev:arm64. 226s Preparing to unpack .../033-libstd-rust-1.80-dev_1.80.1+dfsg0ubuntu1-0ubuntu1_arm64.deb ... 226s Unpacking libstd-rust-1.80-dev:arm64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 228s Selecting previously unselected package rustc-1.80. 228s Preparing to unpack .../034-rustc-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_arm64.deb ... 228s Unpacking rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 228s Selecting previously unselected package cargo-1.80. 228s Preparing to unpack .../035-cargo-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_arm64.deb ... 228s Unpacking cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 228s Selecting previously unselected package libjsoncpp25:arm64. 228s Preparing to unpack .../036-libjsoncpp25_1.9.5-6build1_arm64.deb ... 228s Unpacking libjsoncpp25:arm64 (1.9.5-6build1) ... 228s Selecting previously unselected package librhash0:arm64. 228s Preparing to unpack .../037-librhash0_1.4.3-3build1_arm64.deb ... 228s Unpacking librhash0:arm64 (1.4.3-3build1) ... 228s Selecting previously unselected package cmake-data. 228s Preparing to unpack .../038-cmake-data_3.30.3-1_all.deb ... 228s Unpacking cmake-data (3.30.3-1) ... 229s Selecting previously unselected package cmake. 229s Preparing to unpack .../039-cmake_3.30.3-1_arm64.deb ... 229s Unpacking cmake (3.30.3-1) ... 229s Selecting previously unselected package libdebhelper-perl. 229s Preparing to unpack .../040-libdebhelper-perl_13.20ubuntu1_all.deb ... 229s Unpacking libdebhelper-perl (13.20ubuntu1) ... 229s Selecting previously unselected package libtool. 229s Preparing to unpack .../041-libtool_2.4.7-8_all.deb ... 229s Unpacking libtool (2.4.7-8) ... 229s Selecting previously unselected package dh-autoreconf. 229s Preparing to unpack .../042-dh-autoreconf_20_all.deb ... 229s Unpacking dh-autoreconf (20) ... 229s Selecting previously unselected package libarchive-zip-perl. 229s Preparing to unpack .../043-libarchive-zip-perl_1.68-1_all.deb ... 229s Unpacking libarchive-zip-perl (1.68-1) ... 229s Selecting previously unselected package libfile-stripnondeterminism-perl. 229s Preparing to unpack .../044-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 229s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 229s Selecting previously unselected package dh-strip-nondeterminism. 229s Preparing to unpack .../045-dh-strip-nondeterminism_1.14.0-1_all.deb ... 229s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 229s Selecting previously unselected package debugedit. 229s Preparing to unpack .../046-debugedit_1%3a5.1-1_arm64.deb ... 229s Unpacking debugedit (1:5.1-1) ... 229s Selecting previously unselected package dwz. 229s Preparing to unpack .../047-dwz_0.15-1build6_arm64.deb ... 229s Unpacking dwz (0.15-1build6) ... 229s Selecting previously unselected package gettext. 229s Preparing to unpack .../048-gettext_0.22.5-2_arm64.deb ... 229s Unpacking gettext (0.22.5-2) ... 229s Selecting previously unselected package intltool-debian. 229s Preparing to unpack .../049-intltool-debian_0.35.0+20060710.6_all.deb ... 229s Unpacking intltool-debian (0.35.0+20060710.6) ... 229s Selecting previously unselected package po-debconf. 229s Preparing to unpack .../050-po-debconf_1.0.21+nmu1_all.deb ... 229s Unpacking po-debconf (1.0.21+nmu1) ... 229s Selecting previously unselected package debhelper. 229s Preparing to unpack .../051-debhelper_13.20ubuntu1_all.deb ... 229s Unpacking debhelper (13.20ubuntu1) ... 229s Selecting previously unselected package dh-python. 229s Preparing to unpack .../052-dh-python_6.20241024_all.deb ... 229s Unpacking dh-python (6.20241024) ... 229s Selecting previously unselected package fonts-dejavu-mono. 229s Preparing to unpack .../053-fonts-dejavu-mono_2.37-8_all.deb ... 229s Unpacking fonts-dejavu-mono (2.37-8) ... 230s Selecting previously unselected package fonts-dejavu-core. 230s Preparing to unpack .../054-fonts-dejavu-core_2.37-8_all.deb ... 230s Unpacking fonts-dejavu-core (2.37-8) ... 230s Selecting previously unselected package fontconfig-config. 230s Preparing to unpack .../055-fontconfig-config_2.15.0-1.1ubuntu2_arm64.deb ... 230s Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ... 230s Selecting previously unselected package libbrotli-dev:arm64. 230s Preparing to unpack .../056-libbrotli-dev_1.1.0-2build3_arm64.deb ... 230s Unpacking libbrotli-dev:arm64 (1.1.0-2build3) ... 230s Selecting previously unselected package libbz2-dev:arm64. 230s Preparing to unpack .../057-libbz2-dev_1.0.8-6_arm64.deb ... 230s Unpacking libbz2-dev:arm64 (1.0.8-6) ... 230s Selecting previously unselected package libexpat1-dev:arm64. 230s Preparing to unpack .../058-libexpat1-dev_2.6.4-1_arm64.deb ... 230s Unpacking libexpat1-dev:arm64 (2.6.4-1) ... 230s Selecting previously unselected package libfontconfig1:arm64. 230s Preparing to unpack .../059-libfontconfig1_2.15.0-1.1ubuntu2_arm64.deb ... 230s Unpacking libfontconfig1:arm64 (2.15.0-1.1ubuntu2) ... 230s Selecting previously unselected package zlib1g-dev:arm64. 230s Preparing to unpack .../060-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_arm64.deb ... 230s Unpacking zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 230s Selecting previously unselected package libpng-dev:arm64. 230s Preparing to unpack .../061-libpng-dev_1.6.44-2_arm64.deb ... 230s Unpacking libpng-dev:arm64 (1.6.44-2) ... 230s Selecting previously unselected package libfreetype-dev:arm64. 230s Preparing to unpack .../062-libfreetype-dev_2.13.3+dfsg-1_arm64.deb ... 230s Unpacking libfreetype-dev:arm64 (2.13.3+dfsg-1) ... 230s Selecting previously unselected package uuid-dev:arm64. 230s Preparing to unpack .../063-uuid-dev_2.40.2-1ubuntu1_arm64.deb ... 230s Unpacking uuid-dev:arm64 (2.40.2-1ubuntu1) ... 231s Selecting previously unselected package libpkgconf3:arm64. 231s Preparing to unpack .../064-libpkgconf3_1.8.1-4_arm64.deb ... 231s Unpacking libpkgconf3:arm64 (1.8.1-4) ... 231s Selecting previously unselected package pkgconf-bin. 231s Preparing to unpack .../065-pkgconf-bin_1.8.1-4_arm64.deb ... 231s Unpacking pkgconf-bin (1.8.1-4) ... 231s Selecting previously unselected package pkgconf:arm64. 231s Preparing to unpack .../066-pkgconf_1.8.1-4_arm64.deb ... 231s Unpacking pkgconf:arm64 (1.8.1-4) ... 231s Selecting previously unselected package libfontconfig-dev:arm64. 231s Preparing to unpack .../067-libfontconfig-dev_2.15.0-1.1ubuntu2_arm64.deb ... 231s Unpacking libfontconfig-dev:arm64 (2.15.0-1.1ubuntu2) ... 231s Selecting previously unselected package libpython3.12-dev:arm64. 231s Preparing to unpack .../068-libpython3.12-dev_3.12.7-3_arm64.deb ... 231s Unpacking libpython3.12-dev:arm64 (3.12.7-3) ... 231s Selecting previously unselected package libpython3-dev:arm64. 231s Preparing to unpack .../069-libpython3-dev_3.12.6-0ubuntu1_arm64.deb ... 231s Unpacking libpython3-dev:arm64 (3.12.6-0ubuntu1) ... 231s Selecting previously unselected package libpython3-all-dev:arm64. 231s Preparing to unpack .../070-libpython3-all-dev_3.12.6-0ubuntu1_arm64.deb ... 231s Unpacking libpython3-all-dev:arm64 (3.12.6-0ubuntu1) ... 231s Selecting previously unselected package librust-ab-glyph-rasterizer-dev:arm64. 231s Preparing to unpack .../071-librust-ab-glyph-rasterizer-dev_0.1.7-1_arm64.deb ... 231s Unpacking librust-ab-glyph-rasterizer-dev:arm64 (0.1.7-1) ... 231s Selecting previously unselected package librust-libm-dev:arm64. 231s Preparing to unpack .../072-librust-libm-dev_0.2.8-1_arm64.deb ... 231s Unpacking librust-libm-dev:arm64 (0.2.8-1) ... 231s Selecting previously unselected package librust-ab-glyph-rasterizer+libm-dev:arm64. 231s Preparing to unpack .../073-librust-ab-glyph-rasterizer+libm-dev_0.1.7-1_arm64.deb ... 231s Unpacking librust-ab-glyph-rasterizer+libm-dev:arm64 (0.1.7-1) ... 231s Selecting previously unselected package librust-core-maths-dev:arm64. 231s Preparing to unpack .../074-librust-core-maths-dev_0.1.0-2_arm64.deb ... 231s Unpacking librust-core-maths-dev:arm64 (0.1.0-2) ... 231s Selecting previously unselected package librust-ttf-parser-dev:arm64. 231s Preparing to unpack .../075-librust-ttf-parser-dev_0.24.1-1_arm64.deb ... 231s Unpacking librust-ttf-parser-dev:arm64 (0.24.1-1) ... 231s Selecting previously unselected package librust-owned-ttf-parser-dev:arm64. 231s Preparing to unpack .../076-librust-owned-ttf-parser-dev_0.24.0-1_arm64.deb ... 231s Unpacking librust-owned-ttf-parser-dev:arm64 (0.24.0-1) ... 231s Selecting previously unselected package librust-ab-glyph-dev:arm64. 231s Preparing to unpack .../077-librust-ab-glyph-dev_0.2.28-1_arm64.deb ... 231s Unpacking librust-ab-glyph-dev:arm64 (0.2.28-1) ... 231s Selecting previously unselected package librust-cfg-if-dev:arm64. 231s Preparing to unpack .../078-librust-cfg-if-dev_1.0.0-1_arm64.deb ... 231s Unpacking librust-cfg-if-dev:arm64 (1.0.0-1) ... 231s Selecting previously unselected package librust-cpp-demangle-dev:arm64. 231s Preparing to unpack .../079-librust-cpp-demangle-dev_0.4.0-1_arm64.deb ... 231s Unpacking librust-cpp-demangle-dev:arm64 (0.4.0-1) ... 232s Selecting previously unselected package librust-fallible-iterator-dev:arm64. 232s Preparing to unpack .../080-librust-fallible-iterator-dev_0.3.0-2_arm64.deb ... 232s Unpacking librust-fallible-iterator-dev:arm64 (0.3.0-2) ... 232s Selecting previously unselected package librust-unicode-ident-dev:arm64. 232s Preparing to unpack .../081-librust-unicode-ident-dev_1.0.13-1_arm64.deb ... 232s Unpacking librust-unicode-ident-dev:arm64 (1.0.13-1) ... 232s Selecting previously unselected package librust-proc-macro2-dev:arm64. 232s Preparing to unpack .../082-librust-proc-macro2-dev_1.0.86-1_arm64.deb ... 232s Unpacking librust-proc-macro2-dev:arm64 (1.0.86-1) ... 232s Selecting previously unselected package librust-quote-dev:arm64. 232s Preparing to unpack .../083-librust-quote-dev_1.0.37-1_arm64.deb ... 232s Unpacking librust-quote-dev:arm64 (1.0.37-1) ... 232s Selecting previously unselected package librust-syn-dev:arm64. 232s Preparing to unpack .../084-librust-syn-dev_2.0.85-1_arm64.deb ... 232s Unpacking librust-syn-dev:arm64 (2.0.85-1) ... 232s Selecting previously unselected package librust-derive-arbitrary-dev:arm64. 232s Preparing to unpack .../085-librust-derive-arbitrary-dev_1.3.2-1_arm64.deb ... 232s Unpacking librust-derive-arbitrary-dev:arm64 (1.3.2-1) ... 232s Selecting previously unselected package librust-arbitrary-dev:arm64. 232s Preparing to unpack .../086-librust-arbitrary-dev_1.3.2-1_arm64.deb ... 232s Unpacking librust-arbitrary-dev:arm64 (1.3.2-1) ... 232s Selecting previously unselected package librust-equivalent-dev:arm64. 232s Preparing to unpack .../087-librust-equivalent-dev_1.0.1-1_arm64.deb ... 232s Unpacking librust-equivalent-dev:arm64 (1.0.1-1) ... 232s Selecting previously unselected package librust-critical-section-dev:arm64. 232s Preparing to unpack .../088-librust-critical-section-dev_1.1.3-1_arm64.deb ... 232s Unpacking librust-critical-section-dev:arm64 (1.1.3-1) ... 232s Selecting previously unselected package librust-serde-derive-dev:arm64. 232s Preparing to unpack .../089-librust-serde-derive-dev_1.0.210-1_arm64.deb ... 232s Unpacking librust-serde-derive-dev:arm64 (1.0.210-1) ... 232s Selecting previously unselected package librust-serde-dev:arm64. 232s Preparing to unpack .../090-librust-serde-dev_1.0.210-2_arm64.deb ... 232s Unpacking librust-serde-dev:arm64 (1.0.210-2) ... 232s Selecting previously unselected package librust-portable-atomic-dev:arm64. 232s Preparing to unpack .../091-librust-portable-atomic-dev_1.9.0-4_arm64.deb ... 232s Unpacking librust-portable-atomic-dev:arm64 (1.9.0-4) ... 232s Selecting previously unselected package librust-rustc-std-workspace-core-dev:arm64. 232s Preparing to unpack .../092-librust-rustc-std-workspace-core-dev_1.0.0-1_arm64.deb ... 232s Unpacking librust-rustc-std-workspace-core-dev:arm64 (1.0.0-1) ... 232s Selecting previously unselected package librust-libc-dev:arm64. 232s Preparing to unpack .../093-librust-libc-dev_0.2.161-1_arm64.deb ... 232s Unpacking librust-libc-dev:arm64 (0.2.161-1) ... 232s Selecting previously unselected package librust-getrandom-dev:arm64. 232s Preparing to unpack .../094-librust-getrandom-dev_0.2.12-1_arm64.deb ... 232s Unpacking librust-getrandom-dev:arm64 (0.2.12-1) ... 232s Selecting previously unselected package librust-smallvec-dev:arm64. 232s Preparing to unpack .../095-librust-smallvec-dev_1.13.2-1_arm64.deb ... 232s Unpacking librust-smallvec-dev:arm64 (1.13.2-1) ... 232s Selecting previously unselected package librust-parking-lot-core-dev:arm64. 232s Preparing to unpack .../096-librust-parking-lot-core-dev_0.9.10-1_arm64.deb ... 232s Unpacking librust-parking-lot-core-dev:arm64 (0.9.10-1) ... 232s Selecting previously unselected package librust-once-cell-dev:arm64. 233s Preparing to unpack .../097-librust-once-cell-dev_1.20.2-1_arm64.deb ... 233s Unpacking librust-once-cell-dev:arm64 (1.20.2-1) ... 233s Selecting previously unselected package librust-crunchy-dev:arm64. 233s Preparing to unpack .../098-librust-crunchy-dev_0.2.2-1_arm64.deb ... 233s Unpacking librust-crunchy-dev:arm64 (0.2.2-1) ... 233s Selecting previously unselected package librust-tiny-keccak-dev:arm64. 233s Preparing to unpack .../099-librust-tiny-keccak-dev_2.0.2-1_arm64.deb ... 233s Unpacking librust-tiny-keccak-dev:arm64 (2.0.2-1) ... 233s Selecting previously unselected package librust-const-random-macro-dev:arm64. 233s Preparing to unpack .../100-librust-const-random-macro-dev_0.1.16-2_arm64.deb ... 233s Unpacking librust-const-random-macro-dev:arm64 (0.1.16-2) ... 233s Selecting previously unselected package librust-const-random-dev:arm64. 233s Preparing to unpack .../101-librust-const-random-dev_0.1.17-2_arm64.deb ... 233s Unpacking librust-const-random-dev:arm64 (0.1.17-2) ... 233s Selecting previously unselected package librust-version-check-dev:arm64. 233s Preparing to unpack .../102-librust-version-check-dev_0.9.5-1_arm64.deb ... 233s Unpacking librust-version-check-dev:arm64 (0.9.5-1) ... 233s Selecting previously unselected package librust-byteorder-dev:arm64. 233s Preparing to unpack .../103-librust-byteorder-dev_1.5.0-1_arm64.deb ... 233s Unpacking librust-byteorder-dev:arm64 (1.5.0-1) ... 233s Selecting previously unselected package librust-zerocopy-derive-dev:arm64. 233s Preparing to unpack .../104-librust-zerocopy-derive-dev_0.7.32-2_arm64.deb ... 233s Unpacking librust-zerocopy-derive-dev:arm64 (0.7.32-2) ... 233s Selecting previously unselected package librust-zerocopy-dev:arm64. 233s Preparing to unpack .../105-librust-zerocopy-dev_0.7.32-1_arm64.deb ... 233s Unpacking librust-zerocopy-dev:arm64 (0.7.32-1) ... 233s Selecting previously unselected package librust-ahash-dev. 233s Preparing to unpack .../106-librust-ahash-dev_0.8.11-8_all.deb ... 233s Unpacking librust-ahash-dev (0.8.11-8) ... 233s Selecting previously unselected package librust-allocator-api2-dev:arm64. 233s Preparing to unpack .../107-librust-allocator-api2-dev_0.2.16-1_arm64.deb ... 233s Unpacking librust-allocator-api2-dev:arm64 (0.2.16-1) ... 233s Selecting previously unselected package librust-compiler-builtins-dev:arm64. 233s Preparing to unpack .../108-librust-compiler-builtins-dev_0.1.101-1_arm64.deb ... 233s Unpacking librust-compiler-builtins-dev:arm64 (0.1.101-1) ... 233s Selecting previously unselected package librust-either-dev:arm64. 233s Preparing to unpack .../109-librust-either-dev_1.13.0-1_arm64.deb ... 233s Unpacking librust-either-dev:arm64 (1.13.0-1) ... 233s Selecting previously unselected package librust-crossbeam-utils-dev:arm64. 233s Preparing to unpack .../110-librust-crossbeam-utils-dev_0.8.19-1_arm64.deb ... 233s Unpacking librust-crossbeam-utils-dev:arm64 (0.8.19-1) ... 233s Selecting previously unselected package librust-crossbeam-epoch-dev:arm64. 233s Preparing to unpack .../111-librust-crossbeam-epoch-dev_0.9.18-1_arm64.deb ... 233s Unpacking librust-crossbeam-epoch-dev:arm64 (0.9.18-1) ... 233s Selecting previously unselected package librust-crossbeam-epoch+std-dev:arm64. 233s Preparing to unpack .../112-librust-crossbeam-epoch+std-dev_0.9.18-1_arm64.deb ... 233s Unpacking librust-crossbeam-epoch+std-dev:arm64 (0.9.18-1) ... 233s Selecting previously unselected package librust-crossbeam-deque-dev:arm64. 233s Preparing to unpack .../113-librust-crossbeam-deque-dev_0.8.5-1_arm64.deb ... 233s Unpacking librust-crossbeam-deque-dev:arm64 (0.8.5-1) ... 233s Selecting previously unselected package librust-rayon-core-dev:arm64. 233s Preparing to unpack .../114-librust-rayon-core-dev_1.12.1-1_arm64.deb ... 233s Unpacking librust-rayon-core-dev:arm64 (1.12.1-1) ... 233s Selecting previously unselected package librust-rayon-dev:arm64. 234s Preparing to unpack .../115-librust-rayon-dev_1.10.0-1_arm64.deb ... 234s Unpacking librust-rayon-dev:arm64 (1.10.0-1) ... 234s Selecting previously unselected package librust-hashbrown-dev:arm64. 234s Preparing to unpack .../116-librust-hashbrown-dev_0.14.5-5_arm64.deb ... 234s Unpacking librust-hashbrown-dev:arm64 (0.14.5-5) ... 234s Selecting previously unselected package librust-indexmap-dev:arm64. 234s Preparing to unpack .../117-librust-indexmap-dev_2.2.6-1_arm64.deb ... 234s Unpacking librust-indexmap-dev:arm64 (2.2.6-1) ... 234s Selecting previously unselected package librust-stable-deref-trait-dev:arm64. 234s Preparing to unpack .../118-librust-stable-deref-trait-dev_1.2.0-1_arm64.deb ... 234s Unpacking librust-stable-deref-trait-dev:arm64 (1.2.0-1) ... 234s Selecting previously unselected package librust-gimli-dev:arm64. 234s Preparing to unpack .../119-librust-gimli-dev_0.28.1-2_arm64.deb ... 234s Unpacking librust-gimli-dev:arm64 (0.28.1-2) ... 234s Selecting previously unselected package librust-memmap2-dev:arm64. 234s Preparing to unpack .../120-librust-memmap2-dev_0.9.3-1_arm64.deb ... 234s Unpacking librust-memmap2-dev:arm64 (0.9.3-1) ... 234s Selecting previously unselected package librust-crc32fast-dev:arm64. 234s Preparing to unpack .../121-librust-crc32fast-dev_1.4.2-1_arm64.deb ... 234s Unpacking librust-crc32fast-dev:arm64 (1.4.2-1) ... 234s Selecting previously unselected package pkg-config:arm64. 234s Preparing to unpack .../122-pkg-config_1.8.1-4_arm64.deb ... 234s Unpacking pkg-config:arm64 (1.8.1-4) ... 234s Selecting previously unselected package librust-pkg-config-dev:arm64. 234s Preparing to unpack .../123-librust-pkg-config-dev_0.3.27-1_arm64.deb ... 234s Unpacking librust-pkg-config-dev:arm64 (0.3.27-1) ... 234s Selecting previously unselected package librust-libz-sys-dev:arm64. 234s Preparing to unpack .../124-librust-libz-sys-dev_1.1.20-1_arm64.deb ... 234s Unpacking librust-libz-sys-dev:arm64 (1.1.20-1) ... 234s Selecting previously unselected package librust-adler-dev:arm64. 234s Preparing to unpack .../125-librust-adler-dev_1.0.2-2_arm64.deb ... 234s Unpacking librust-adler-dev:arm64 (1.0.2-2) ... 234s Selecting previously unselected package librust-miniz-oxide-dev:arm64. 234s Preparing to unpack .../126-librust-miniz-oxide-dev_0.7.1-1_arm64.deb ... 234s Unpacking librust-miniz-oxide-dev:arm64 (0.7.1-1) ... 234s Selecting previously unselected package librust-flate2-dev:arm64. 234s Preparing to unpack .../127-librust-flate2-dev_1.0.34-1_arm64.deb ... 234s Unpacking librust-flate2-dev:arm64 (1.0.34-1) ... 234s Selecting previously unselected package librust-sval-derive-dev:arm64. 234s Preparing to unpack .../128-librust-sval-derive-dev_2.6.1-2_arm64.deb ... 234s Unpacking librust-sval-derive-dev:arm64 (2.6.1-2) ... 234s Selecting previously unselected package librust-sval-dev:arm64. 234s Preparing to unpack .../129-librust-sval-dev_2.6.1-2_arm64.deb ... 234s Unpacking librust-sval-dev:arm64 (2.6.1-2) ... 234s Selecting previously unselected package librust-sval-ref-dev:arm64. 234s Preparing to unpack .../130-librust-sval-ref-dev_2.6.1-1_arm64.deb ... 234s Unpacking librust-sval-ref-dev:arm64 (2.6.1-1) ... 234s Selecting previously unselected package librust-erased-serde-dev:arm64. 234s Preparing to unpack .../131-librust-erased-serde-dev_0.3.31-1_arm64.deb ... 234s Unpacking librust-erased-serde-dev:arm64 (0.3.31-1) ... 234s Selecting previously unselected package librust-serde-fmt-dev. 234s Preparing to unpack .../132-librust-serde-fmt-dev_1.0.3-3_all.deb ... 234s Unpacking librust-serde-fmt-dev (1.0.3-3) ... 234s Selecting previously unselected package librust-syn-1-dev:arm64. 234s Preparing to unpack .../133-librust-syn-1-dev_1.0.109-2_arm64.deb ... 234s Unpacking librust-syn-1-dev:arm64 (1.0.109-2) ... 235s Selecting previously unselected package librust-no-panic-dev:arm64. 235s Preparing to unpack .../134-librust-no-panic-dev_0.1.13-1_arm64.deb ... 235s Unpacking librust-no-panic-dev:arm64 (0.1.13-1) ... 235s Selecting previously unselected package librust-itoa-dev:arm64. 235s Preparing to unpack .../135-librust-itoa-dev_1.0.9-1_arm64.deb ... 235s Unpacking librust-itoa-dev:arm64 (1.0.9-1) ... 235s Selecting previously unselected package librust-ryu-dev:arm64. 235s Preparing to unpack .../136-librust-ryu-dev_1.0.15-1_arm64.deb ... 235s Unpacking librust-ryu-dev:arm64 (1.0.15-1) ... 235s Selecting previously unselected package librust-serde-json-dev:arm64. 235s Preparing to unpack .../137-librust-serde-json-dev_1.0.128-1_arm64.deb ... 235s Unpacking librust-serde-json-dev:arm64 (1.0.128-1) ... 235s Selecting previously unselected package librust-serde-test-dev:arm64. 235s Preparing to unpack .../138-librust-serde-test-dev_1.0.171-1_arm64.deb ... 235s Unpacking librust-serde-test-dev:arm64 (1.0.171-1) ... 235s Selecting previously unselected package librust-value-bag-serde1-dev:arm64. 235s Preparing to unpack .../139-librust-value-bag-serde1-dev_1.9.0-1_arm64.deb ... 235s Unpacking librust-value-bag-serde1-dev:arm64 (1.9.0-1) ... 235s Selecting previously unselected package librust-sval-buffer-dev:arm64. 235s Preparing to unpack .../140-librust-sval-buffer-dev_2.6.1-1_arm64.deb ... 235s Unpacking librust-sval-buffer-dev:arm64 (2.6.1-1) ... 235s Selecting previously unselected package librust-sval-dynamic-dev:arm64. 235s Preparing to unpack .../141-librust-sval-dynamic-dev_2.6.1-1_arm64.deb ... 235s Unpacking librust-sval-dynamic-dev:arm64 (2.6.1-1) ... 235s Selecting previously unselected package librust-sval-fmt-dev:arm64. 235s Preparing to unpack .../142-librust-sval-fmt-dev_2.6.1-1_arm64.deb ... 235s Unpacking librust-sval-fmt-dev:arm64 (2.6.1-1) ... 235s Selecting previously unselected package librust-sval-serde-dev:arm64. 235s Preparing to unpack .../143-librust-sval-serde-dev_2.6.1-1_arm64.deb ... 235s Unpacking librust-sval-serde-dev:arm64 (2.6.1-1) ... 235s Selecting previously unselected package librust-value-bag-sval2-dev:arm64. 235s Preparing to unpack .../144-librust-value-bag-sval2-dev_1.9.0-1_arm64.deb ... 235s Unpacking librust-value-bag-sval2-dev:arm64 (1.9.0-1) ... 235s Selecting previously unselected package librust-value-bag-dev:arm64. 235s Preparing to unpack .../145-librust-value-bag-dev_1.9.0-1_arm64.deb ... 235s Unpacking librust-value-bag-dev:arm64 (1.9.0-1) ... 235s Selecting previously unselected package librust-log-dev:arm64. 235s Preparing to unpack .../146-librust-log-dev_0.4.22-1_arm64.deb ... 235s Unpacking librust-log-dev:arm64 (0.4.22-1) ... 235s Selecting previously unselected package librust-memchr-dev:arm64. 235s Preparing to unpack .../147-librust-memchr-dev_2.7.4-1_arm64.deb ... 235s Unpacking librust-memchr-dev:arm64 (2.7.4-1) ... 235s Selecting previously unselected package librust-ppv-lite86-dev:arm64. 235s Preparing to unpack .../148-librust-ppv-lite86-dev_0.2.16-1_arm64.deb ... 235s Unpacking librust-ppv-lite86-dev:arm64 (0.2.16-1) ... 235s Selecting previously unselected package librust-rand-core-dev:arm64. 235s Preparing to unpack .../149-librust-rand-core-dev_0.6.4-2_arm64.deb ... 235s Unpacking librust-rand-core-dev:arm64 (0.6.4-2) ... 235s Selecting previously unselected package librust-rand-chacha-dev:arm64. 235s Preparing to unpack .../150-librust-rand-chacha-dev_0.3.1-2_arm64.deb ... 235s Unpacking librust-rand-chacha-dev:arm64 (0.3.1-2) ... 236s Selecting previously unselected package librust-rand-core+getrandom-dev:arm64. 236s Preparing to unpack .../151-librust-rand-core+getrandom-dev_0.6.4-2_arm64.deb ... 236s Unpacking librust-rand-core+getrandom-dev:arm64 (0.6.4-2) ... 236s Selecting previously unselected package librust-rand-core+serde-dev:arm64. 236s Preparing to unpack .../152-librust-rand-core+serde-dev_0.6.4-2_arm64.deb ... 236s Unpacking librust-rand-core+serde-dev:arm64 (0.6.4-2) ... 236s Selecting previously unselected package librust-rand-core+std-dev:arm64. 236s Preparing to unpack .../153-librust-rand-core+std-dev_0.6.4-2_arm64.deb ... 236s Unpacking librust-rand-core+std-dev:arm64 (0.6.4-2) ... 236s Selecting previously unselected package librust-rand-dev:arm64. 236s Preparing to unpack .../154-librust-rand-dev_0.8.5-1_arm64.deb ... 236s Unpacking librust-rand-dev:arm64 (0.8.5-1) ... 236s Selecting previously unselected package librust-unicode-segmentation-dev:arm64. 236s Preparing to unpack .../155-librust-unicode-segmentation-dev_1.11.0-1_arm64.deb ... 236s Unpacking librust-unicode-segmentation-dev:arm64 (1.11.0-1) ... 236s Selecting previously unselected package librust-convert-case-dev:arm64. 236s Preparing to unpack .../156-librust-convert-case-dev_0.6.0-2_arm64.deb ... 236s Unpacking librust-convert-case-dev:arm64 (0.6.0-2) ... 236s Selecting previously unselected package librust-semver-dev:arm64. 236s Preparing to unpack .../157-librust-semver-dev_1.0.23-1_arm64.deb ... 236s Unpacking librust-semver-dev:arm64 (1.0.23-1) ... 236s Selecting previously unselected package librust-rustc-version-dev:arm64. 236s Preparing to unpack .../158-librust-rustc-version-dev_0.4.0-1_arm64.deb ... 236s Unpacking librust-rustc-version-dev:arm64 (0.4.0-1) ... 236s Selecting previously unselected package librust-derive-more-dev:arm64. 236s Preparing to unpack .../159-librust-derive-more-dev_0.99.17-1_arm64.deb ... 236s Unpacking librust-derive-more-dev:arm64 (0.99.17-1) ... 236s Selecting previously unselected package librust-cfg-if-0.1-dev:arm64. 236s Preparing to unpack .../160-librust-cfg-if-0.1-dev_0.1.10-2_arm64.deb ... 236s Unpacking librust-cfg-if-0.1-dev:arm64 (0.1.10-2) ... 236s Selecting previously unselected package librust-blobby-dev:arm64. 236s Preparing to unpack .../161-librust-blobby-dev_0.3.1-1_arm64.deb ... 236s Unpacking librust-blobby-dev:arm64 (0.3.1-1) ... 236s Selecting previously unselected package librust-typenum-dev:arm64. 236s Preparing to unpack .../162-librust-typenum-dev_1.17.0-2_arm64.deb ... 236s Unpacking librust-typenum-dev:arm64 (1.17.0-2) ... 236s Selecting previously unselected package librust-zeroize-derive-dev:arm64. 236s Preparing to unpack .../163-librust-zeroize-derive-dev_1.4.2-1_arm64.deb ... 236s Unpacking librust-zeroize-derive-dev:arm64 (1.4.2-1) ... 236s Selecting previously unselected package librust-zeroize-dev:arm64. 236s Preparing to unpack .../164-librust-zeroize-dev_1.8.1-1_arm64.deb ... 236s Unpacking librust-zeroize-dev:arm64 (1.8.1-1) ... 236s Selecting previously unselected package librust-generic-array-dev:arm64. 236s Preparing to unpack .../165-librust-generic-array-dev_0.14.7-1_arm64.deb ... 236s Unpacking librust-generic-array-dev:arm64 (0.14.7-1) ... 236s Selecting previously unselected package librust-block-buffer-dev:arm64. 236s Preparing to unpack .../166-librust-block-buffer-dev_0.10.2-2_arm64.deb ... 236s Unpacking librust-block-buffer-dev:arm64 (0.10.2-2) ... 236s Selecting previously unselected package librust-const-oid-dev:arm64. 236s Preparing to unpack .../167-librust-const-oid-dev_0.9.3-1_arm64.deb ... 236s Unpacking librust-const-oid-dev:arm64 (0.9.3-1) ... 236s Selecting previously unselected package librust-crypto-common-dev:arm64. 236s Preparing to unpack .../168-librust-crypto-common-dev_0.1.6-1_arm64.deb ... 236s Unpacking librust-crypto-common-dev:arm64 (0.1.6-1) ... 236s Selecting previously unselected package librust-subtle-dev:arm64. 236s Preparing to unpack .../169-librust-subtle-dev_2.6.1-1_arm64.deb ... 236s Unpacking librust-subtle-dev:arm64 (2.6.1-1) ... 236s Selecting previously unselected package librust-digest-dev:arm64. 236s Preparing to unpack .../170-librust-digest-dev_0.10.7-2_arm64.deb ... 236s Unpacking librust-digest-dev:arm64 (0.10.7-2) ... 237s Selecting previously unselected package librust-static-assertions-dev:arm64. 237s Preparing to unpack .../171-librust-static-assertions-dev_1.1.0-1_arm64.deb ... 237s Unpacking librust-static-assertions-dev:arm64 (1.1.0-1) ... 237s Selecting previously unselected package librust-twox-hash-dev:arm64. 237s Preparing to unpack .../172-librust-twox-hash-dev_1.6.3-1_arm64.deb ... 237s Unpacking librust-twox-hash-dev:arm64 (1.6.3-1) ... 237s Selecting previously unselected package librust-ruzstd-dev:arm64. 237s Preparing to unpack .../173-librust-ruzstd-dev_0.5.0-1_arm64.deb ... 237s Unpacking librust-ruzstd-dev:arm64 (0.5.0-1) ... 237s Selecting previously unselected package librust-object-dev:arm64. 237s Preparing to unpack .../174-librust-object-dev_0.32.2-1_arm64.deb ... 237s Unpacking librust-object-dev:arm64 (0.32.2-1) ... 237s Selecting previously unselected package librust-rustc-demangle-dev:arm64. 237s Preparing to unpack .../175-librust-rustc-demangle-dev_0.1.21-1_arm64.deb ... 237s Unpacking librust-rustc-demangle-dev:arm64 (0.1.21-1) ... 237s Selecting previously unselected package librust-addr2line-dev:arm64. 237s Preparing to unpack .../176-librust-addr2line-dev_0.21.0-2_arm64.deb ... 237s Unpacking librust-addr2line-dev:arm64 (0.21.0-2) ... 237s Selecting previously unselected package librust-aho-corasick-dev:arm64. 237s Preparing to unpack .../177-librust-aho-corasick-dev_1.1.3-1_arm64.deb ... 237s Unpacking librust-aho-corasick-dev:arm64 (1.1.3-1) ... 237s Selecting previously unselected package librust-bitflags-1-dev:arm64. 237s Preparing to unpack .../178-librust-bitflags-1-dev_1.3.2-5_arm64.deb ... 237s Unpacking librust-bitflags-1-dev:arm64 (1.3.2-5) ... 237s Selecting previously unselected package librust-anes-dev:arm64. 237s Preparing to unpack .../179-librust-anes-dev_0.1.6-1_arm64.deb ... 237s Unpacking librust-anes-dev:arm64 (0.1.6-1) ... 237s Selecting previously unselected package librust-anstyle-dev:arm64. 237s Preparing to unpack .../180-librust-anstyle-dev_1.0.8-1_arm64.deb ... 237s Unpacking librust-anstyle-dev:arm64 (1.0.8-1) ... 237s Selecting previously unselected package librust-arrayvec-dev:arm64. 237s Preparing to unpack .../181-librust-arrayvec-dev_0.7.4-2_arm64.deb ... 237s Unpacking librust-arrayvec-dev:arm64 (0.7.4-2) ... 237s Selecting previously unselected package librust-utf8parse-dev:arm64. 237s Preparing to unpack .../182-librust-utf8parse-dev_0.2.1-1_arm64.deb ... 237s Unpacking librust-utf8parse-dev:arm64 (0.2.1-1) ... 237s Selecting previously unselected package librust-anstyle-parse-dev:arm64. 237s Preparing to unpack .../183-librust-anstyle-parse-dev_0.2.1-1_arm64.deb ... 237s Unpacking librust-anstyle-parse-dev:arm64 (0.2.1-1) ... 237s Selecting previously unselected package librust-anstyle-query-dev:arm64. 237s Preparing to unpack .../184-librust-anstyle-query-dev_1.0.0-1_arm64.deb ... 237s Unpacking librust-anstyle-query-dev:arm64 (1.0.0-1) ... 237s Selecting previously unselected package librust-colorchoice-dev:arm64. 237s Preparing to unpack .../185-librust-colorchoice-dev_1.0.0-1_arm64.deb ... 237s Unpacking librust-colorchoice-dev:arm64 (1.0.0-1) ... 237s Selecting previously unselected package librust-anstream-dev:arm64. 237s Preparing to unpack .../186-librust-anstream-dev_0.6.15-1_arm64.deb ... 237s Unpacking librust-anstream-dev:arm64 (0.6.15-1) ... 237s Selecting previously unselected package librust-jobserver-dev:arm64. 237s Preparing to unpack .../187-librust-jobserver-dev_0.1.32-1_arm64.deb ... 237s Unpacking librust-jobserver-dev:arm64 (0.1.32-1) ... 238s Selecting previously unselected package librust-shlex-dev:arm64. 238s Preparing to unpack .../188-librust-shlex-dev_1.3.0-1_arm64.deb ... 238s Unpacking librust-shlex-dev:arm64 (1.3.0-1) ... 238s Selecting previously unselected package librust-cc-dev:arm64. 238s Preparing to unpack .../189-librust-cc-dev_1.1.14-1_arm64.deb ... 238s Unpacking librust-cc-dev:arm64 (1.1.14-1) ... 238s Selecting previously unselected package librust-backtrace-dev:arm64. 238s Preparing to unpack .../190-librust-backtrace-dev_0.3.69-2_arm64.deb ... 238s Unpacking librust-backtrace-dev:arm64 (0.3.69-2) ... 238s Selecting previously unselected package librust-anyhow-dev:arm64. 238s Preparing to unpack .../191-librust-anyhow-dev_1.0.86-1_arm64.deb ... 238s Unpacking librust-anyhow-dev:arm64 (1.0.86-1) ... 238s Selecting previously unselected package librust-bytecheck-derive-dev:arm64. 238s Preparing to unpack .../192-librust-bytecheck-derive-dev_0.6.12-1_arm64.deb ... 238s Unpacking librust-bytecheck-derive-dev:arm64 (0.6.12-1) ... 238s Selecting previously unselected package librust-ptr-meta-derive-dev:arm64. 238s Preparing to unpack .../193-librust-ptr-meta-derive-dev_0.1.4-1_arm64.deb ... 238s Unpacking librust-ptr-meta-derive-dev:arm64 (0.1.4-1) ... 238s Selecting previously unselected package librust-ptr-meta-dev:arm64. 238s Preparing to unpack .../194-librust-ptr-meta-dev_0.1.4-1_arm64.deb ... 238s Unpacking librust-ptr-meta-dev:arm64 (0.1.4-1) ... 238s Selecting previously unselected package librust-simdutf8-dev:arm64. 238s Preparing to unpack .../195-librust-simdutf8-dev_0.1.4-4_arm64.deb ... 238s Unpacking librust-simdutf8-dev:arm64 (0.1.4-4) ... 238s Selecting previously unselected package librust-bytemuck-derive-dev:arm64. 238s Preparing to unpack .../196-librust-bytemuck-derive-dev_1.5.0-2_arm64.deb ... 238s Unpacking librust-bytemuck-derive-dev:arm64 (1.5.0-2) ... 238s Selecting previously unselected package librust-bytemuck-dev:arm64. 238s Preparing to unpack .../197-librust-bytemuck-dev_1.14.0-1_arm64.deb ... 238s Unpacking librust-bytemuck-dev:arm64 (1.14.0-1) ... 238s Selecting previously unselected package librust-atomic-dev:arm64. 238s Preparing to unpack .../198-librust-atomic-dev_0.6.0-1_arm64.deb ... 238s Unpacking librust-atomic-dev:arm64 (0.6.0-1) ... 238s Selecting previously unselected package librust-md5-asm-dev:arm64. 238s Preparing to unpack .../199-librust-md5-asm-dev_0.5.0-2_arm64.deb ... 238s Unpacking librust-md5-asm-dev:arm64 (0.5.0-2) ... 238s Selecting previously unselected package librust-md-5-dev:arm64. 238s Preparing to unpack .../200-librust-md-5-dev_0.10.6-1_arm64.deb ... 238s Unpacking librust-md-5-dev:arm64 (0.10.6-1) ... 238s Selecting previously unselected package librust-cpufeatures-dev:arm64. 238s Preparing to unpack .../201-librust-cpufeatures-dev_0.2.11-1_arm64.deb ... 238s Unpacking librust-cpufeatures-dev:arm64 (0.2.11-1) ... 238s Selecting previously unselected package librust-sha1-asm-dev:arm64. 238s Preparing to unpack .../202-librust-sha1-asm-dev_0.5.1-2_arm64.deb ... 238s Unpacking librust-sha1-asm-dev:arm64 (0.5.1-2) ... 238s Selecting previously unselected package librust-sha1-dev:arm64. 238s Preparing to unpack .../203-librust-sha1-dev_0.10.6-1_arm64.deb ... 238s Unpacking librust-sha1-dev:arm64 (0.10.6-1) ... 238s Selecting previously unselected package librust-slog-dev:arm64. 238s Preparing to unpack .../204-librust-slog-dev_2.7.0-1_arm64.deb ... 238s Unpacking librust-slog-dev:arm64 (2.7.0-1) ... 238s Selecting previously unselected package librust-uuid-dev:arm64. 238s Preparing to unpack .../205-librust-uuid-dev_1.10.0-1_arm64.deb ... 238s Unpacking librust-uuid-dev:arm64 (1.10.0-1) ... 239s Selecting previously unselected package librust-bytecheck-dev:arm64. 239s Preparing to unpack .../206-librust-bytecheck-dev_0.6.12-1_arm64.deb ... 239s Unpacking librust-bytecheck-dev:arm64 (0.6.12-1) ... 239s Selecting previously unselected package librust-autocfg-dev:arm64. 239s Preparing to unpack .../207-librust-autocfg-dev_1.1.0-1_arm64.deb ... 239s Unpacking librust-autocfg-dev:arm64 (1.1.0-1) ... 239s Selecting previously unselected package librust-num-traits-dev:arm64. 239s Preparing to unpack .../208-librust-num-traits-dev_0.2.19-2_arm64.deb ... 239s Unpacking librust-num-traits-dev:arm64 (0.2.19-2) ... 239s Selecting previously unselected package librust-funty-dev:arm64. 239s Preparing to unpack .../209-librust-funty-dev_2.0.0-1_arm64.deb ... 239s Unpacking librust-funty-dev:arm64 (2.0.0-1) ... 239s Selecting previously unselected package librust-radium-dev:arm64. 239s Preparing to unpack .../210-librust-radium-dev_1.1.0-1_arm64.deb ... 239s Unpacking librust-radium-dev:arm64 (1.1.0-1) ... 239s Selecting previously unselected package librust-tap-dev:arm64. 239s Preparing to unpack .../211-librust-tap-dev_1.0.1-1_arm64.deb ... 239s Unpacking librust-tap-dev:arm64 (1.0.1-1) ... 239s Selecting previously unselected package librust-traitobject-dev:arm64. 239s Preparing to unpack .../212-librust-traitobject-dev_0.1.0-1_arm64.deb ... 239s Unpacking librust-traitobject-dev:arm64 (0.1.0-1) ... 239s Selecting previously unselected package librust-unsafe-any-dev:arm64. 239s Preparing to unpack .../213-librust-unsafe-any-dev_0.4.2-2_arm64.deb ... 239s Unpacking librust-unsafe-any-dev:arm64 (0.4.2-2) ... 239s Selecting previously unselected package librust-typemap-dev:arm64. 239s Preparing to unpack .../214-librust-typemap-dev_0.3.3-2_arm64.deb ... 239s Unpacking librust-typemap-dev:arm64 (0.3.3-2) ... 239s Selecting previously unselected package librust-wyz-dev:arm64. 239s Preparing to unpack .../215-librust-wyz-dev_0.5.1-1_arm64.deb ... 239s Unpacking librust-wyz-dev:arm64 (0.5.1-1) ... 239s Selecting previously unselected package librust-bitvec-dev:arm64. 239s Preparing to unpack .../216-librust-bitvec-dev_1.0.1-1_arm64.deb ... 239s Unpacking librust-bitvec-dev:arm64 (1.0.1-1) ... 239s Selecting previously unselected package librust-bytes-dev:arm64. 239s Preparing to unpack .../217-librust-bytes-dev_1.8.0-1_arm64.deb ... 239s Unpacking librust-bytes-dev:arm64 (1.8.0-1) ... 239s Selecting previously unselected package librust-rend-dev:arm64. 239s Preparing to unpack .../218-librust-rend-dev_0.4.0-1_arm64.deb ... 239s Unpacking librust-rend-dev:arm64 (0.4.0-1) ... 239s Selecting previously unselected package librust-rkyv-derive-dev:arm64. 239s Preparing to unpack .../219-librust-rkyv-derive-dev_0.7.44-1_arm64.deb ... 239s Unpacking librust-rkyv-derive-dev:arm64 (0.7.44-1) ... 239s Selecting previously unselected package librust-seahash-dev:arm64. 239s Preparing to unpack .../220-librust-seahash-dev_4.1.0-1_arm64.deb ... 239s Unpacking librust-seahash-dev:arm64 (4.1.0-1) ... 239s Selecting previously unselected package librust-smol-str-dev:arm64. 239s Preparing to unpack .../221-librust-smol-str-dev_0.2.0-1_arm64.deb ... 239s Unpacking librust-smol-str-dev:arm64 (0.2.0-1) ... 239s Selecting previously unselected package librust-tinyvec-dev:arm64. 239s Preparing to unpack .../222-librust-tinyvec-dev_1.6.0-2_arm64.deb ... 239s Unpacking librust-tinyvec-dev:arm64 (1.6.0-2) ... 240s Selecting previously unselected package librust-tinyvec-macros-dev:arm64. 240s Preparing to unpack .../223-librust-tinyvec-macros-dev_0.1.0-1_arm64.deb ... 240s Unpacking librust-tinyvec-macros-dev:arm64 (0.1.0-1) ... 240s Selecting previously unselected package librust-tinyvec+tinyvec-macros-dev:arm64. 240s Preparing to unpack .../224-librust-tinyvec+tinyvec-macros-dev_1.6.0-2_arm64.deb ... 240s Unpacking librust-tinyvec+tinyvec-macros-dev:arm64 (1.6.0-2) ... 240s Selecting previously unselected package librust-rkyv-dev:arm64. 240s Preparing to unpack .../225-librust-rkyv-dev_0.7.44-1_arm64.deb ... 240s Unpacking librust-rkyv-dev:arm64 (0.7.44-1) ... 240s Selecting previously unselected package librust-num-complex-dev:arm64. 240s Preparing to unpack .../226-librust-num-complex-dev_0.4.6-2_arm64.deb ... 240s Unpacking librust-num-complex-dev:arm64 (0.4.6-2) ... 240s Selecting previously unselected package librust-approx-dev:arm64. 240s Preparing to unpack .../227-librust-approx-dev_0.5.1-1_arm64.deb ... 240s Unpacking librust-approx-dev:arm64 (0.5.1-1) ... 240s Selecting previously unselected package librust-array-init-dev:arm64. 240s Preparing to unpack .../228-librust-array-init-dev_2.0.1-1_arm64.deb ... 240s Unpacking librust-array-init-dev:arm64 (2.0.1-1) ... 240s Selecting previously unselected package librust-async-attributes-dev. 240s Preparing to unpack .../229-librust-async-attributes-dev_1.1.2-6_all.deb ... 240s Unpacking librust-async-attributes-dev (1.1.2-6) ... 240s Selecting previously unselected package librust-concurrent-queue-dev:arm64. 240s Preparing to unpack .../230-librust-concurrent-queue-dev_2.5.0-4_arm64.deb ... 240s Unpacking librust-concurrent-queue-dev:arm64 (2.5.0-4) ... 240s Selecting previously unselected package librust-parking-dev:arm64. 240s Preparing to unpack .../231-librust-parking-dev_2.2.0-1_arm64.deb ... 240s Unpacking librust-parking-dev:arm64 (2.2.0-1) ... 240s Selecting previously unselected package librust-pin-project-lite-dev:arm64. 240s Preparing to unpack .../232-librust-pin-project-lite-dev_0.2.13-1_arm64.deb ... 240s Unpacking librust-pin-project-lite-dev:arm64 (0.2.13-1) ... 240s Selecting previously unselected package librust-event-listener-dev. 240s Preparing to unpack .../233-librust-event-listener-dev_5.3.1-8_all.deb ... 240s Unpacking librust-event-listener-dev (5.3.1-8) ... 240s Selecting previously unselected package librust-event-listener-strategy-dev:arm64. 240s Preparing to unpack .../234-librust-event-listener-strategy-dev_0.5.2-3_arm64.deb ... 240s Unpacking librust-event-listener-strategy-dev:arm64 (0.5.2-3) ... 240s Selecting previously unselected package librust-futures-core-dev:arm64. 240s Preparing to unpack .../235-librust-futures-core-dev_0.3.30-1_arm64.deb ... 240s Unpacking librust-futures-core-dev:arm64 (0.3.30-1) ... 240s Selecting previously unselected package librust-async-channel-dev. 240s Preparing to unpack .../236-librust-async-channel-dev_2.3.1-8_all.deb ... 240s Unpacking librust-async-channel-dev (2.3.1-8) ... 240s Selecting previously unselected package librust-async-task-dev. 240s Preparing to unpack .../237-librust-async-task-dev_4.7.1-3_all.deb ... 240s Unpacking librust-async-task-dev (4.7.1-3) ... 240s Selecting previously unselected package librust-fastrand-dev:arm64. 240s Preparing to unpack .../238-librust-fastrand-dev_2.1.1-1_arm64.deb ... 240s Unpacking librust-fastrand-dev:arm64 (2.1.1-1) ... 240s Selecting previously unselected package librust-futures-io-dev:arm64. 240s Preparing to unpack .../239-librust-futures-io-dev_0.3.31-1_arm64.deb ... 240s Unpacking librust-futures-io-dev:arm64 (0.3.31-1) ... 240s Selecting previously unselected package librust-futures-lite-dev:arm64. 240s Preparing to unpack .../240-librust-futures-lite-dev_2.3.0-2_arm64.deb ... 240s Unpacking librust-futures-lite-dev:arm64 (2.3.0-2) ... 240s Selecting previously unselected package librust-slab-dev:arm64. 240s Preparing to unpack .../241-librust-slab-dev_0.4.9-1_arm64.deb ... 240s Unpacking librust-slab-dev:arm64 (0.4.9-1) ... 240s Selecting previously unselected package librust-async-executor-dev. 240s Preparing to unpack .../242-librust-async-executor-dev_1.13.1-1_all.deb ... 240s Unpacking librust-async-executor-dev (1.13.1-1) ... 240s Selecting previously unselected package librust-async-lock-dev. 240s Preparing to unpack .../243-librust-async-lock-dev_3.4.0-4_all.deb ... 240s Unpacking librust-async-lock-dev (3.4.0-4) ... 240s Selecting previously unselected package librust-atomic-waker-dev:arm64. 240s Preparing to unpack .../244-librust-atomic-waker-dev_1.1.2-1_arm64.deb ... 240s Unpacking librust-atomic-waker-dev:arm64 (1.1.2-1) ... 240s Selecting previously unselected package librust-tracing-attributes-dev:arm64. 240s Preparing to unpack .../245-librust-tracing-attributes-dev_0.1.27-1_arm64.deb ... 240s Unpacking librust-tracing-attributes-dev:arm64 (0.1.27-1) ... 241s Selecting previously unselected package librust-valuable-derive-dev:arm64. 241s Preparing to unpack .../246-librust-valuable-derive-dev_0.1.0-1_arm64.deb ... 241s Unpacking librust-valuable-derive-dev:arm64 (0.1.0-1) ... 241s Selecting previously unselected package librust-valuable-dev:arm64. 241s Preparing to unpack .../247-librust-valuable-dev_0.1.0-4_arm64.deb ... 241s Unpacking librust-valuable-dev:arm64 (0.1.0-4) ... 241s Selecting previously unselected package librust-tracing-core-dev:arm64. 241s Preparing to unpack .../248-librust-tracing-core-dev_0.1.32-1_arm64.deb ... 241s Unpacking librust-tracing-core-dev:arm64 (0.1.32-1) ... 241s Selecting previously unselected package librust-tracing-dev:arm64. 241s Preparing to unpack .../249-librust-tracing-dev_0.1.40-1_arm64.deb ... 241s Unpacking librust-tracing-dev:arm64 (0.1.40-1) ... 241s Selecting previously unselected package librust-blocking-dev. 241s Preparing to unpack .../250-librust-blocking-dev_1.6.1-5_all.deb ... 241s Unpacking librust-blocking-dev (1.6.1-5) ... 241s Selecting previously unselected package librust-async-fs-dev. 241s Preparing to unpack .../251-librust-async-fs-dev_2.1.2-4_all.deb ... 241s Unpacking librust-async-fs-dev (2.1.2-4) ... 241s Selecting previously unselected package librust-bitflags-dev:arm64. 241s Preparing to unpack .../252-librust-bitflags-dev_2.6.0-1_arm64.deb ... 241s Unpacking librust-bitflags-dev:arm64 (2.6.0-1) ... 241s Selecting previously unselected package librust-compiler-builtins+core-dev:arm64. 241s Preparing to unpack .../253-librust-compiler-builtins+core-dev_0.1.101-1_arm64.deb ... 241s Unpacking librust-compiler-builtins+core-dev:arm64 (0.1.101-1) ... 241s Selecting previously unselected package librust-compiler-builtins+rustc-dep-of-std-dev:arm64. 241s Preparing to unpack .../254-librust-compiler-builtins+rustc-dep-of-std-dev_0.1.101-1_arm64.deb ... 241s Unpacking librust-compiler-builtins+rustc-dep-of-std-dev:arm64 (0.1.101-1) ... 241s Selecting previously unselected package librust-errno-dev:arm64. 241s Preparing to unpack .../255-librust-errno-dev_0.3.8-1_arm64.deb ... 241s Unpacking librust-errno-dev:arm64 (0.3.8-1) ... 241s Selecting previously unselected package librust-linux-raw-sys-dev:arm64. 241s Preparing to unpack .../256-librust-linux-raw-sys-dev_0.4.14-1_arm64.deb ... 241s Unpacking librust-linux-raw-sys-dev:arm64 (0.4.14-1) ... 241s Selecting previously unselected package librust-rustix-dev:arm64. 241s Preparing to unpack .../257-librust-rustix-dev_0.38.32-1_arm64.deb ... 241s Unpacking librust-rustix-dev:arm64 (0.38.32-1) ... 241s Selecting previously unselected package librust-polling-dev:arm64. 241s Preparing to unpack .../258-librust-polling-dev_3.4.0-1_arm64.deb ... 241s Unpacking librust-polling-dev:arm64 (3.4.0-1) ... 241s Selecting previously unselected package librust-async-io-dev:arm64. 241s Preparing to unpack .../259-librust-async-io-dev_2.3.3-4_arm64.deb ... 241s Unpacking librust-async-io-dev:arm64 (2.3.3-4) ... 241s Selecting previously unselected package librust-mio-dev:arm64. 241s Preparing to unpack .../260-librust-mio-dev_1.0.2-2_arm64.deb ... 241s Unpacking librust-mio-dev:arm64 (1.0.2-2) ... 241s Selecting previously unselected package librust-owning-ref-dev:arm64. 241s Preparing to unpack .../261-librust-owning-ref-dev_0.4.1-1_arm64.deb ... 241s Unpacking librust-owning-ref-dev:arm64 (0.4.1-1) ... 241s Selecting previously unselected package librust-scopeguard-dev:arm64. 241s Preparing to unpack .../262-librust-scopeguard-dev_1.2.0-1_arm64.deb ... 241s Unpacking librust-scopeguard-dev:arm64 (1.2.0-1) ... 241s Selecting previously unselected package librust-lock-api-dev:arm64. 241s Preparing to unpack .../263-librust-lock-api-dev_0.4.12-1_arm64.deb ... 241s Unpacking librust-lock-api-dev:arm64 (0.4.12-1) ... 241s Selecting previously unselected package librust-parking-lot-dev:arm64. 241s Preparing to unpack .../264-librust-parking-lot-dev_0.12.3-1_arm64.deb ... 241s Unpacking librust-parking-lot-dev:arm64 (0.12.3-1) ... 241s Selecting previously unselected package librust-signal-hook-registry-dev:arm64. 241s Preparing to unpack .../265-librust-signal-hook-registry-dev_1.4.0-1_arm64.deb ... 241s Unpacking librust-signal-hook-registry-dev:arm64 (1.4.0-1) ... 241s Selecting previously unselected package librust-socket2-dev:arm64. 242s Preparing to unpack .../266-librust-socket2-dev_0.5.7-1_arm64.deb ... 242s Unpacking librust-socket2-dev:arm64 (0.5.7-1) ... 242s Selecting previously unselected package librust-tokio-macros-dev:arm64. 242s Preparing to unpack .../267-librust-tokio-macros-dev_2.4.0-2_arm64.deb ... 242s Unpacking librust-tokio-macros-dev:arm64 (2.4.0-2) ... 242s Selecting previously unselected package librust-tokio-dev:arm64. 242s Preparing to unpack .../268-librust-tokio-dev_1.39.3-3_arm64.deb ... 242s Unpacking librust-tokio-dev:arm64 (1.39.3-3) ... 242s Selecting previously unselected package librust-async-global-executor-dev:arm64. 242s Preparing to unpack .../269-librust-async-global-executor-dev_2.4.1-5_arm64.deb ... 242s Unpacking librust-async-global-executor-dev:arm64 (2.4.1-5) ... 242s Selecting previously unselected package librust-async-net-dev. 242s Preparing to unpack .../270-librust-async-net-dev_2.0.0-4_all.deb ... 242s Unpacking librust-async-net-dev (2.0.0-4) ... 242s Selecting previously unselected package librust-async-signal-dev:arm64. 242s Preparing to unpack .../271-librust-async-signal-dev_0.2.10-1_arm64.deb ... 242s Unpacking librust-async-signal-dev:arm64 (0.2.10-1) ... 242s Selecting previously unselected package librust-async-process-dev. 242s Preparing to unpack .../272-librust-async-process-dev_2.3.0-1_all.deb ... 242s Unpacking librust-async-process-dev (2.3.0-1) ... 242s Selecting previously unselected package librust-kv-log-macro-dev. 242s Preparing to unpack .../273-librust-kv-log-macro-dev_1.0.8-4_all.deb ... 242s Unpacking librust-kv-log-macro-dev (1.0.8-4) ... 242s Selecting previously unselected package librust-pin-utils-dev:arm64. 242s Preparing to unpack .../274-librust-pin-utils-dev_0.1.0-1_arm64.deb ... 242s Unpacking librust-pin-utils-dev:arm64 (0.1.0-1) ... 242s Selecting previously unselected package librust-async-std-dev. 242s Preparing to unpack .../275-librust-async-std-dev_1.13.0-1_all.deb ... 242s Unpacking librust-async-std-dev (1.13.0-1) ... 242s Selecting previously unselected package librust-base64-dev:arm64. 242s Preparing to unpack .../276-librust-base64-dev_0.21.7-1_arm64.deb ... 242s Unpacking librust-base64-dev:arm64 (0.21.7-1) ... 242s Selecting previously unselected package librust-bit-vec-dev:arm64. 242s Preparing to unpack .../277-librust-bit-vec-dev_0.6.3-1_arm64.deb ... 242s Unpacking librust-bit-vec-dev:arm64 (0.6.3-1) ... 242s Selecting previously unselected package librust-bit-set-dev:arm64. 242s Preparing to unpack .../278-librust-bit-set-dev_0.5.2-1_arm64.deb ... 242s Unpacking librust-bit-set-dev:arm64 (0.5.2-1) ... 242s Selecting previously unselected package librust-bit-set+std-dev:arm64. 242s Preparing to unpack .../279-librust-bit-set+std-dev_0.5.2-1_arm64.deb ... 242s Unpacking librust-bit-set+std-dev:arm64 (0.5.2-1) ... 242s Selecting previously unselected package librust-regex-syntax-dev:arm64. 242s Preparing to unpack .../280-librust-regex-syntax-dev_0.8.2-1_arm64.deb ... 242s Unpacking librust-regex-syntax-dev:arm64 (0.8.2-1) ... 242s Selecting previously unselected package librust-regex-automata-dev:arm64. 242s Preparing to unpack .../281-librust-regex-automata-dev_0.4.7-1_arm64.deb ... 242s Unpacking librust-regex-automata-dev:arm64 (0.4.7-1) ... 242s Selecting previously unselected package librust-bstr-dev:arm64. 242s Preparing to unpack .../282-librust-bstr-dev_1.7.0-2build1_arm64.deb ... 242s Unpacking librust-bstr-dev:arm64 (1.7.0-2build1) ... 242s Selecting previously unselected package librust-bumpalo-dev:arm64. 242s Preparing to unpack .../283-librust-bumpalo-dev_3.16.0-1_arm64.deb ... 242s Unpacking librust-bumpalo-dev:arm64 (3.16.0-1) ... 243s Selecting previously unselected package librust-cast-dev:arm64. 243s Preparing to unpack .../284-librust-cast-dev_0.3.0-1_arm64.deb ... 243s Unpacking librust-cast-dev:arm64 (0.3.0-1) ... 243s Selecting previously unselected package librust-iana-time-zone-dev:arm64. 243s Preparing to unpack .../285-librust-iana-time-zone-dev_0.1.60-1_arm64.deb ... 243s Unpacking librust-iana-time-zone-dev:arm64 (0.1.60-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-shared-dev:arm64. 243s Preparing to unpack .../286-librust-wasm-bindgen-shared-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-shared-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-backend-dev:arm64. 243s Preparing to unpack .../287-librust-wasm-bindgen-backend-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-backend-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-macro-support-dev:arm64. 243s Preparing to unpack .../288-librust-wasm-bindgen-macro-support-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-macro-support-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-macro-dev:arm64. 243s Preparing to unpack .../289-librust-wasm-bindgen-macro-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-macro-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-dev:arm64. 243s Preparing to unpack .../290-librust-wasm-bindgen-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-macro-support+spans-dev:arm64. 243s Preparing to unpack .../291-librust-wasm-bindgen-macro-support+spans-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-macro-support+spans-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen-macro+spans-dev:arm64. 243s Preparing to unpack .../292-librust-wasm-bindgen-macro+spans-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen-macro+spans-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen+spans-dev:arm64. 243s Preparing to unpack .../293-librust-wasm-bindgen+spans-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen+spans-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-wasm-bindgen+default-dev:arm64. 243s Preparing to unpack .../294-librust-wasm-bindgen+default-dev_0.2.87-1_arm64.deb ... 243s Unpacking librust-wasm-bindgen+default-dev:arm64 (0.2.87-1) ... 243s Selecting previously unselected package librust-js-sys-dev:arm64. 243s Preparing to unpack .../295-librust-js-sys-dev_0.3.64-1_arm64.deb ... 243s Unpacking librust-js-sys-dev:arm64 (0.3.64-1) ... 243s Selecting previously unselected package librust-pure-rust-locales-dev:arm64. 243s Preparing to unpack .../296-librust-pure-rust-locales-dev_0.8.1-1_arm64.deb ... 243s Unpacking librust-pure-rust-locales-dev:arm64 (0.8.1-1) ... 243s Selecting previously unselected package librust-chrono-dev:arm64. 243s Preparing to unpack .../297-librust-chrono-dev_0.4.38-2_arm64.deb ... 243s Unpacking librust-chrono-dev:arm64 (0.4.38-2) ... 243s Selecting previously unselected package librust-regex-dev:arm64. 243s Preparing to unpack .../298-librust-regex-dev_1.10.6-1_arm64.deb ... 243s Unpacking librust-regex-dev:arm64 (1.10.6-1) ... 244s Selecting previously unselected package librust-parse-zoneinfo-dev:arm64. 244s Preparing to unpack .../299-librust-parse-zoneinfo-dev_0.3.0-1_arm64.deb ... 244s Unpacking librust-parse-zoneinfo-dev:arm64 (0.3.0-1) ... 244s Selecting previously unselected package librust-siphasher-dev:arm64. 244s Preparing to unpack .../300-librust-siphasher-dev_0.3.10-1_arm64.deb ... 244s Unpacking librust-siphasher-dev:arm64 (0.3.10-1) ... 244s Selecting previously unselected package librust-phf-shared-dev:arm64. 244s Preparing to unpack .../301-librust-phf-shared-dev_0.11.2-1_arm64.deb ... 244s Unpacking librust-phf-shared-dev:arm64 (0.11.2-1) ... 244s Selecting previously unselected package librust-phf-dev:arm64. 244s Preparing to unpack .../302-librust-phf-dev_0.11.2-1_arm64.deb ... 244s Unpacking librust-phf-dev:arm64 (0.11.2-1) ... 244s Selecting previously unselected package librust-uncased-dev:arm64. 244s Preparing to unpack .../303-librust-uncased-dev_0.9.6-2_arm64.deb ... 244s Unpacking librust-uncased-dev:arm64 (0.9.6-2) ... 244s Selecting previously unselected package librust-phf-shared+uncased-dev:arm64. 244s Preparing to unpack .../304-librust-phf-shared+uncased-dev_0.11.2-1_arm64.deb ... 244s Unpacking librust-phf-shared+uncased-dev:arm64 (0.11.2-1) ... 244s Selecting previously unselected package librust-phf+uncased-dev:arm64. 244s Preparing to unpack .../305-librust-phf+uncased-dev_0.11.2-1_arm64.deb ... 244s Unpacking librust-phf+uncased-dev:arm64 (0.11.2-1) ... 244s Selecting previously unselected package librust-ciborium-io-dev:arm64. 244s Preparing to unpack .../306-librust-ciborium-io-dev_0.2.2-1_arm64.deb ... 244s Unpacking librust-ciborium-io-dev:arm64 (0.2.2-1) ... 244s Selecting previously unselected package librust-half-dev:arm64. 244s Preparing to unpack .../307-librust-half-dev_1.8.2-4_arm64.deb ... 244s Unpacking librust-half-dev:arm64 (1.8.2-4) ... 244s Selecting previously unselected package librust-ciborium-ll-dev:arm64. 244s Preparing to unpack .../308-librust-ciborium-ll-dev_0.2.2-1_arm64.deb ... 244s Unpacking librust-ciborium-ll-dev:arm64 (0.2.2-1) ... 244s Selecting previously unselected package librust-ciborium-dev:arm64. 244s Preparing to unpack .../309-librust-ciborium-dev_0.2.2-2_arm64.deb ... 244s Unpacking librust-ciborium-dev:arm64 (0.2.2-2) ... 244s Selecting previously unselected package librust-clap-lex-dev:arm64. 244s Preparing to unpack .../310-librust-clap-lex-dev_0.7.2-2_arm64.deb ... 244s Unpacking librust-clap-lex-dev:arm64 (0.7.2-2) ... 244s Selecting previously unselected package librust-strsim-dev:arm64. 244s Preparing to unpack .../311-librust-strsim-dev_0.11.1-1_arm64.deb ... 244s Unpacking librust-strsim-dev:arm64 (0.11.1-1) ... 244s Selecting previously unselected package librust-terminal-size-dev:arm64. 244s Preparing to unpack .../312-librust-terminal-size-dev_0.3.0-2_arm64.deb ... 244s Unpacking librust-terminal-size-dev:arm64 (0.3.0-2) ... 244s Selecting previously unselected package librust-unicase-dev:arm64. 244s Preparing to unpack .../313-librust-unicase-dev_2.7.0-1_arm64.deb ... 244s Unpacking librust-unicase-dev:arm64 (2.7.0-1) ... 244s Selecting previously unselected package librust-unicode-width-dev:arm64. 244s Preparing to unpack .../314-librust-unicode-width-dev_0.1.14-1_arm64.deb ... 244s Unpacking librust-unicode-width-dev:arm64 (0.1.14-1) ... 245s Selecting previously unselected package librust-clap-builder-dev:arm64. 245s Preparing to unpack .../315-librust-clap-builder-dev_4.5.15-2_arm64.deb ... 245s Unpacking librust-clap-builder-dev:arm64 (4.5.15-2) ... 245s Selecting previously unselected package librust-heck-dev:arm64. 245s Preparing to unpack .../316-librust-heck-dev_0.4.1-1_arm64.deb ... 245s Unpacking librust-heck-dev:arm64 (0.4.1-1) ... 245s Selecting previously unselected package librust-clap-derive-dev:arm64. 245s Preparing to unpack .../317-librust-clap-derive-dev_4.5.13-2_arm64.deb ... 245s Unpacking librust-clap-derive-dev:arm64 (4.5.13-2) ... 245s Selecting previously unselected package librust-clap-dev:arm64. 245s Preparing to unpack .../318-librust-clap-dev_4.5.16-1_arm64.deb ... 245s Unpacking librust-clap-dev:arm64 (4.5.16-1) ... 245s Selecting previously unselected package librust-csv-core-dev:arm64. 245s Preparing to unpack .../319-librust-csv-core-dev_0.1.11-1_arm64.deb ... 245s Unpacking librust-csv-core-dev:arm64 (0.1.11-1) ... 245s Selecting previously unselected package librust-csv-dev:arm64. 245s Preparing to unpack .../320-librust-csv-dev_1.3.0-1_arm64.deb ... 245s Unpacking librust-csv-dev:arm64 (1.3.0-1) ... 245s Selecting previously unselected package librust-futures-sink-dev:arm64. 245s Preparing to unpack .../321-librust-futures-sink-dev_0.3.31-1_arm64.deb ... 245s Unpacking librust-futures-sink-dev:arm64 (0.3.31-1) ... 245s Selecting previously unselected package librust-futures-channel-dev:arm64. 245s Preparing to unpack .../322-librust-futures-channel-dev_0.3.30-1_arm64.deb ... 245s Unpacking librust-futures-channel-dev:arm64 (0.3.30-1) ... 245s Selecting previously unselected package librust-futures-task-dev:arm64. 245s Preparing to unpack .../323-librust-futures-task-dev_0.3.30-1_arm64.deb ... 245s Unpacking librust-futures-task-dev:arm64 (0.3.30-1) ... 245s Selecting previously unselected package librust-futures-macro-dev:arm64. 245s Preparing to unpack .../324-librust-futures-macro-dev_0.3.30-1_arm64.deb ... 245s Unpacking librust-futures-macro-dev:arm64 (0.3.30-1) ... 245s Selecting previously unselected package librust-futures-util-dev:arm64. 245s Preparing to unpack .../325-librust-futures-util-dev_0.3.30-2_arm64.deb ... 245s Unpacking librust-futures-util-dev:arm64 (0.3.30-2) ... 245s Selecting previously unselected package librust-num-cpus-dev:arm64. 245s Preparing to unpack .../326-librust-num-cpus-dev_1.16.0-1_arm64.deb ... 245s Unpacking librust-num-cpus-dev:arm64 (1.16.0-1) ... 245s Selecting previously unselected package librust-futures-executor-dev:arm64. 245s Preparing to unpack .../327-librust-futures-executor-dev_0.3.30-1_arm64.deb ... 245s Unpacking librust-futures-executor-dev:arm64 (0.3.30-1) ... 245s Selecting previously unselected package librust-futures-dev:arm64. 245s Preparing to unpack .../328-librust-futures-dev_0.3.30-2_arm64.deb ... 245s Unpacking librust-futures-dev:arm64 (0.3.30-2) ... 246s Selecting previously unselected package librust-is-terminal-dev:arm64. 246s Preparing to unpack .../329-librust-is-terminal-dev_0.4.13-1_arm64.deb ... 246s Unpacking librust-is-terminal-dev:arm64 (0.4.13-1) ... 246s Selecting previously unselected package librust-itertools-dev:arm64. 246s Preparing to unpack .../330-librust-itertools-dev_0.10.5-1_arm64.deb ... 246s Unpacking librust-itertools-dev:arm64 (0.10.5-1) ... 246s Selecting previously unselected package librust-oorandom-dev:arm64. 246s Preparing to unpack .../331-librust-oorandom-dev_11.1.3-1_arm64.deb ... 246s Unpacking librust-oorandom-dev:arm64 (11.1.3-1) ... 246s Selecting previously unselected package librust-winapi-i686-pc-windows-gnu-dev:arm64. 246s Preparing to unpack .../332-librust-winapi-i686-pc-windows-gnu-dev_0.4.0-1_arm64.deb ... 246s Unpacking librust-winapi-i686-pc-windows-gnu-dev:arm64 (0.4.0-1) ... 246s Selecting previously unselected package librust-winapi-x86-64-pc-windows-gnu-dev:arm64. 246s Preparing to unpack .../333-librust-winapi-x86-64-pc-windows-gnu-dev_0.4.0-1_arm64.deb ... 246s Unpacking librust-winapi-x86-64-pc-windows-gnu-dev:arm64 (0.4.0-1) ... 246s Selecting previously unselected package librust-winapi-dev:arm64. 246s Preparing to unpack .../334-librust-winapi-dev_0.3.9-1_arm64.deb ... 246s Unpacking librust-winapi-dev:arm64 (0.3.9-1) ... 246s Selecting previously unselected package librust-dirs-sys-next-dev:arm64. 246s Preparing to unpack .../335-librust-dirs-sys-next-dev_0.1.1-1_arm64.deb ... 246s Unpacking librust-dirs-sys-next-dev:arm64 (0.1.1-1) ... 246s Selecting previously unselected package librust-dirs-next-dev:arm64. 246s Preparing to unpack .../336-librust-dirs-next-dev_2.0.0-1_arm64.deb ... 246s Unpacking librust-dirs-next-dev:arm64 (2.0.0-1) ... 246s Selecting previously unselected package librust-float-ord-dev:arm64. 246s Preparing to unpack .../337-librust-float-ord-dev_0.3.2-1_arm64.deb ... 246s Unpacking librust-float-ord-dev:arm64 (0.3.2-1) ... 246s Selecting previously unselected package librust-cmake-dev:arm64. 246s Preparing to unpack .../338-librust-cmake-dev_0.1.45-1_arm64.deb ... 246s Unpacking librust-cmake-dev:arm64 (0.1.45-1) ... 246s Selecting previously unselected package librust-freetype-sys-dev:arm64. 246s Preparing to unpack .../339-librust-freetype-sys-dev_0.13.1-1_arm64.deb ... 246s Unpacking librust-freetype-sys-dev:arm64 (0.13.1-1) ... 246s Selecting previously unselected package librust-freetype-dev:arm64. 246s Preparing to unpack .../340-librust-freetype-dev_0.7.0-4_arm64.deb ... 246s Unpacking librust-freetype-dev:arm64 (0.7.0-4) ... 246s Selecting previously unselected package librust-spin-dev:arm64. 246s Preparing to unpack .../341-librust-spin-dev_0.9.8-4_arm64.deb ... 246s Unpacking librust-spin-dev:arm64 (0.9.8-4) ... 246s Selecting previously unselected package librust-lazy-static-dev:arm64. 246s Preparing to unpack .../342-librust-lazy-static-dev_1.5.0-1_arm64.deb ... 246s Unpacking librust-lazy-static-dev:arm64 (1.5.0-1) ... 247s Selecting previously unselected package librust-pathfinder-simd-dev:arm64. 247s Preparing to unpack .../343-librust-pathfinder-simd-dev_0.5.2-1_arm64.deb ... 247s Unpacking librust-pathfinder-simd-dev:arm64 (0.5.2-1) ... 247s Selecting previously unselected package librust-pathfinder-geometry-dev:arm64. 247s Preparing to unpack .../344-librust-pathfinder-geometry-dev_0.5.1-1_arm64.deb ... 247s Unpacking librust-pathfinder-geometry-dev:arm64 (0.5.1-1) ... 247s Selecting previously unselected package librust-winapi-util-dev:arm64. 247s Preparing to unpack .../345-librust-winapi-util-dev_0.1.6-1_arm64.deb ... 247s Unpacking librust-winapi-util-dev:arm64 (0.1.6-1) ... 247s Selecting previously unselected package librust-same-file-dev:arm64. 247s Preparing to unpack .../346-librust-same-file-dev_1.0.6-1_arm64.deb ... 247s Unpacking librust-same-file-dev:arm64 (1.0.6-1) ... 247s Selecting previously unselected package librust-walkdir-dev:arm64. 247s Preparing to unpack .../347-librust-walkdir-dev_2.5.0-1_arm64.deb ... 247s Unpacking librust-walkdir-dev:arm64 (2.5.0-1) ... 247s Selecting previously unselected package librust-const-cstr-dev:arm64. 247s Preparing to unpack .../348-librust-const-cstr-dev_0.3.0-1_arm64.deb ... 247s Unpacking librust-const-cstr-dev:arm64 (0.3.0-1) ... 247s Selecting previously unselected package librust-libloading-dev:arm64. 247s Preparing to unpack .../349-librust-libloading-dev_0.8.5-1_arm64.deb ... 247s Unpacking librust-libloading-dev:arm64 (0.8.5-1) ... 247s Selecting previously unselected package librust-dlib-dev:arm64. 247s Preparing to unpack .../350-librust-dlib-dev_0.5.2-2_arm64.deb ... 247s Unpacking librust-dlib-dev:arm64 (0.5.2-2) ... 247s Selecting previously unselected package librust-yeslogic-fontconfig-sys-dev:arm64. 247s Preparing to unpack .../351-librust-yeslogic-fontconfig-sys-dev_3.0.1-1_arm64.deb ... 247s Unpacking librust-yeslogic-fontconfig-sys-dev:arm64 (3.0.1-1) ... 247s Selecting previously unselected package librust-font-kit-dev:arm64. 247s Preparing to unpack .../352-librust-font-kit-dev_0.11.0-2_arm64.deb ... 247s Unpacking librust-font-kit-dev:arm64 (0.11.0-2) ... 247s Selecting previously unselected package librust-color-quant-dev:arm64. 247s Preparing to unpack .../353-librust-color-quant-dev_1.1.0-1_arm64.deb ... 247s Unpacking librust-color-quant-dev:arm64 (1.1.0-1) ... 247s Selecting previously unselected package librust-weezl-dev:arm64. 247s Preparing to unpack .../354-librust-weezl-dev_0.1.5-1_arm64.deb ... 247s Unpacking librust-weezl-dev:arm64 (0.1.5-1) ... 247s Selecting previously unselected package librust-gif-dev:arm64. 247s Preparing to unpack .../355-librust-gif-dev_0.11.3-1_arm64.deb ... 247s Unpacking librust-gif-dev:arm64 (0.11.3-1) ... 247s Selecting previously unselected package librust-jpeg-decoder-dev:arm64. 247s Preparing to unpack .../356-librust-jpeg-decoder-dev_0.3.0-1_arm64.deb ... 247s Unpacking librust-jpeg-decoder-dev:arm64 (0.3.0-1) ... 248s Selecting previously unselected package librust-num-integer-dev:arm64. 248s Preparing to unpack .../357-librust-num-integer-dev_0.1.46-1_arm64.deb ... 248s Unpacking librust-num-integer-dev:arm64 (0.1.46-1) ... 248s Selecting previously unselected package librust-humantime-dev:arm64. 248s Preparing to unpack .../358-librust-humantime-dev_2.1.0-1_arm64.deb ... 248s Unpacking librust-humantime-dev:arm64 (2.1.0-1) ... 248s Selecting previously unselected package librust-termcolor-dev:arm64. 248s Preparing to unpack .../359-librust-termcolor-dev_1.4.1-1_arm64.deb ... 248s Unpacking librust-termcolor-dev:arm64 (1.4.1-1) ... 248s Selecting previously unselected package librust-env-logger-dev:arm64. 248s Preparing to unpack .../360-librust-env-logger-dev_0.10.2-2_arm64.deb ... 248s Unpacking librust-env-logger-dev:arm64 (0.10.2-2) ... 248s Selecting previously unselected package librust-quickcheck-dev:arm64. 248s Preparing to unpack .../361-librust-quickcheck-dev_1.0.3-3_arm64.deb ... 248s Unpacking librust-quickcheck-dev:arm64 (1.0.3-3) ... 248s Selecting previously unselected package librust-num-bigint-dev:arm64. 248s Preparing to unpack .../362-librust-num-bigint-dev_0.4.6-1_arm64.deb ... 248s Unpacking librust-num-bigint-dev:arm64 (0.4.6-1) ... 248s Selecting previously unselected package librust-num-rational-dev:arm64. 248s Preparing to unpack .../363-librust-num-rational-dev_0.4.2-1_arm64.deb ... 248s Unpacking librust-num-rational-dev:arm64 (0.4.2-1) ... 248s Selecting previously unselected package librust-png-dev:arm64. 248s Preparing to unpack .../364-librust-png-dev_0.17.7-3_arm64.deb ... 248s Unpacking librust-png-dev:arm64 (0.17.7-3) ... 248s Selecting previously unselected package librust-qoi-dev:arm64. 248s Preparing to unpack .../365-librust-qoi-dev_0.4.1-2_arm64.deb ... 248s Unpacking librust-qoi-dev:arm64 (0.4.1-2) ... 248s Selecting previously unselected package librust-tiff-dev:arm64. 248s Preparing to unpack .../366-librust-tiff-dev_0.9.0-1_arm64.deb ... 248s Unpacking librust-tiff-dev:arm64 (0.9.0-1) ... 248s Selecting previously unselected package libsharpyuv0:arm64. 248s Preparing to unpack .../367-libsharpyuv0_1.4.0-0.1_arm64.deb ... 248s Unpacking libsharpyuv0:arm64 (1.4.0-0.1) ... 248s Selecting previously unselected package libwebp7:arm64. 248s Preparing to unpack .../368-libwebp7_1.4.0-0.1_arm64.deb ... 248s Unpacking libwebp7:arm64 (1.4.0-0.1) ... 248s Selecting previously unselected package libwebpdemux2:arm64. 248s Preparing to unpack .../369-libwebpdemux2_1.4.0-0.1_arm64.deb ... 248s Unpacking libwebpdemux2:arm64 (1.4.0-0.1) ... 248s Selecting previously unselected package libwebpmux3:arm64. 248s Preparing to unpack .../370-libwebpmux3_1.4.0-0.1_arm64.deb ... 248s Unpacking libwebpmux3:arm64 (1.4.0-0.1) ... 248s Selecting previously unselected package libwebpdecoder3:arm64. 248s Preparing to unpack .../371-libwebpdecoder3_1.4.0-0.1_arm64.deb ... 248s Unpacking libwebpdecoder3:arm64 (1.4.0-0.1) ... 248s Selecting previously unselected package libsharpyuv-dev:arm64. 249s Preparing to unpack .../372-libsharpyuv-dev_1.4.0-0.1_arm64.deb ... 249s Unpacking libsharpyuv-dev:arm64 (1.4.0-0.1) ... 249s Selecting previously unselected package libwebp-dev:arm64. 249s Preparing to unpack .../373-libwebp-dev_1.4.0-0.1_arm64.deb ... 249s Unpacking libwebp-dev:arm64 (1.4.0-0.1) ... 249s Selecting previously unselected package librust-libwebp-sys-dev:arm64. 249s Preparing to unpack .../374-librust-libwebp-sys-dev_0.9.5-1build1_arm64.deb ... 249s Unpacking librust-libwebp-sys-dev:arm64 (0.9.5-1build1) ... 249s Selecting previously unselected package librust-webp-dev:arm64. 249s Preparing to unpack .../375-librust-webp-dev_0.2.6-1_arm64.deb ... 249s Unpacking librust-webp-dev:arm64 (0.2.6-1) ... 249s Selecting previously unselected package librust-image-dev:arm64. 249s Preparing to unpack .../376-librust-image-dev_0.24.7-2_arm64.deb ... 249s Unpacking librust-image-dev:arm64 (0.24.7-2) ... 249s Selecting previously unselected package librust-plotters-backend-dev:arm64. 249s Preparing to unpack .../377-librust-plotters-backend-dev_0.3.7-1_arm64.deb ... 249s Unpacking librust-plotters-backend-dev:arm64 (0.3.7-1) ... 249s Selecting previously unselected package librust-plotters-bitmap-dev:arm64. 249s Preparing to unpack .../378-librust-plotters-bitmap-dev_0.3.3-3_arm64.deb ... 249s Unpacking librust-plotters-bitmap-dev:arm64 (0.3.3-3) ... 249s Selecting previously unselected package librust-plotters-svg-dev:arm64. 249s Preparing to unpack .../379-librust-plotters-svg-dev_0.3.5-1_arm64.deb ... 249s Unpacking librust-plotters-svg-dev:arm64 (0.3.5-1) ... 249s Selecting previously unselected package librust-web-sys-dev:arm64. 249s Preparing to unpack .../380-librust-web-sys-dev_0.3.64-2_arm64.deb ... 249s Unpacking librust-web-sys-dev:arm64 (0.3.64-2) ... 249s Selecting previously unselected package librust-plotters-dev:arm64. 249s Preparing to unpack .../381-librust-plotters-dev_0.3.5-4_arm64.deb ... 249s Unpacking librust-plotters-dev:arm64 (0.3.5-4) ... 249s Selecting previously unselected package librust-smol-dev. 250s Preparing to unpack .../382-librust-smol-dev_2.0.2-1_all.deb ... 250s Unpacking librust-smol-dev (2.0.2-1) ... 250s Selecting previously unselected package librust-tinytemplate-dev:arm64. 250s Preparing to unpack .../383-librust-tinytemplate-dev_1.2.1-1_arm64.deb ... 250s Unpacking librust-tinytemplate-dev:arm64 (1.2.1-1) ... 250s Selecting previously unselected package librust-criterion-dev. 250s Preparing to unpack .../384-librust-criterion-dev_0.5.1-6_all.deb ... 250s Unpacking librust-criterion-dev (0.5.1-6) ... 250s Selecting previously unselected package librust-phf-generator-dev:arm64. 250s Preparing to unpack .../385-librust-phf-generator-dev_0.11.2-2_arm64.deb ... 250s Unpacking librust-phf-generator-dev:arm64 (0.11.2-2) ... 250s Selecting previously unselected package librust-phf-codegen-dev:arm64. 250s Preparing to unpack .../386-librust-phf-codegen-dev_0.11.2-1_arm64.deb ... 250s Unpacking librust-phf-codegen-dev:arm64 (0.11.2-1) ... 250s Selecting previously unselected package librust-chrono-tz-build-dev:arm64. 250s Preparing to unpack .../387-librust-chrono-tz-build-dev_0.2.1-1_arm64.deb ... 250s Unpacking librust-chrono-tz-build-dev:arm64 (0.2.1-1) ... 250s Selecting previously unselected package librust-chrono-tz-dev:arm64. 250s Preparing to unpack .../388-librust-chrono-tz-dev_0.8.6-2_arm64.deb ... 250s Unpacking librust-chrono-tz-dev:arm64 (0.8.6-2) ... 250s Selecting previously unselected package librust-ctor-dev:arm64. 250s Preparing to unpack .../389-librust-ctor-dev_0.1.26-1_arm64.deb ... 250s Unpacking librust-ctor-dev:arm64 (0.1.26-1) ... 250s Selecting previously unselected package librust-powerfmt-macros-dev:arm64. 250s Preparing to unpack .../390-librust-powerfmt-macros-dev_0.1.0-1_arm64.deb ... 250s Unpacking librust-powerfmt-macros-dev:arm64 (0.1.0-1) ... 250s Selecting previously unselected package librust-powerfmt-dev:arm64. 250s Preparing to unpack .../391-librust-powerfmt-dev_0.2.0-1_arm64.deb ... 250s Unpacking librust-powerfmt-dev:arm64 (0.2.0-1) ... 250s Selecting previously unselected package librust-deranged-dev:arm64. 250s Preparing to unpack .../392-librust-deranged-dev_0.3.11-1_arm64.deb ... 250s Unpacking librust-deranged-dev:arm64 (0.3.11-1) ... 250s Selecting previously unselected package librust-eui48-dev:arm64. 250s Preparing to unpack .../393-librust-eui48-dev_1.1.0-2_arm64.deb ... 250s Unpacking librust-eui48-dev:arm64 (1.1.0-2) ... 250s Selecting previously unselected package librust-indenter-dev:arm64. 250s Preparing to unpack .../394-librust-indenter-dev_0.3.3-1_arm64.deb ... 250s Unpacking librust-indenter-dev:arm64 (0.3.3-1) ... 250s Selecting previously unselected package librust-eyre-dev:arm64. 250s Preparing to unpack .../395-librust-eyre-dev_0.6.12-1_arm64.deb ... 250s Unpacking librust-eyre-dev:arm64 (0.6.12-1) ... 250s Selecting previously unselected package librust-eyre+default-dev:arm64. 250s Preparing to unpack .../396-librust-eyre+default-dev_0.6.12-1_arm64.deb ... 250s Unpacking librust-eyre+default-dev:arm64 (0.6.12-1) ... 250s Selecting previously unselected package librust-fancy-regex-dev:arm64. 250s Preparing to unpack .../397-librust-fancy-regex-dev_0.11.0-2_arm64.deb ... 250s Unpacking librust-fancy-regex-dev:arm64 (0.11.0-2) ... 250s Selecting previously unselected package librust-fnv-dev:arm64. 250s Preparing to unpack .../398-librust-fnv-dev_1.0.7-1_arm64.deb ... 250s Unpacking librust-fnv-dev:arm64 (1.0.7-1) ... 250s Selecting previously unselected package librust-geo-types-dev:arm64. 250s Preparing to unpack .../399-librust-geo-types-dev_0.7.11-2_arm64.deb ... 250s Unpacking librust-geo-types-dev:arm64 (0.7.11-2) ... 250s Selecting previously unselected package librust-ghost-dev:arm64. 250s Preparing to unpack .../400-librust-ghost-dev_0.1.5-1_arm64.deb ... 250s Unpacking librust-ghost-dev:arm64 (0.1.5-1) ... 250s Selecting previously unselected package librust-hmac-dev:arm64. 250s Preparing to unpack .../401-librust-hmac-dev_0.12.1-1_arm64.deb ... 250s Unpacking librust-hmac-dev:arm64 (0.12.1-1) ... 251s Selecting previously unselected package librust-indoc-dev:arm64. 251s Preparing to unpack .../402-librust-indoc-dev_2.0.5-1_arm64.deb ... 251s Unpacking librust-indoc-dev:arm64 (2.0.5-1) ... 251s Selecting previously unselected package librust-inventory-dev:arm64. 251s Preparing to unpack .../403-librust-inventory-dev_0.3.2-1_arm64.deb ... 251s Unpacking librust-inventory-dev:arm64 (0.3.2-1) ... 251s Selecting previously unselected package librust-memoffset-dev:arm64. 251s Preparing to unpack .../404-librust-memoffset-dev_0.8.0-1_arm64.deb ... 251s Unpacking librust-memoffset-dev:arm64 (0.8.0-1) ... 251s Selecting previously unselected package librust-num-conv-dev:arm64. 251s Preparing to unpack .../405-librust-num-conv-dev_0.1.0-1_arm64.deb ... 251s Unpacking librust-num-conv-dev:arm64 (0.1.0-1) ... 251s Selecting previously unselected package librust-num-threads-dev:arm64. 251s Preparing to unpack .../406-librust-num-threads-dev_0.1.7-1_arm64.deb ... 251s Unpacking librust-num-threads-dev:arm64 (0.1.7-1) ... 251s Selecting previously unselected package librust-postgres-derive-dev:arm64. 251s Preparing to unpack .../407-librust-postgres-derive-dev_0.4.5-1_arm64.deb ... 251s Unpacking librust-postgres-derive-dev:arm64 (0.4.5-1) ... 251s Selecting previously unselected package librust-sha2-asm-dev:arm64. 251s Preparing to unpack .../408-librust-sha2-asm-dev_0.6.2-2_arm64.deb ... 251s Unpacking librust-sha2-asm-dev:arm64 (0.6.2-2) ... 251s Selecting previously unselected package librust-sha2-dev:arm64. 251s Preparing to unpack .../409-librust-sha2-dev_0.10.8-1_arm64.deb ... 251s Unpacking librust-sha2-dev:arm64 (0.10.8-1) ... 251s Selecting previously unselected package librust-unicode-bidi-dev:arm64. 251s Preparing to unpack .../410-librust-unicode-bidi-dev_0.3.13-1_arm64.deb ... 251s Unpacking librust-unicode-bidi-dev:arm64 (0.3.13-1) ... 251s Selecting previously unselected package librust-unicode-normalization-dev:arm64. 251s Preparing to unpack .../411-librust-unicode-normalization-dev_0.1.22-1_arm64.deb ... 251s Unpacking librust-unicode-normalization-dev:arm64 (0.1.22-1) ... 251s Selecting previously unselected package librust-stringprep-dev:arm64. 251s Preparing to unpack .../412-librust-stringprep-dev_0.1.2-1_arm64.deb ... 251s Unpacking librust-stringprep-dev:arm64 (0.1.2-1) ... 251s Selecting previously unselected package librust-postgres-protocol-dev:arm64. 251s Preparing to unpack .../413-librust-postgres-protocol-dev_0.6.6-2_arm64.deb ... 251s Unpacking librust-postgres-protocol-dev:arm64 (0.6.6-2) ... 251s Selecting previously unselected package librust-time-core-dev:arm64. 251s Preparing to unpack .../414-librust-time-core-dev_0.1.2-1_arm64.deb ... 251s Unpacking librust-time-core-dev:arm64 (0.1.2-1) ... 251s Selecting previously unselected package librust-time-macros-dev:arm64. 251s Preparing to unpack .../415-librust-time-macros-dev_0.2.16-1_arm64.deb ... 251s Unpacking librust-time-macros-dev:arm64 (0.2.16-1) ... 251s Selecting previously unselected package librust-time-dev:arm64. 251s Preparing to unpack .../416-librust-time-dev_0.3.36-2_arm64.deb ... 251s Unpacking librust-time-dev:arm64 (0.3.36-2) ... 251s Selecting previously unselected package librust-postgres-types-dev:arm64. 251s Preparing to unpack .../417-librust-postgres-types-dev_0.2.6-2_arm64.deb ... 251s Unpacking librust-postgres-types-dev:arm64 (0.2.6-2) ... 251s Selecting previously unselected package librust-rand-xorshift-dev:arm64. 251s Preparing to unpack .../418-librust-rand-xorshift-dev_0.3.0-2_arm64.deb ... 251s Unpacking librust-rand-xorshift-dev:arm64 (0.3.0-2) ... 251s Selecting previously unselected package librust-quick-error-dev:arm64. 251s Preparing to unpack .../419-librust-quick-error-dev_2.0.1-1_arm64.deb ... 251s Unpacking librust-quick-error-dev:arm64 (2.0.1-1) ... 251s Selecting previously unselected package librust-tempfile-dev:arm64. 251s Preparing to unpack .../420-librust-tempfile-dev_3.10.1-1_arm64.deb ... 251s Unpacking librust-tempfile-dev:arm64 (3.10.1-1) ... 251s Selecting previously unselected package librust-rusty-fork-dev:arm64. 252s Preparing to unpack .../421-librust-rusty-fork-dev_0.3.0-1_arm64.deb ... 252s Unpacking librust-rusty-fork-dev:arm64 (0.3.0-1) ... 252s Selecting previously unselected package librust-wait-timeout-dev:arm64. 252s Preparing to unpack .../422-librust-wait-timeout-dev_0.2.0-1_arm64.deb ... 252s Unpacking librust-wait-timeout-dev:arm64 (0.2.0-1) ... 252s Selecting previously unselected package librust-rusty-fork+wait-timeout-dev:arm64. 252s Preparing to unpack .../423-librust-rusty-fork+wait-timeout-dev_0.3.0-1_arm64.deb ... 252s Unpacking librust-rusty-fork+wait-timeout-dev:arm64 (0.3.0-1) ... 252s Selecting previously unselected package librust-unarray-dev:arm64. 252s Preparing to unpack .../424-librust-unarray-dev_0.1.4-1_arm64.deb ... 252s Unpacking librust-unarray-dev:arm64 (0.1.4-1) ... 252s Selecting previously unselected package librust-proptest-dev:arm64. 252s Preparing to unpack .../425-librust-proptest-dev_1.5.0-2_arm64.deb ... 252s Unpacking librust-proptest-dev:arm64 (1.5.0-2) ... 252s Selecting previously unselected package llvm-19-runtime. 252s Preparing to unpack .../426-llvm-19-runtime_1%3a19.1.2-1ubuntu1_arm64.deb ... 252s Unpacking llvm-19-runtime (1:19.1.2-1ubuntu1) ... 252s Selecting previously unselected package llvm-runtime:arm64. 252s Preparing to unpack .../427-llvm-runtime_1%3a19.0-60~exp1_arm64.deb ... 252s Unpacking llvm-runtime:arm64 (1:19.0-60~exp1) ... 252s Selecting previously unselected package llvm-19-linker-tools. 252s Preparing to unpack .../428-llvm-19-linker-tools_1%3a19.1.2-1ubuntu1_arm64.deb ... 252s Unpacking llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 252s Selecting previously unselected package libpfm4:arm64. 252s Preparing to unpack .../429-libpfm4_4.13.0+git83-g91970fe-1_arm64.deb ... 252s Unpacking libpfm4:arm64 (4.13.0+git83-g91970fe-1) ... 252s Selecting previously unselected package llvm-19. 252s Preparing to unpack .../430-llvm-19_1%3a19.1.2-1ubuntu1_arm64.deb ... 252s Unpacking llvm-19 (1:19.1.2-1ubuntu1) ... 252s Selecting previously unselected package llvm. 253s Preparing to unpack .../431-llvm_1%3a19.0-60~exp1_arm64.deb ... 253s Unpacking llvm (1:19.0-60~exp1) ... 253s Selecting previously unselected package binutils-mingw-w64-x86-64. 253s Preparing to unpack .../432-binutils-mingw-w64-x86-64_2.43.1-4ubuntu1+12_arm64.deb ... 253s Unpacking binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 253s Selecting previously unselected package binutils-mingw-w64-i686. 253s Preparing to unpack .../433-binutils-mingw-w64-i686_2.43.1-4ubuntu1+12_arm64.deb ... 253s Unpacking binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 253s Selecting previously unselected package librust-python3-dll-a-dev:arm64. 253s Preparing to unpack .../434-librust-python3-dll-a-dev_0.2.10-1_arm64.deb ... 253s Unpacking librust-python3-dll-a-dev:arm64 (0.2.10-1) ... 253s Selecting previously unselected package librust-target-lexicon-dev:arm64. 253s Preparing to unpack .../435-librust-target-lexicon-dev_0.12.14-1_arm64.deb ... 253s Unpacking librust-target-lexicon-dev:arm64 (0.12.14-1) ... 253s Selecting previously unselected package librust-pyo3-build-config-dev:arm64. 253s Preparing to unpack .../436-librust-pyo3-build-config-dev_0.22.6-1_arm64.deb ... 253s Unpacking librust-pyo3-build-config-dev:arm64 (0.22.6-1) ... 253s Selecting previously unselected package python3.12-dev. 253s Preparing to unpack .../437-python3.12-dev_3.12.7-3_arm64.deb ... 253s Unpacking python3.12-dev (3.12.7-3) ... 253s Selecting previously unselected package librust-pyo3-ffi-dev:arm64. 253s Preparing to unpack .../438-librust-pyo3-ffi-dev_0.22.6-1build1_arm64.deb ... 253s Unpacking librust-pyo3-ffi-dev:arm64 (0.22.6-1build1) ... 253s Selecting previously unselected package librust-pyo3-macros-backend-dev:arm64. 253s Preparing to unpack .../439-librust-pyo3-macros-backend-dev_0.22.6-1_arm64.deb ... 253s Unpacking librust-pyo3-macros-backend-dev:arm64 (0.22.6-1) ... 253s Selecting previously unselected package librust-pyo3-macros-dev:arm64. 253s Preparing to unpack .../440-librust-pyo3-macros-dev_0.22.6-1_arm64.deb ... 253s Unpacking librust-pyo3-macros-dev:arm64 (0.22.6-1) ... 253s Selecting previously unselected package librust-rust-decimal-dev:arm64. 253s Preparing to unpack .../441-librust-rust-decimal-dev_1.36.0-1_arm64.deb ... 253s Unpacking librust-rust-decimal-dev:arm64 (1.36.0-1) ... 253s Selecting previously unselected package librust-unindent-dev:arm64. 253s Preparing to unpack .../442-librust-unindent-dev_0.2.3-1_arm64.deb ... 253s Unpacking librust-unindent-dev:arm64 (0.2.3-1) ... 253s Selecting previously unselected package librust-pyo3-dev:arm64. 253s Preparing to unpack .../443-librust-pyo3-dev_0.22.6-1_arm64.deb ... 253s Unpacking librust-pyo3-dev:arm64 (0.22.6-1) ... 253s Selecting previously unselected package librust-rustc-hash-dev:arm64. 253s Preparing to unpack .../444-librust-rustc-hash-dev_1.1.0-1_arm64.deb ... 253s Unpacking librust-rustc-hash-dev:arm64 (1.1.0-1) ... 253s Selecting previously unselected package pybuild-plugin-autopkgtest. 253s Preparing to unpack .../445-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 253s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 254s Selecting previously unselected package python3-packaging. 254s Preparing to unpack .../446-python3-packaging_24.2-1_all.deb ... 254s Unpacking python3-packaging (24.2-1) ... 254s Selecting previously unselected package python3-pyproject-hooks. 254s Preparing to unpack .../447-python3-pyproject-hooks_1.2.0-1_all.deb ... 254s Unpacking python3-pyproject-hooks (1.2.0-1) ... 254s Selecting previously unselected package python3-toml. 254s Preparing to unpack .../448-python3-toml_0.10.2-1_all.deb ... 254s Unpacking python3-toml (0.10.2-1) ... 254s Selecting previously unselected package python3-wheel. 254s Preparing to unpack .../449-python3-wheel_0.45.1-1_all.deb ... 254s Unpacking python3-wheel (0.45.1-1) ... 254s Selecting previously unselected package python3-build. 254s Preparing to unpack .../450-python3-build_1.2.2-1_all.deb ... 254s Unpacking python3-build (1.2.2-1) ... 254s Selecting previously unselected package python3-installer. 254s Preparing to unpack .../451-python3-installer_0.7.0+dfsg1-3_all.deb ... 254s Unpacking python3-installer (0.7.0+dfsg1-3) ... 254s Selecting previously unselected package pybuild-plugin-pyproject. 254s Preparing to unpack .../452-pybuild-plugin-pyproject_6.20241024_all.deb ... 254s Unpacking pybuild-plugin-pyproject (6.20241024) ... 254s Selecting previously unselected package python3-all. 254s Preparing to unpack .../453-python3-all_3.12.6-0ubuntu1_arm64.deb ... 254s Unpacking python3-all (3.12.6-0ubuntu1) ... 254s Selecting previously unselected package python3-dateutil. 254s Preparing to unpack .../454-python3-dateutil_2.9.0-3_all.deb ... 254s Unpacking python3-dateutil (2.9.0-3) ... 254s Selecting previously unselected package python3-sortedcontainers. 254s Preparing to unpack .../455-python3-sortedcontainers_2.4.0-2_all.deb ... 254s Unpacking python3-sortedcontainers (2.4.0-2) ... 254s Selecting previously unselected package python3-hypothesis. 254s Preparing to unpack .../456-python3-hypothesis_6.119.3-1_all.deb ... 254s Unpacking python3-hypothesis (6.119.3-1) ... 254s Selecting previously unselected package python3-iniconfig. 254s Preparing to unpack .../457-python3-iniconfig_1.1.1-2_all.deb ... 254s Unpacking python3-iniconfig (1.1.1-2) ... 254s Selecting previously unselected package python3-pluggy. 254s Preparing to unpack .../458-python3-pluggy_1.5.0-1_all.deb ... 254s Unpacking python3-pluggy (1.5.0-1) ... 254s Selecting previously unselected package python3-pytest. 254s Preparing to unpack .../459-python3-pytest_8.3.3-1_all.deb ... 254s Unpacking python3-pytest (8.3.3-1) ... 254s Selecting previously unselected package python3-regex. 254s Preparing to unpack .../460-python3-regex_0.1.20240724-1build1_arm64.deb ... 254s Unpacking python3-regex (0.1.20240724-1build1) ... 254s Selecting previously unselected package python3-semantic-version. 254s Preparing to unpack .../461-python3-semantic-version_2.10.0-2_all.deb ... 254s Unpacking python3-semantic-version (2.10.0-2) ... 254s Selecting previously unselected package rustc. 254s Preparing to unpack .../462-rustc_1.80.1ubuntu2_arm64.deb ... 254s Unpacking rustc (1.80.1ubuntu2) ... 254s Selecting previously unselected package cargo. 254s Preparing to unpack .../463-cargo_1.80.1ubuntu2_arm64.deb ... 254s Unpacking cargo (1.80.1ubuntu2) ... 254s Selecting previously unselected package python3-setuptools-rust. 254s Preparing to unpack .../464-python3-setuptools-rust_1.9.0+dfsg-2_all.deb ... 254s Unpacking python3-setuptools-rust (1.9.0+dfsg-2) ... 255s Selecting previously unselected package python3-tiktoken. 255s Preparing to unpack .../465-python3-tiktoken_0.8.0-1build1_arm64.deb ... 255s Unpacking python3-tiktoken (0.8.0-1build1) ... 255s Selecting previously unselected package autopkgtest-satdep. 255s Preparing to unpack .../466-1-autopkgtest-satdep.deb ... 255s Unpacking autopkgtest-satdep (0) ... 255s Setting up dh-python (6.20241024) ... 255s Setting up librust-ciborium-io-dev:arm64 (0.2.2-1) ... 255s Setting up librust-crossbeam-utils-dev:arm64 (0.8.19-1) ... 255s Setting up librust-parking-dev:arm64 (2.2.0-1) ... 255s Setting up librust-ppv-lite86-dev:arm64 (0.2.16-1) ... 255s Setting up python3-iniconfig (1.1.1-2) ... 255s Setting up libsharpyuv0:arm64 (1.4.0-0.1) ... 255s Setting up librust-pin-utils-dev:arm64 (0.1.0-1) ... 255s Setting up librust-fnv-dev:arm64 (1.0.7-1) ... 255s Setting up librust-unindent-dev:arm64 (0.2.3-1) ... 255s Setting up librust-quick-error-dev:arm64 (2.0.1-1) ... 255s Setting up librust-traitobject-dev:arm64 (0.1.0-1) ... 255s Setting up librust-either-dev:arm64 (1.13.0-1) ... 255s Setting up binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 255s Setting up librust-adler-dev:arm64 (1.0.2-2) ... 255s Setting up librust-version-check-dev:arm64 (0.9.5-1) ... 255s Setting up librust-base64-dev:arm64 (0.21.7-1) ... 255s Setting up librust-indoc-dev:arm64 (2.0.5-1) ... 255s Setting up librust-anstyle-dev:arm64 (1.0.8-1) ... 255s Setting up librust-winapi-i686-pc-windows-gnu-dev:arm64 (0.4.0-1) ... 255s Setting up librust-futures-task-dev:arm64 (0.3.30-1) ... 255s Setting up librust-rustc-hash-dev:arm64 (1.1.0-1) ... 255s Setting up librust-wasm-bindgen-shared-dev:arm64 (0.2.87-1) ... 255s Setting up libarchive-zip-perl (1.68-1) ... 255s Setting up librust-colorchoice-dev:arm64 (1.0.0-1) ... 255s Setting up librust-fastrand-dev:arm64 (2.1.1-1) ... 255s Setting up libdebhelper-perl (13.20ubuntu1) ... 255s Setting up librust-unsafe-any-dev:arm64 (0.4.2-2) ... 255s Setting up librust-tinyvec-macros-dev:arm64 (0.1.0-1) ... 255s Setting up librust-libm-dev:arm64 (0.2.8-1) ... 255s Setting up librust-strsim-dev:arm64 (0.11.1-1) ... 255s Setting up libwebpdecoder3:arm64 (1.4.0-0.1) ... 255s Setting up m4 (1.4.19-4build1) ... 255s Setting up librust-rustc-demangle-dev:arm64 (0.1.21-1) ... 255s Setting up python3-all (3.12.6-0ubuntu1) ... 255s Setting up librust-const-cstr-dev:arm64 (0.3.0-1) ... 255s Setting up librust-fallible-iterator-dev:arm64 (0.3.0-2) ... 255s Setting up librust-ryu-dev:arm64 (1.0.15-1) ... 255s Setting up python3-sortedcontainers (2.4.0-2) ... 255s Setting up librust-humantime-dev:arm64 (2.1.0-1) ... 255s Setting up librust-anstyle-query-dev:arm64 (1.0.0-1) ... 255s Setting up librust-cast-dev:arm64 (0.3.0-1) ... 255s Setting up libgomp1:arm64 (14.2.0-8ubuntu1) ... 255s Setting up librust-subtle-dev:arm64 (2.6.1-1) ... 255s Setting up librust-simdutf8-dev:arm64 (0.1.4-4) ... 255s Setting up librust-atomic-waker-dev:arm64 (1.1.2-1) ... 255s Setting up librust-miniz-oxide-dev:arm64 (0.7.1-1) ... 255s Setting up librust-pin-project-lite-dev:arm64 (0.2.13-1) ... 255s Setting up python3-wheel (0.45.1-1) ... 255s Setting up librust-unicode-segmentation-dev:arm64 (1.11.0-1) ... 255s Setting up librust-typemap-dev:arm64 (0.3.3-2) ... 255s Setting up librust-compiler-builtins-dev:arm64 (0.1.101-1) ... 255s Setting up librust-weezl-dev:arm64 (0.1.5-1) ... 255s Setting up librust-utf8parse-dev:arm64 (0.2.1-1) ... 255s Setting up librust-crossbeam-epoch-dev:arm64 (0.9.18-1) ... 255s Setting up autotools-dev (20220109.1) ... 255s Setting up librust-tap-dev:arm64 (1.0.1-1) ... 255s Setting up python3-packaging (24.2-1) ... 255s Setting up librust-array-init-dev:arm64 (2.0.1-1) ... 255s Setting up libpkgconf3:arm64 (1.8.1-4) ... 255s Setting up libpfm4:arm64 (4.13.0+git83-g91970fe-1) ... 255s Setting up librust-oorandom-dev:arm64 (11.1.3-1) ... 255s Setting up libexpat1-dev:arm64 (2.6.4-1) ... 255s Setting up python3-pyproject-hooks (1.2.0-1) ... 256s Setting up librust-rustc-std-workspace-core-dev:arm64 (1.0.0-1) ... 256s Setting up librust-funty-dev:arm64 (2.0.0-1) ... 256s Setting up librust-futures-io-dev:arm64 (0.3.31-1) ... 256s Setting up librust-typenum-dev:arm64 (1.17.0-2) ... 256s Setting up uuid-dev:arm64 (2.40.2-1ubuntu1) ... 256s Setting up librust-core-maths-dev:arm64 (0.1.0-2) ... 256s Setting up librust-stable-deref-trait-dev:arm64 (1.2.0-1) ... 256s Setting up librust-critical-section-dev:arm64 (1.1.3-1) ... 256s Setting up librust-scopeguard-dev:arm64 (1.2.0-1) ... 256s Setting up librust-iana-time-zone-dev:arm64 (0.1.60-1) ... 256s Setting up fonts-dejavu-mono (2.37-8) ... 256s Setting up libmpc3:arm64 (1.3.1-1build2) ... 256s Setting up librust-rand-core-dev:arm64 (0.6.4-2) ... 256s Setting up python3-semantic-version (2.10.0-2) ... 256s Setting up autopoint (0.22.5-2) ... 256s Setting up libjsoncpp25:arm64 (1.9.5-6build1) ... 256s Setting up fonts-dejavu-core (2.37-8) ... 256s Setting up librust-seahash-dev:arm64 (4.1.0-1) ... 256s Setting up pkgconf-bin (1.8.1-4) ... 256s Setting up librust-ab-glyph-rasterizer-dev:arm64 (0.1.7-1) ... 256s Setting up binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 256s Setting up librust-time-core-dev:arm64 (0.1.2-1) ... 256s Setting up python3-regex (0.1.20240724-1build1) ... 256s Setting up librust-crunchy-dev:arm64 (0.2.2-1) ... 256s Setting up python3-toml (0.10.2-1) ... 256s Setting up librust-unicase-dev:arm64 (2.7.0-1) ... 256s Setting up librust-unicode-width-dev:arm64 (0.1.14-1) ... 256s Setting up python3-installer (0.7.0+dfsg1-3) ... 256s Setting up autoconf (2.72-3) ... 256s Setting up python3-pluggy (1.5.0-1) ... 256s Setting up libwebp7:arm64 (1.4.0-0.1) ... 256s Setting up libubsan1:arm64 (14.2.0-8ubuntu1) ... 256s Setting up zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 256s Setting up librust-unicode-ident-dev:arm64 (1.0.13-1) ... 256s Setting up librust-equivalent-dev:arm64 (1.0.1-1) ... 256s Setting up dwz (0.15-1build6) ... 256s Setting up librust-bitflags-1-dev:arm64 (1.3.2-5) ... 256s Setting up librust-uncased-dev:arm64 (0.9.6-2) ... 256s Setting up librust-slog-dev:arm64 (2.7.0-1) ... 256s Setting up python3-tiktoken (0.8.0-1build1) ... 257s Setting up librust-pure-rust-locales-dev:arm64 (0.8.1-1) ... 257s Setting up libhwasan0:arm64 (14.2.0-8ubuntu1) ... 257s Setting up librhash0:arm64 (1.4.3-3build1) ... 257s Setting up libasan8:arm64 (14.2.0-8ubuntu1) ... 257s Setting up librust-ttf-parser-dev:arm64 (0.24.1-1) ... 257s Setting up librust-cfg-if-dev:arm64 (1.0.0-1) ... 257s Setting up debugedit (1:5.1-1) ... 257s Setting up librust-color-quant-dev:arm64 (1.1.0-1) ... 257s Setting up python3-dateutil (2.9.0-3) ... 257s Setting up librust-blobby-dev:arm64 (0.3.1-1) ... 257s Setting up cmake-data (3.30.3-1) ... 257s Setting up llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 257s Setting up librust-byteorder-dev:arm64 (1.5.0-1) ... 257s Setting up libtsan2:arm64 (14.2.0-8ubuntu1) ... 257s Setting up librust-static-assertions-dev:arm64 (1.1.0-1) ... 257s Setting up librust-compiler-builtins+core-dev:arm64 (0.1.101-1) ... 257s Setting up librust-float-ord-dev:arm64 (0.3.2-1) ... 257s Setting up librust-autocfg-dev:arm64 (1.1.0-1) ... 257s Setting up libisl23:arm64 (0.27-1) ... 257s Setting up librust-time-macros-dev:arm64 (0.2.16-1) ... 257s Setting up llvm-19-runtime (1:19.1.2-1ubuntu1) ... 257s Setting up librust-futures-sink-dev:arm64 (0.3.31-1) ... 257s Setting up python3-build (1.2.2-1) ... 257s Setting up libsharpyuv-dev:arm64 (1.4.0-0.1) ... 257s Setting up librust-cfg-if-0.1-dev:arm64 (0.1.10-2) ... 257s Setting up librust-tinyvec-dev:arm64 (1.6.0-2) ... 257s Setting up libwebpmux3:arm64 (1.4.0-0.1) ... 257s Setting up librust-plotters-backend-dev:arm64 (0.3.7-1) ... 257s Setting up librust-shlex-dev:arm64 (1.3.0-1) ... 257s Setting up librust-indenter-dev:arm64 (0.3.3-1) ... 257s Setting up librust-cpp-demangle-dev:arm64 (0.4.0-1) ... 257s Setting up librust-winapi-x86-64-pc-windows-gnu-dev:arm64 (0.4.0-1) ... 257s Setting up libcc1-0:arm64 (14.2.0-8ubuntu1) ... 257s Setting up libbrotli-dev:arm64 (1.1.0-2build3) ... 257s Setting up liblsan0:arm64 (14.2.0-8ubuntu1) ... 257s Setting up libitm1:arm64 (14.2.0-8ubuntu1) ... 257s Setting up librust-clap-lex-dev:arm64 (0.7.2-2) ... 257s Setting up libhttp-parser2.9:arm64 (2.9.4-6build1) ... 257s Setting up librust-unarray-dev:arm64 (0.1.4-1) ... 257s Setting up libstd-rust-1.80:arm64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 257s Setting up librust-itertools-dev:arm64 (0.10.5-1) ... 257s Setting up librust-heck-dev:arm64 (0.4.1-1) ... 257s Setting up libbz2-dev:arm64 (1.0.8-6) ... 257s Setting up librust-num-conv-dev:arm64 (0.1.0-1) ... 257s Setting up automake (1:1.16.5-1.3ubuntu1) ... 257s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 257s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 257s Setting up librust-owned-ttf-parser-dev:arm64 (0.24.0-1) ... 257s Setting up librust-crossbeam-epoch+std-dev:arm64 (0.9.18-1) ... 257s Setting up librust-libc-dev:arm64 (0.2.161-1) ... 257s Setting up librust-is-terminal-dev:arm64 (0.4.13-1) ... 257s Setting up gettext (0.22.5-2) ... 257s Setting up librust-gif-dev:arm64 (0.11.3-1) ... 257s Setting up librust-crossbeam-deque-dev:arm64 (0.8.5-1) ... 257s Setting up librust-tiny-keccak-dev:arm64 (2.0.2-1) ... 257s Setting up librust-linux-raw-sys-dev:arm64 (0.4.14-1) ... 257s Setting up pybuild-plugin-pyproject (6.20241024) ... 257s Setting up fontconfig-config (2.15.0-1.1ubuntu2) ... 257s Setting up librust-getrandom-dev:arm64 (0.2.12-1) ... 257s Setting up python3-pytest (8.3.3-1) ... 257s Setting up librust-libloading-dev:arm64 (0.8.5-1) ... 257s Setting up librust-socket2-dev:arm64 (0.5.7-1) ... 257s Setting up librust-memmap2-dev:arm64 (0.9.3-1) ... 257s Setting up libwebpdemux2:arm64 (1.4.0-0.1) ... 257s Setting up python3-hypothesis (6.119.3-1) ... 258s Setting up librust-ab-glyph-rasterizer+libm-dev:arm64 (0.1.7-1) ... 258s Setting up libpng-dev:arm64 (1.6.44-2) ... 258s Setting up librust-tinyvec+tinyvec-macros-dev:arm64 (1.6.0-2) ... 258s Setting up librust-owning-ref-dev:arm64 (0.4.1-1) ... 258s Setting up librust-num-cpus-dev:arm64 (1.16.0-1) ... 258s Setting up librust-memoffset-dev:arm64 (0.8.0-1) ... 258s Setting up librust-cpufeatures-dev:arm64 (0.2.11-1) ... 258s Setting up libpython3.12-dev:arm64 (3.12.7-3) ... 258s Setting up librust-proc-macro2-dev:arm64 (1.0.86-1) ... 258s Setting up librust-compiler-builtins+rustc-dep-of-std-dev:arm64 (0.1.101-1) ... 258s Setting up librust-rayon-core-dev:arm64 (1.12.1-1) ... 258s Setting up librust-winapi-dev:arm64 (0.3.9-1) ... 258s Setting up pkgconf:arm64 (1.8.1-4) ... 258s Setting up librust-ab-glyph-dev:arm64 (0.2.28-1) ... 258s Setting up libstd-rust-1.80-dev:arm64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 258s Setting up libfreetype-dev:arm64 (2.13.3+dfsg-1) ... 258s Setting up intltool-debian (0.35.0+20060710.6) ... 258s Setting up librust-rand-core+getrandom-dev:arm64 (0.6.4-2) ... 258s Setting up librust-rand-xorshift-dev:arm64 (0.3.0-2) ... 258s Setting up librust-signal-hook-registry-dev:arm64 (1.4.0-1) ... 258s Setting up libwebp-dev:arm64 (1.4.0-0.1) ... 258s Setting up librust-errno-dev:arm64 (0.3.8-1) ... 258s Setting up librust-anes-dev:arm64 (0.1.6-1) ... 258s Setting up llvm-runtime:arm64 (1:19.0-60~exp1) ... 258s Setting up python3.12-dev (3.12.7-3) ... 258s Setting up librust-jobserver-dev:arm64 (0.1.32-1) ... 258s Setting up pkg-config:arm64 (1.8.1-4) ... 258s Setting up dh-strip-nondeterminism (1.14.0-1) ... 258s Setting up librust-crc32fast-dev:arm64 (1.4.2-1) ... 258s Setting up cpp-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 258s Setting up librust-num-traits-dev:arm64 (0.2.19-2) ... 258s Setting up librust-winapi-util-dev:arm64 (0.1.6-1) ... 258s Setting up librust-wait-timeout-dev:arm64 (0.2.0-1) ... 258s Setting up cmake (3.30.3-1) ... 258s Setting up libgit2-1.7:arm64 (1.7.2+ds-1ubuntu3) ... 258s Setting up llvm-19 (1:19.1.2-1ubuntu1) ... 258s Setting up libfontconfig1:arm64 (2.15.0-1.1ubuntu2) ... 258s Setting up libgcc-14-dev:arm64 (14.2.0-8ubuntu1) ... 258s Setting up librust-same-file-dev:arm64 (1.0.6-1) ... 258s Setting up librust-rayon-dev:arm64 (1.10.0-1) ... 258s Setting up librust-termcolor-dev:arm64 (1.4.1-1) ... 258s Setting up librust-pkg-config-dev:arm64 (0.3.27-1) ... 258s Setting up libstdc++-14-dev:arm64 (14.2.0-8ubuntu1) ... 258s Setting up librust-jpeg-decoder-dev:arm64 (0.3.0-1) ... 258s Setting up librust-dirs-sys-next-dev:arm64 (0.1.1-1) ... 258s Setting up librust-num-integer-dev:arm64 (0.1.46-1) ... 258s Setting up librust-dirs-next-dev:arm64 (2.0.0-1) ... 258s Setting up librust-num-threads-dev:arm64 (0.1.7-1) ... 258s Setting up libpython3-dev:arm64 (3.12.6-0ubuntu1) ... 258s Setting up librust-dlib-dev:arm64 (0.5.2-2) ... 258s Setting up libfontconfig-dev:arm64 (2.15.0-1.1ubuntu2) ... 258s Setting up librust-libwebp-sys-dev:arm64 (0.9.5-1build1) ... 258s Setting up po-debconf (1.0.21+nmu1) ... 258s Setting up librust-quote-dev:arm64 (1.0.37-1) ... 258s Setting up librust-libz-sys-dev:arm64 (1.1.20-1) ... 258s Setting up librust-syn-dev:arm64 (2.0.85-1) ... 258s Setting up librust-rand-core+std-dev:arm64 (0.6.4-2) ... 258s Setting up librust-powerfmt-macros-dev:arm64 (0.1.0-1) ... 258s Setting up cpp-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 258s Setting up librust-powerfmt-dev:arm64 (0.2.0-1) ... 258s Setting up librust-sval-derive-dev:arm64 (2.6.1-2) ... 258s Setting up libpython3-all-dev:arm64 (3.12.6-0ubuntu1) ... 258s Setting up librust-cc-dev:arm64 (1.1.14-1) ... 258s Setting up librust-zeroize-derive-dev:arm64 (1.4.2-1) ... 258s Setting up llvm (1:19.0-60~exp1) ... 258s Setting up librust-postgres-derive-dev:arm64 (0.4.5-1) ... 258s Setting up librust-syn-1-dev:arm64 (1.0.109-2) ... 258s Setting up cpp-14 (14.2.0-8ubuntu1) ... 258s Setting up librust-clap-derive-dev:arm64 (4.5.13-2) ... 258s Setting up librust-bytecheck-derive-dev:arm64 (0.6.12-1) ... 258s Setting up librust-no-panic-dev:arm64 (0.1.13-1) ... 258s Setting up cpp (4:14.1.0-2ubuntu1) ... 258s Setting up librust-serde-derive-dev:arm64 (1.0.210-1) ... 258s Setting up librust-walkdir-dev:arm64 (2.5.0-1) ... 258s Setting up gcc-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 258s Setting up librust-zerocopy-derive-dev:arm64 (0.7.32-2) ... 258s Setting up librust-sha1-asm-dev:arm64 (0.5.1-2) ... 258s Setting up librust-valuable-derive-dev:arm64 (0.1.0-1) ... 258s Setting up librust-ghost-dev:arm64 (0.1.5-1) ... 258s Setting up librust-serde-dev:arm64 (1.0.210-2) ... 258s Setting up librust-bytemuck-derive-dev:arm64 (1.5.0-2) ... 258s Setting up librust-derive-arbitrary-dev:arm64 (1.3.2-1) ... 258s Setting up librust-allocator-api2-dev:arm64 (0.2.16-1) ... 258s Setting up librust-cmake-dev:arm64 (0.1.45-1) ... 258s Setting up librust-async-attributes-dev (1.1.2-6) ... 258s Setting up librust-rand-chacha-dev:arm64 (0.3.1-2) ... 258s Setting up gcc-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 258s Setting up librust-futures-macro-dev:arm64 (0.3.30-1) ... 258s Setting up librust-ctor-dev:arm64 (0.1.26-1) ... 258s Setting up librust-unicode-bidi-dev:arm64 (0.3.13-1) ... 258s Setting up g++-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 258s Setting up librust-tracing-attributes-dev:arm64 (0.1.27-1) ... 258s Setting up librust-ptr-meta-derive-dev:arm64 (0.1.4-1) ... 258s Setting up librust-serde-fmt-dev (1.0.3-3) ... 258s Setting up librust-sha2-asm-dev:arm64 (0.6.2-2) ... 258s Setting up librust-portable-atomic-dev:arm64 (1.9.0-4) ... 258s Setting up librust-tokio-macros-dev:arm64 (2.4.0-2) ... 258s Setting up librust-flate2-dev:arm64 (1.0.34-1) ... 258s Setting up librust-freetype-sys-dev:arm64 (0.13.1-1) ... 258s Setting up librust-lock-api-dev:arm64 (0.4.12-1) ... 258s Setting up librust-ptr-meta-dev:arm64 (0.1.4-1) ... 258s Setting up librust-inventory-dev:arm64 (0.3.2-1) ... 258s Setting up librust-sval-dev:arm64 (2.6.1-2) ... 258s Setting up librust-itoa-dev:arm64 (1.0.9-1) ... 258s Setting up gcc-14 (14.2.0-8ubuntu1) ... 258s Setting up librust-bytes-dev:arm64 (1.8.0-1) ... 258s Setting up librust-bumpalo-dev:arm64 (3.16.0-1) ... 258s Setting up librust-python3-dll-a-dev:arm64 (0.2.10-1) ... 258s Setting up librust-siphasher-dev:arm64 (0.3.10-1) ... 258s Setting up librust-rand-core+serde-dev:arm64 (0.6.4-2) ... 258s Setting up librust-sval-ref-dev:arm64 (2.6.1-1) ... 258s Setting up librust-rkyv-derive-dev:arm64 (0.7.44-1) ... 258s Setting up librust-zerocopy-dev:arm64 (0.7.32-1) ... 258s Setting up librust-md5-asm-dev:arm64 (0.5.0-2) ... 258s Setting up librust-semver-dev:arm64 (1.0.23-1) ... 258s Setting up librust-freetype-dev:arm64 (0.7.0-4) ... 258s Setting up librust-bytemuck-dev:arm64 (1.14.0-1) ... 258s Setting up librust-bit-vec-dev:arm64 (0.6.3-1) ... 258s Setting up librust-zeroize-dev:arm64 (1.8.1-1) ... 258s Setting up librust-slab-dev:arm64 (0.4.9-1) ... 258s Setting up librust-arbitrary-dev:arm64 (1.3.2-1) ... 258s Setting up librust-valuable-dev:arm64 (0.1.0-4) ... 258s Setting up librust-target-lexicon-dev:arm64 (0.12.14-1) ... 258s Setting up librust-serde-test-dev:arm64 (1.0.171-1) ... 258s Setting up g++-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 258s Setting up librust-bit-set-dev:arm64 (0.5.2-1) ... 258s Setting up librust-concurrent-queue-dev:arm64 (2.5.0-4) ... 258s Setting up g++-14 (14.2.0-8ubuntu1) ... 258s Setting up librust-erased-serde-dev:arm64 (0.3.31-1) ... 258s Setting up librust-radium-dev:arm64 (1.1.0-1) ... 258s Setting up librust-bit-set+std-dev:arm64 (0.5.2-1) ... 258s Setting up librust-phf-shared-dev:arm64 (0.11.2-1) ... 258s Setting up librust-tiff-dev:arm64 (0.9.0-1) ... 258s Setting up librust-smol-str-dev:arm64 (0.2.0-1) ... 258s Setting up librust-atomic-dev:arm64 (0.6.0-1) ... 258s Setting up librust-generic-array-dev:arm64 (0.14.7-1) ... 258s Setting up librust-half-dev:arm64 (1.8.2-4) ... 258s Setting up librust-phf-dev:arm64 (0.11.2-1) ... 258s Setting up librust-spin-dev:arm64 (0.9.8-4) ... 258s Setting up librust-sval-dynamic-dev:arm64 (2.6.1-1) ... 258s Setting up librust-qoi-dev:arm64 (0.4.1-2) ... 258s Setting up librust-async-task-dev (4.7.1-3) ... 258s Setting up librust-crypto-common-dev:arm64 (0.1.6-1) ... 258s Setting up librust-ciborium-ll-dev:arm64 (0.2.2-1) ... 258s Setting up librust-futures-core-dev:arm64 (0.3.30-1) ... 258s Setting up librust-lazy-static-dev:arm64 (1.5.0-1) ... 258s Setting up libtool (2.4.7-8) ... 258s Setting up librust-sval-buffer-dev:arm64 (2.6.1-1) ... 258s Setting up librust-arrayvec-dev:arm64 (0.7.4-2) ... 258s Setting up librust-png-dev:arm64 (0.17.7-3) ... 258s Setting up librust-rustc-version-dev:arm64 (0.4.0-1) ... 258s Setting up librust-event-listener-dev (5.3.1-8) ... 258s Setting up librust-smallvec-dev:arm64 (1.13.2-1) ... 258s Setting up librust-sval-fmt-dev:arm64 (2.6.1-1) ... 258s Setting up librust-const-oid-dev:arm64 (0.9.3-1) ... 258s Setting up gcc (4:14.1.0-2ubuntu1) ... 258s Setting up librust-anstyle-parse-dev:arm64 (0.2.1-1) ... 258s Setting up rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 258s Setting up dh-autoreconf (20) ... 258s Setting up librust-ciborium-dev:arm64 (0.2.2-2) ... 258s Setting up librust-block-buffer-dev:arm64 (0.10.2-2) ... 258s Setting up librust-pathfinder-simd-dev:arm64 (0.5.2-1) ... 258s Setting up librust-unicode-normalization-dev:arm64 (0.1.22-1) ... 258s Setting up librust-anstream-dev:arm64 (0.6.15-1) ... 258s Setting up librust-bitflags-dev:arm64 (2.6.0-1) ... 258s Setting up librust-regex-syntax-dev:arm64 (0.8.2-1) ... 258s Setting up g++ (4:14.1.0-2ubuntu1) ... 258s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 258s Setting up rustc (1.80.1ubuntu2) ... 258s Setting up librust-parking-lot-core-dev:arm64 (0.9.10-1) ... 258s Setting up build-essential (12.10ubuntu1) ... 258s Setting up librust-futures-channel-dev:arm64 (0.3.30-1) ... 258s Setting up cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 258s Setting up librust-once-cell-dev:arm64 (1.20.2-1) ... 258s Setting up librust-pyo3-build-config-dev:arm64 (0.22.6-1) ... 258s Setting up librust-phf-shared+uncased-dev:arm64 (0.11.2-1) ... 258s Setting up librust-digest-dev:arm64 (0.10.7-2) ... 258s Setting up librust-md-5-dev:arm64 (0.10.6-1) ... 258s Setting up librust-sval-serde-dev:arm64 (2.6.1-1) ... 258s Setting up librust-parking-lot-dev:arm64 (0.12.3-1) ... 258s Setting up librust-event-listener-strategy-dev:arm64 (0.5.2-3) ... 258s Setting up librust-pyo3-macros-backend-dev:arm64 (0.22.6-1) ... 258s Setting up librust-pyo3-ffi-dev:arm64 (0.22.6-1build1) ... 258s Setting up librust-const-random-macro-dev:arm64 (0.1.16-2) ... 258s Setting up librust-const-random-dev:arm64 (0.1.17-2) ... 258s Setting up librust-pyo3-macros-dev:arm64 (0.22.6-1) ... 258s Setting up librust-sha1-dev:arm64 (0.10.6-1) ... 258s Setting up debhelper (13.20ubuntu1) ... 258s Setting up librust-ahash-dev (0.8.11-8) ... 258s Setting up librust-async-channel-dev (2.3.1-8) ... 258s Setting up librust-stringprep-dev:arm64 (0.1.2-1) ... 258s Setting up librust-tracing-core-dev:arm64 (0.1.32-1) ... 258s Setting up cargo (1.80.1ubuntu2) ... 258s Setting up librust-async-lock-dev (3.4.0-4) ... 258s Setting up python3-setuptools-rust (1.9.0+dfsg-2) ... 258s Setting up librust-eyre-dev:arm64 (0.6.12-1) ... 258s Setting up librust-yeslogic-fontconfig-sys-dev:arm64 (3.0.1-1) ... 258s Setting up librust-sha2-dev:arm64 (0.10.8-1) ... 258s Setting up librust-hmac-dev:arm64 (0.12.1-1) ... 258s Setting up librust-rustix-dev:arm64 (0.38.32-1) ... 258s Setting up librust-wyz-dev:arm64 (0.5.1-1) ... 258s Setting up librust-bitvec-dev:arm64 (1.0.1-1) ... 258s Setting up librust-phf+uncased-dev:arm64 (0.11.2-1) ... 258s Setting up librust-value-bag-sval2-dev:arm64 (1.9.0-1) ... 258s Setting up librust-tempfile-dev:arm64 (3.10.1-1) ... 258s Setting up librust-eyre+default-dev:arm64 (0.6.12-1) ... 258s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 258s Setting up librust-rusty-fork-dev:arm64 (0.3.0-1) ... 258s Setting up librust-hashbrown-dev:arm64 (0.14.5-5) ... 258s Setting up librust-rusty-fork+wait-timeout-dev:arm64 (0.3.0-1) ... 258s Setting up librust-terminal-size-dev:arm64 (0.3.0-2) ... 258s Setting up librust-indexmap-dev:arm64 (2.2.6-1) ... 258s Setting up librust-gimli-dev:arm64 (0.28.1-2) ... 258s Setting up librust-webp-dev:arm64 (0.2.6-1) ... 258s Setting up librust-memchr-dev:arm64 (2.7.4-1) ... 258s Setting up librust-futures-util-dev:arm64 (0.3.30-2) ... 258s Setting up librust-csv-core-dev:arm64 (0.1.11-1) ... 258s Setting up librust-futures-lite-dev:arm64 (2.3.0-2) ... 258s Setting up librust-csv-dev:arm64 (1.3.0-1) ... 258s Setting up librust-serde-json-dev:arm64 (1.0.128-1) ... 258s Setting up librust-async-executor-dev (1.13.1-1) ... 258s Setting up librust-futures-executor-dev:arm64 (0.3.30-1) ... 258s Setting up librust-value-bag-serde1-dev:arm64 (1.9.0-1) ... 258s Setting up librust-tinytemplate-dev:arm64 (1.2.1-1) ... 258s Setting up librust-futures-dev:arm64 (0.3.30-2) ... 258s Setting up librust-value-bag-dev:arm64 (1.9.0-1) ... 258s Setting up librust-log-dev:arm64 (0.4.22-1) ... 258s Setting up librust-kv-log-macro-dev (1.0.8-4) ... 258s Setting up librust-pathfinder-geometry-dev:arm64 (0.5.1-1) ... 258s Setting up librust-tracing-dev:arm64 (0.1.40-1) ... 258s Setting up librust-polling-dev:arm64 (3.4.0-1) ... 258s Setting up librust-aho-corasick-dev:arm64 (1.1.3-1) ... 258s Setting up librust-font-kit-dev:arm64 (0.11.0-2) ... 258s Setting up librust-async-io-dev:arm64 (2.3.3-4) ... 258s Setting up librust-blocking-dev (1.6.1-5) ... 258s Setting up librust-async-net-dev (2.0.0-4) ... 258s Setting up librust-rand-dev:arm64 (0.8.5-1) ... 258s Setting up librust-mio-dev:arm64 (1.0.2-2) ... 258s Setting up librust-wasm-bindgen-backend-dev:arm64 (0.2.87-1) ... 258s Setting up librust-twox-hash-dev:arm64 (1.6.3-1) ... 258s Setting up librust-proptest-dev:arm64 (1.5.0-2) ... 258s Setting up librust-wasm-bindgen-macro-support-dev:arm64 (0.2.87-1) ... 258s Setting up librust-regex-automata-dev:arm64 (0.4.7-1) ... 258s Setting up librust-wasm-bindgen-macro-support+spans-dev:arm64 (0.2.87-1) ... 258s Setting up librust-wasm-bindgen-macro-dev:arm64 (0.2.87-1) ... 258s Setting up librust-uuid-dev:arm64 (1.10.0-1) ... 258s Setting up librust-bstr-dev:arm64 (1.7.0-2build1) ... 258s Setting up librust-async-signal-dev:arm64 (0.2.10-1) ... 258s Setting up librust-bytecheck-dev:arm64 (0.6.12-1) ... 258s Setting up librust-postgres-protocol-dev:arm64 (0.6.6-2) ... 258s Setting up librust-async-fs-dev (2.1.2-4) ... 258s Setting up librust-wasm-bindgen-dev:arm64 (0.2.87-1) ... 258s Setting up librust-convert-case-dev:arm64 (0.6.0-2) ... 258s Setting up librust-regex-dev:arm64 (1.10.6-1) ... 258s Setting up librust-fancy-regex-dev:arm64 (0.11.0-2) ... 258s Setting up librust-async-process-dev (2.3.0-1) ... 258s Setting up librust-derive-more-dev:arm64 (0.99.17-1) ... 258s Setting up librust-wasm-bindgen-macro+spans-dev:arm64 (0.2.87-1) ... 258s Setting up librust-ruzstd-dev:arm64 (0.5.0-1) ... 258s Setting up librust-rend-dev:arm64 (0.4.0-1) ... 258s Setting up librust-env-logger-dev:arm64 (0.10.2-2) ... 258s Setting up librust-wasm-bindgen+spans-dev:arm64 (0.2.87-1) ... 258s Setting up librust-wasm-bindgen+default-dev:arm64 (0.2.87-1) ... 258s Setting up librust-rkyv-dev:arm64 (0.7.44-1) ... 258s Setting up librust-eui48-dev:arm64 (1.1.0-2) ... 258s Setting up librust-parse-zoneinfo-dev:arm64 (0.3.0-1) ... 258s Setting up librust-smol-dev (2.0.2-1) ... 258s Setting up librust-js-sys-dev:arm64 (0.3.64-1) ... 258s Setting up librust-num-complex-dev:arm64 (0.4.6-2) ... 258s Setting up librust-object-dev:arm64 (0.32.2-1) ... 258s Setting up librust-approx-dev:arm64 (0.5.1-1) ... 258s Setting up librust-web-sys-dev:arm64 (0.3.64-2) ... 258s Setting up librust-quickcheck-dev:arm64 (1.0.3-3) ... 258s Setting up librust-geo-types-dev:arm64 (0.7.11-2) ... 258s Setting up librust-deranged-dev:arm64 (0.3.11-1) ... 258s Setting up librust-num-bigint-dev:arm64 (0.4.6-1) ... 258s Setting up librust-addr2line-dev:arm64 (0.21.0-2) ... 258s Setting up librust-num-rational-dev:arm64 (0.4.2-1) ... 258s Setting up librust-chrono-dev:arm64 (0.4.38-2) ... 258s Setting up librust-image-dev:arm64 (0.24.7-2) ... 258s Setting up librust-time-dev:arm64 (0.3.36-2) ... 258s Setting up librust-plotters-bitmap-dev:arm64 (0.3.3-3) ... 258s Setting up librust-backtrace-dev:arm64 (0.3.69-2) ... 258s Setting up librust-postgres-types-dev:arm64 (0.2.6-2) ... 258s Setting up librust-tokio-dev:arm64 (1.39.3-3) ... 258s Setting up librust-async-global-executor-dev:arm64 (2.4.1-5) ... 258s Setting up librust-plotters-svg-dev:arm64 (0.3.5-1) ... 258s Setting up librust-clap-builder-dev:arm64 (4.5.15-2) ... 259s Setting up librust-rust-decimal-dev:arm64 (1.36.0-1) ... 259s Setting up librust-clap-dev:arm64 (4.5.16-1) ... 259s Setting up librust-async-std-dev (1.13.0-1) ... 259s Setting up librust-anyhow-dev:arm64 (1.0.86-1) ... 259s Setting up librust-plotters-dev:arm64 (0.3.5-4) ... 259s Setting up librust-criterion-dev (0.5.1-6) ... 259s Setting up librust-phf-generator-dev:arm64 (0.11.2-2) ... 259s Setting up librust-phf-codegen-dev:arm64 (0.11.2-1) ... 259s Setting up librust-chrono-tz-build-dev:arm64 (0.2.1-1) ... 259s Setting up librust-chrono-tz-dev:arm64 (0.8.6-2) ... 259s Setting up librust-pyo3-dev:arm64 (0.22.6-1) ... 259s Setting up autopkgtest-satdep (0) ... 259s Processing triggers for libc-bin (2.40-1ubuntu3) ... 259s Processing triggers for systemd (256.5-2ubuntu4) ... 259s Processing triggers for man-db (2.13.0-1) ... 260s Processing triggers for install-info (7.1.1-1) ... 283s (Reading database ... 105658 files and directories currently installed.) 283s Removing autopkgtest-satdep (0) ... 283s autopkgtest [09:25:16]: test pybuild-autopkgtest: pybuild-autopkgtest 283s autopkgtest [09:25:16]: test pybuild-autopkgtest: [----------------------- 284s pybuild-autopkgtest 284s I: pybuild base:311: cd /tmp/autopkgtest.tkneb0/autopkgtest_tmp/build; python3.12 -m pytest tests 284s ============================= test session starts ============================== 284s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 284s rootdir: /tmp/autopkgtest.tkneb0/autopkgtest_tmp/build 284s configfile: pyproject.toml 284s plugins: hypothesis-6.119.3, typeguard-4.4.1 284s collected 30 items 284s 859s tests/test_encoding.py FFFFFFFFFFFFFFFFFFFFFF [ 73%] 860s tests/test_misc.py F. [ 80%] 863s tests/test_offsets.py FF [ 86%] 864s tests/test_pickle.py F [ 90%] 867s tests/test_simple_public.py FF. [100%] 867s 867s =================================== FAILURES =================================== 867s _________________________________ test_simple __________________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_simple(): 867s > enc = tiktoken.get_encoding("gpt2") 867s 867s tests/test_encoding.py:15: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 867s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 867s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _____________________________ test_simple_repeated _____________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_simple_repeated(): 867s > enc = tiktoken.get_encoding("gpt2") 867s 867s tests/test_encoding.py:32: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 867s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 867s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_simple_regex _______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_simple_regex(): 867s > enc = tiktoken.get_encoding("cl100k_base") 867s 867s tests/test_encoding.py:53: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_basic_encode _______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_basic_encode(): 867s > enc = tiktoken.get_encoding("r50k_base") 867s 867s tests/test_encoding.py:62: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_encode_empty _______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_encode_empty(): 867s > enc = tiktoken.get_encoding("r50k_base") 867s 867s tests/test_encoding.py:74: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_encode_bytes _______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_encode_bytes(): 867s > enc = tiktoken.get_encoding("cl100k_base") 867s 867s tests/test_encoding.py:79: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _________________________ test_encode_surrogate_pairs __________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_encode_surrogate_pairs(): 867s > enc = tiktoken.get_encoding("cl100k_base") 867s 867s tests/test_encoding.py:84: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _________________ test_catastrophically_repetitive[r50k_base] __________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:96: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ________________ test_catastrophically_repetitive[cl100k_base] _________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:96: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _______________________ test_basic_roundtrip[r50k_base] ________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_basic_roundtrip(make_enc): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:115: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________ test_basic_roundtrip[cl100k_base] _______________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_basic_roundtrip(make_enc): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:115: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ________________________ test_hyp_roundtrip[r50k_base] _________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(text=st.text()) 867s 867s tests/test_encoding.py:131: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:134: in test_hyp_roundtrip 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_roundtrip( 867s E make_enc=functools.partial(get_encoding, 'r50k_base'), 867s E text='', # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _______________________ test_hyp_roundtrip[cl100k_base] ________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(text=st.text()) 867s 867s tests/test_encoding.py:131: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:134: in test_hyp_roundtrip 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_roundtrip( 867s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 867s E text='', # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ____________________ test_single_token_roundtrip[r50k_base] ____________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connE: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.tkneb0/autopkgtest_tmp/build; python3.12 -m pytest tests 867s ect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:141: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ___________________ test_single_token_roundtrip[cl100k_base] ___________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:141: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_special_token ______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_special_token(): 867s > enc = tiktoken.get_encoding("cl100k_base") 867s 867s tests/test_encoding.py:157: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _____________________ test_hyp_special_ordinary[r50k_base] _____________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(text=st.text()) 867s 867s tests/test_encoding.py:208: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:211: in test_hyp_special_ordinary 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_special_ordinary( 867s E make_enc=functools.partial(get_encoding, 'r50k_base'), 867s E text='', # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ____________________ test_hyp_special_ordinary[cl100k_base] ____________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(text=st.text()) 867s 867s tests/test_encoding.py:208: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:211: in test_hyp_special_ordinary 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_special_ordinary( 867s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 867s E text='', # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _________________________ test_batch_encode[r50k_base] _________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:222: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Mpybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 867s ax retries exceeded with url: /encodings/r50k_base.tiktoken (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ________________________ test_batch_encode[cl100k_base] ________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 867s > enc = make_enc() 867s 867s tests/test_encoding.py:222: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _____________________ test_hyp_batch_roundtrip[r50k_base] ______________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headmake: *** [/tmp/xHqtQGaAvy/run:4: pybuild-autopkgtest] Error 25 867s ers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'r50k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(batch=st.lists(st.text())) 867s 867s tests/test_encoding.py:237: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_batch_roundtrip( 867s E make_enc=functools.partial(get_encoding, 'r50k_base'), 867s E batch=[], # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ____________________ test_hyp_batch_roundtrip[cl100k_base] _____________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: boolpybuild-autopkgtest: error: /tmp/xHqtQGaAvy/run pybuild-autopkgtest returned exit code 2 867s = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 867s > @hypothesis.given(batch=st.lists(st.text())) 867s 867s tests/test_encoding.py:237: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_batch_roundtrip( 867s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 867s E batch=[], # or any other generated value 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ___________________________ test_encoding_for_model ____________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_encoding_for_model(): 867s > enc = tiktoken.encoding_for_model("gpt2") 867s 867s tests/test_misc.py:8: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 867s return get_encoding(encoding_name_for_model(model_name)) 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 867s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 867s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ________________________ test_hyp_offsets[cl100k_base] _________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s make_enc = functools.partial(, 'cl100k_base') 867s 867s @pytest.mark.parametrize("make_enc", SOME_ENCODING_FACTORIES) 867s > @hypothesis.given(data=st.data()) 867s 867s tests/test_offsets.py:29: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s tests/test_offsets.py:32: in test_hyp_offsets 867s enc = make_enc() 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s E Falsifying example: test_hyp_offsets( 867s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 867s E data=data(...), 867s E ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ______________________________ test_basic_offsets ______________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_basic_offsets(): 867s > enc = tiktoken.get_encoding("cl100k_base") 867s 867s tests/test_offsets.py:50: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _________________________________ test_pickle __________________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_pickle(): 867s import pickle 867s 867s > enc_old = tiktoken.get_encoding("r50k_base") 867s 867s tests/test_pickle.py:7: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 867s mergeable_ranks = load_tiktoken_bpe( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 867s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s _________________________________ test_simple __________________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_simple(): 867s # Note that there are more actual tests, they're just not currently public :-) 867s > enc = tiktoken.get_encoding("gpt2") 867s 867s tests/test_simple_public.py:9: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 867s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 867s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s ___________________________ test_encoding_for_model ____________________________ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s > sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 867s raise err 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 867s source_address = None, socket_options = [(6, 1, 1)] 867s 867s def create_connection( 867s address: tuple[str, int], 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s source_address: tuple[str, int] | None = None, 867s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 867s ) -> socket.socket: 867s """Connect to *address* and return the socket object. 867s 867s Convenience function. Connect to *address* (a 2-tuple ``(host, 867s port)``) and return the socket object. Passing the optional 867s *timeout* parameter will set the timeout on the socket instance 867s before attempting to connect. If no *timeout* is supplied, the 867s global default timeout setting returned by :func:`socket.getdefaulttimeout` 867s is used. If *source_address* is set it must be a tuple of (host, port) 867s for the socket to bind as a source address before making the connection. 867s An host of '' or port 0 tells the OS to use the default. 867s """ 867s 867s host, port = address 867s if host.startswith("["): 867s host = host.strip("[]") 867s err = None 867s 867s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 867s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 867s # The original create_connection function always returns all records. 867s family = allowed_gai_family() 867s 867s try: 867s host.encode("idna") 867s except UnicodeError: 867s raise LocationParseError(f"'{host}', label empty or too long") from None 867s 867s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 867s af, socktype, proto, canonname, sa = res 867s sock = None 867s try: 867s sock = socket.socket(af, socktype, proto) 867s 867s # If provided, set socket level options before connecting. 867s _set_socket_options(sock, socket_options) 867s 867s if timeout is not _DEFAULT_TIMEOUT: 867s sock.settimeout(timeout) 867s if source_address: 867s sock.bind(source_address) 867s > sock.connect(sa) 867s E ConnectionRefusedError: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 867s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 867s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s redirect = False, assert_same_host = False 867s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 867s release_conn = False, chunked = False, body_pos = None, preload_content = False 867s decode_content = False, response_kw = {} 867s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 867s destination_scheme = None, conn = None, release_this_conn = True 867s http_tunnel_required = False, err = None, clean_exit = False 867s 867s def urlopen( # type: ignore[override] 867s self, 867s method: str, 867s url: str, 867s body: _TYPE_BODY | None = None, 867s headers: typing.Mapping[str, str] | None = None, 867s retries: Retry | bool | int | None = None, 867s redirect: bool = True, 867s assert_same_host: bool = True, 867s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 867s pool_timeout: int | None = None, 867s release_conn: bool | None = None, 867s chunked: bool = False, 867s body_pos: _TYPE_BODY_POSITION | None = None, 867s preload_content: bool = True, 867s decode_content: bool = True, 867s **response_kw: typing.Any, 867s ) -> BaseHTTPResponse: 867s """ 867s Get a connection from the pool and perform an HTTP request. This is the 867s lowest level call for making a request, so you'll need to specify all 867s the raw details. 867s 867s .. note:: 867s 867s More commonly, it's appropriate to use a convenience method 867s such as :meth:`request`. 867s 867s .. note:: 867s 867s `release_conn` will only behave as expected if 867s `preload_content=False` because we want to make 867s `preload_content=False` the default behaviour someday soon without 867s breaking backwards compatibility. 867s 867s :param method: 867s HTTP request method (such as GET, POST, PUT, etc.) 867s 867s :param url: 867s The URL to perform the request on. 867s 867s :param body: 867s Data to send in the request body, either :class:`str`, :class:`bytes`, 867s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 867s 867s :param headers: 867s Dictionary of custom headers to send, such as User-Agent, 867s If-None-Match, etc. If None, pool headers are used. If provided, 867s these headers completely replace any pool-specific headers. 867s 867s :param retries: 867s Configure the number of retries to allow before raising a 867s :class:`~urllib3.exceptions.MaxRetryError` exception. 867s 867s Pass ``None`` to retry until you receive a response. Pass a 867s :class:`~urllib3.util.retry.Retry` object for fine-grained control 867s over different types of retries. 867s Pass an integer number to retry connection errors that many times, 867s but no other types of errors. Pass zero to never retry. 867s 867s If ``False``, then retries are disabled and any exception is raised 867s immediately. Also, instead of raising a MaxRetryError on redirects, 867s the redirect response will be returned. 867s 867s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 867s 867s :param redirect: 867s If True, automatically handle redirects (status codes 301, 302, 867s 303, 307, 308). Each redirect counts as a retry. Disabling retries 867s will disable redirect, too. 867s 867s :param assert_same_host: 867s If ``True``, will make sure that the host of the pool requests is 867s consistent else will raise HostChangedError. When ``False``, you can 867s use the pool on an HTTP proxy and request foreign hosts. 867s 867s :param timeout: 867s If specified, overrides the default timeout for this one 867s request. It may be a float (in seconds) or an instance of 867s :class:`urllib3.util.Timeout`. 867s 867s :param pool_timeout: 867s If set and the pool is set to block=True, then this method will 867s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 867s connection is available within the time period. 867s 867s :param bool preload_content: 867s If True, the response's body will be preloaded into memory. 867s 867s :param bool decode_content: 867s If True, will attempt to decode the body based on the 867s 'content-encoding' header. 867s 867s :param release_conn: 867s If False, then the urlopen call will not release the connection 867s back into the pool once a response is received (but will release if 867s you read the entire contents of the response such as when 867s `preload_content=True`). This is useful if you're not preloading 867s the response's content immediately. You will need to call 867s ``r.release_conn()`` on the response ``r`` to return the connection 867s back into the pool. If None, it takes the value of ``preload_content`` 867s which defaults to ``True``. 867s 867s :param bool chunked: 867s If True, urllib3 will send the body using chunked transfer 867s encoding. Otherwise, urllib3 will send the body using the standard 867s content-length form. Defaults to False. 867s 867s :param int body_pos: 867s Position to seek to in file-like body in the event of a retry or 867s redirect. Typically this won't need to be set because urllib3 will 867s auto-populate the value when needed. 867s """ 867s parsed_url = parse_url(url) 867s destination_scheme = parsed_url.scheme 867s 867s if headers is None: 867s headers = self.headers 867s 867s if not isinstance(retries, Retry): 867s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 867s 867s if release_conn is None: 867s release_conn = preload_content 867s 867s # Check host 867s if assert_same_host and not self.is_same_host(url): 867s raise HostChangedError(self, url, retries) 867s 867s # Ensure that the URL we're connecting to is properly encoded 867s if url.startswith("/"): 867s url = to_str(_encode_target(url)) 867s else: 867s url = to_str(parsed_url.url) 867s 867s conn = None 867s 867s # Track whether `conn` needs to be released before 867s # returning/raising/recursing. Update this variable if necessary, and 867s # leave `release_conn` constant throughout the function. That way, if 867s # the function recurses, the original value of `release_conn` will be 867s # passed down into the recursive call, and its value will be respected. 867s # 867s # See issue #651 [1] for details. 867s # 867s # [1] 867s release_this_conn = release_conn 867s 867s http_tunnel_required = connection_requires_http_tunnel( 867s self.proxy, self.proxy_config, destination_scheme 867s ) 867s 867s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 867s # have to copy the headers dict so we can safely change it without those 867s # changes being reflected in anyone else's copy. 867s if not http_tunnel_required: 867s headers = headers.copy() # type: ignore[attr-defined] 867s headers.update(self.proxy_headers) # type: ignore[union-attr] 867s 867s # Must keep the exception bound to a separate variable or else Python 3 867s # complains about UnboundLocalError. 867s err = None 867s 867s # Keep track of whether we cleanly exited the except block. This 867s # ensures we do proper cleanup in finally. 867s clean_exit = False 867s 867s # Rewind body position, if needed. Record current position 867s # for future rewinds in the event of a redirect/retry. 867s body_pos = set_file_position(body, body_pos) 867s 867s try: 867s # Request a connection from the queue. 867s timeout_obj = self._get_timeout(timeout) 867s conn = self._get_conn(timeout=pool_timeout) 867s 867s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 867s 867s # Is this a closed/new connection that requires CONNECT tunnelling? 867s if self.proxy is not None and http_tunnel_required and conn.is_closed: 867s try: 867s self._prepare_proxy(conn) 867s except (BaseSSLError, OSError, SocketTimeout) as e: 867s self._raise_timeout( 867s err=e, url=self.proxy.url, timeout_value=conn.timeout 867s ) 867s raise 867s 867s # If we're going to release the connection in ``finally:``, then 867s # the response doesn't need to know about the connection. Otherwise 867s # it will also try to release it and we'll have a double-release 867s # mess. 867s response_conn = conn if not release_conn else None 867s 867s # Make the request on the HTTPConnection object 867s > response = self._make_request( 867s conn, 867s method, 867s url, 867s timeout=timeout_obj, 867s body=body, 867s headers=headers, 867s chunked=chunked, 867s retries=retries, 867s response_conn=response_conn, 867s preload_content=preload_content, 867s decode_content=decode_content, 867s **response_kw, 867s ) 867s 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 867s raise new_e 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 867s self._validate_conn(conn) 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 867s conn.connect() 867s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 867s self.sock = sock = self._new_conn() 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s 867s def _new_conn(self) -> socket.socket: 867s """Establish a socket connection and set nodelay settings on it. 867s 867s :return: New socket connection. 867s """ 867s try: 867s sock = connection.create_connection( 867s (self._dns_host, self.port), 867s self.timeout, 867s source_address=self.source_address, 867s socket_options=self.socket_options, 867s ) 867s except socket.gaierror as e: 867s raise NameResolutionError(self.host, self, e) from e 867s except SocketTimeout as e: 867s raise ConnectTimeoutError( 867s self, 867s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 867s ) from e 867s 867s except OSError as e: 867s > raise NewConnectionError( 867s self, f"Failed to establish a new connection: {e}" 867s ) from e 867s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 867s 867s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 867s 867s The above exception was the direct cause of the following exception: 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s > resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:667: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 867s retries = retries.increment( 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 867s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 867s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 867s _pool = 867s _stacktrace = 867s 867s def increment( 867s self, 867s method: str | None = None, 867s url: str | None = None, 867s response: BaseHTTPResponse | None = None, 867s error: Exception | None = None, 867s _pool: ConnectionPool | None = None, 867s _stacktrace: TracebackType | None = None, 867s ) -> Retry: 867s """Return a new Retry object with incremented retry counters. 867s 867s :param response: A response object, or None, if the server did not 867s return a response. 867s :type response: :class:`~urllib3.response.BaseHTTPResponse` 867s :param Exception error: An error encountered during the request, or 867s None if the response was received successfully. 867s 867s :return: A new ``Retry`` object. 867s """ 867s if self.total is False and error: 867s # Disabled, indicate to re-raise the error. 867s raise reraise(type(error), error, _stacktrace) 867s 867s total = self.total 867s if total is not None: 867s total -= 1 867s 867s connect = self.connect 867s read = self.read 867s redirect = self.redirect 867s status_count = self.status 867s other = self.other 867s cause = "unknown" 867s status = None 867s redirect_location = None 867s 867s if error and self._is_connection_error(error): 867s # Connect retry? 867s if connect is False: 867s raise reraise(type(error), error, _stacktrace) 867s elif connect is not None: 867s connect -= 1 867s 867s elif error and self._is_read_error(error): 867s # Read retry? 867s if read is False or method is None or not self._is_method_retryable(method): 867s raise reraise(type(error), error, _stacktrace) 867s elif read is not None: 867s read -= 1 867s 867s elif error: 867s # Other retry? 867s if other is not None: 867s other -= 1 867s 867s elif response and response.get_redirect_location(): 867s # Redirect retry? 867s if redirect is not None: 867s redirect -= 1 867s cause = "too many redirects" 867s response_redirect_location = response.get_redirect_location() 867s if response_redirect_location: 867s redirect_location = response_redirect_location 867s status = response.status 867s 867s else: 867s # Incrementing because of a server error like a 500 in 867s # status_forcelist and the given method is in the allowed_methods 867s cause = ResponseError.GENERIC_ERROR 867s if response and response.status: 867s if status_count is not None: 867s status_count -= 1 867s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 867s status = response.status 867s 867s history = self.history + ( 867s RequestHistory(method, url, error, status, redirect_location), 867s ) 867s 867s new_retry = self.new( 867s total=total, 867s connect=connect, 867s read=read, 867s redirect=redirect, 867s status=status_count, 867s other=other, 867s history=history, 867s ) 867s 867s if new_retry.is_exhausted(): 867s reason = error or ResponseError(cause) 867s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 867s 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')) 867s 867s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 867s 867s During handling of the above exception, another exception occurred: 867s 867s def test_encoding_for_model(): 867s > enc = tiktoken.encoding_for_model("gpt2") 867s 867s tests/test_simple_public.py:26: 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 867s return get_encoding(encoding_name_for_model(model_name)) 867s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 867s enc = Encoding(**constructor()) 867s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 867s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 867s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 867s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 867s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 867s contents = read_file(blobpath) 867s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 867s resp = requests.get(blobpath) 867s /usr/lib/python3/dist-packages/requests/api.py:73: in get 867s return request("get", url, params=params, **kwargs) 867s /usr/lib/python3/dist-packages/requests/api.py:59: in request 867s return session.request(method=method, url=url, **kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 867s resp = self.send(prep, **send_kwargs) 867s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 867s r = adapter.send(request, **kwargs) 867s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 867s 867s self = 867s request = , stream = False 867s timeout = Timeout(connect=None, read=None, total=None), verify = True 867s cert = None, proxies = OrderedDict() 867s 867s def send( 867s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 867s ): 867s """Sends PreparedRequest object. Returns Response object. 867s 867s :param request: The :class:`PreparedRequest ` being sent. 867s :param stream: (optional) Whether to stream the request content. 867s :param timeout: (optional) How long to wait for the server to send 867s data before giving up, as a float, or a :ref:`(connect timeout, 867s read timeout) ` tuple. 867s :type timeout: float or tuple or urllib3 Timeout object 867s :param verify: (optional) Either a boolean, in which case it controls whether 867s we verify the server's TLS certificate, or a string, in which case it 867s must be a path to a CA bundle to use 867s :param cert: (optional) Any user-provided SSL certificate to be trusted. 867s :param proxies: (optional) The proxies dictionary to apply to the request. 867s :rtype: requests.Response 867s """ 867s 867s try: 867s conn = self.get_connection_with_tls_context( 867s request, verify, proxies=proxies, cert=cert 867s ) 867s except LocationValueError as e: 867s raise InvalidURL(e, request=request) 867s 867s self.cert_verify(conn, request.url, verify, cert) 867s url = self.request_url(request, proxies) 867s self.add_headers( 867s request, 867s stream=stream, 867s timeout=timeout, 867s verify=verify, 867s cert=cert, 867s proxies=proxies, 867s ) 867s 867s chunked = not (request.body is None or "Content-Length" in request.headers) 867s 867s if isinstance(timeout, tuple): 867s try: 867s connect, read = timeout 867s timeout = TimeoutSauce(connect=connect, read=read) 867s except ValueError: 867s raise ValueError( 867s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 867s f"or a single float to set both timeouts to the same value." 867s ) 867s elif isinstance(timeout, TimeoutSauce): 867s pass 867s else: 867s timeout = TimeoutSauce(connect=timeout, read=timeout) 867s 867s try: 867s resp = conn.urlopen( 867s method=request.method, 867s url=url, 867s body=request.body, 867s headers=request.headers, 867s redirect=False, 867s assert_same_host=False, 867s preload_content=False, 867s decode_content=False, 867s retries=self.max_retries, 867s timeout=timeout, 867s chunked=chunked, 867s ) 867s 867s except (ProtocolError, OSError) as err: 867s raise ConnectionError(err, request=request) 867s 867s except MaxRetryError as e: 867s if isinstance(e.reason, ConnectTimeoutError): 867s # TODO: Remove this in 3.0.0: see #2811 867s if not isinstance(e.reason, NewConnectionError): 867s raise ConnectTimeout(e, request=request) 867s 867s if isinstance(e.reason, ResponseError): 867s raise RetryError(e, request=request) 867s 867s if isinstance(e.reason, _ProxyError): 867s raise ProxyError(e, request=request) 867s 867s if isinstance(e.reason, _SSLError): 867s # This branch is for urllib3 v1.22 and later. 867s raise SSLError(e, request=request) 867s 867s > raise ConnectionError(e, request=request) 867s 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')) 867s 867s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 867s =========================== short test summary info ============================ 867s FAILED tests/test_encoding.py::test_simple - requests.exceptions.ConnectionEr... 867s FAILED tests/test_encoding.py::test_simple_repeated - requests.exceptions.Con... 867s FAILED tests/test_encoding.py::test_simple_regex - requests.exceptions.Connec... 867s FAILED tests/test_encoding.py::test_basic_encode - requests.exceptions.Connec... 867s FAILED tests/test_encoding.py::test_encode_empty - requests.exceptions.Connec... 867s FAILED tests/test_encoding.py::test_encode_bytes - requests.exceptions.Connec... 867s FAILED tests/test_encoding.py::test_encode_surrogate_pairs - requests.excepti... 867s FAILED tests/test_encoding.py::test_catastrophically_repetitive[r50k_base] - ... 867s FAILED tests/test_encoding.py::test_catastrophically_repetitive[cl100k_base] 867s FAILED tests/test_encoding.py::test_basic_roundtrip[r50k_base] - requests.exc... 867s FAILED tests/test_encoding.py::test_basic_roundtrip[cl100k_base] - requests.e... 867s FAILED tests/test_encoding.py::test_hyp_roundtrip[r50k_base] - requests.excep... 867s FAILED tests/test_encoding.py::test_hyp_roundtrip[cl100k_base] - requests.exc... 867s FAILED tests/test_encoding.py::test_single_token_roundtrip[r50k_base] - reque... 867s FAILED tests/test_encoding.py::test_single_token_roundtrip[cl100k_base] - req... 867s FAILED tests/test_encoding.py::test_special_token - requests.exceptions.Conne... 867s FAILED tests/test_encoding.py::test_hyp_special_ordinary[r50k_base] - request... 867s FAILED tests/test_encoding.py::test_hyp_special_ordinary[cl100k_base] - reque... 867s FAILED tests/test_encoding.py::test_batch_encode[r50k_base] - requests.except... 867s FAILED tests/test_encoding.py::test_batch_encode[cl100k_base] - requests.exce... 867s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[r50k_base] - requests... 867s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[cl100k_base] - reques... 867s FAILED tests/test_misc.py::test_encoding_for_model - requests.exceptions.Conn... 867s FAILED tests/test_offsets.py::test_hyp_offsets[cl100k_base] - requests.except... 867s FAILED tests/test_offsets.py::test_basic_offsets - requests.exceptions.Connec... 867s FAILED tests/test_pickle.py::test_pickle - requests.exceptions.ConnectionErro... 867s FAILED tests/test_simple_public.py::test_simple - requests.exceptions.Connect... 867s FAILED tests/test_simple_public.py::test_encoding_for_model - requests.except... 867s =================== 28 failed, 2 passed in 582.40s (0:09:42) =================== 867s autopkgtest [09:35:00]: test pybuild-autopkgtest: -----------------------] 868s pybuild-autopkgtest FAIL non-zero exit status 25 868s autopkgtest [09:35:01]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 868s autopkgtest [09:35:01]: @@@@@@@@@@@@@@@@@@@@ summary 868s pybuild-autopkgtest FAIL non-zero exit status 25 879s virt: nova [W] Skipping flock in bos03-arm64 879s virt: Creating nova instance adt-plucky-arm64-tiktoken-20241125-092032-juju-7f2275-prod-proposed-migration-environment-2-7c7b0c6c-2ac0-45f0-9395-feb1bf60fa9e from image adt/ubuntu-plucky-arm64-server-20241119.img (UUID 254dc414-4366-404b-b85c-a4e26b3194ad)...