0s autopkgtest [09:20:32]: starting date and time: 2024-11-25 09:20:32+0000 0s autopkgtest [09:20:32]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [09:20:32]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.uvumbytv/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 builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-31.secgroup --name adt-plucky-amd64-tiktoken-20241125-092031-juju-7f2275-prod-proposed-migration-environment-15-43f3fa1d-a716-4e7f-ba4e-d00f2fdf199a --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 372s autopkgtest [09:26:44]: testbed dpkg architecture: amd64 372s autopkgtest [09:26:44]: testbed apt version: 2.9.8 372s autopkgtest [09:26:44]: @@@@@@@@@@@@@@@@@@@@ test bed setup 373s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 374s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [49.6 kB] 374s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [14.2 kB] 374s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [797 kB] 374s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 374s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [82.9 kB] 374s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [42.8 kB] 374s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted i386 Packages [2408 B] 374s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [40.1 kB] 374s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [637 kB] 374s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [226 kB] 374s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [20.2 kB] 374s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [5528 B] 374s Fetched 2001 kB in 1s (2507 kB/s) 374s Reading package lists... 376s Reading package lists... 377s Building dependency tree... 377s Reading state information... 377s Calculating upgrade... 377s The following package was automatically installed and is no longer required: 377s libsgutils2-1.46-2 377s Use 'sudo apt autoremove' to remove it. 377s The following NEW packages will be installed: 377s libsgutils2-1.48 377s The following packages will be upgraded: 377s amd64-microcode bash bpftrace curl debconf debconf-i18n distro-info 377s dracut-install fwupd-signed gir1.2-girepository-2.0 gir1.2-glib-2.0 hostname 377s init init-system-helpers intel-microcode libaudit-common libaudit1 377s libcurl3t64-gnutls libcurl4t64 libgirepository-1.0-1 libglib2.0-0t64 377s libglib2.0-data liblzma5 libpam-modules libpam-modules-bin libpam-runtime 377s libpam0g libplymouth5 libselinux1 libsemanage-common libsemanage2 linux-base 377s lto-disabled-list lxd-installer openssh-client openssh-server 377s openssh-sftp-server pinentry-curses plymouth plymouth-theme-ubuntu-text 377s python3-blinker python3-dbus python3-debconf python3-gi 377s python3-jsonschema-specifications python3-rpds-py python3-yaml sg3-utils 377s sg3-utils-udev vim-common vim-tiny xxd xz-utils 377s 53 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 377s Need to get 20.4 MB of archives. 377s After this operation, 4254 kB of additional disk space will be used. 377s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 bash amd64 5.2.32-1ubuntu2 [918 kB] 378s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 hostname amd64 3.25 [11.1 kB] 378s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 init-system-helpers all 1.67ubuntu1 [39.1 kB] 378s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 378s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit1 amd64 1:4.0.2-2ubuntu1 [53.9 kB] 378s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 debconf-i18n all 1.5.87ubuntu1 [204 kB] 378s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-debconf all 1.5.87ubuntu1 [4156 B] 378s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 debconf all 1.5.87ubuntu1 [124 kB] 378s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam0g amd64 1.5.3-7ubuntu4 [69.6 kB] 378s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libselinux1 amd64 3.7-3ubuntu1 [86.9 kB] 378s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-modules-bin amd64 1.5.3-7ubuntu4 [53.7 kB] 378s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-modules amd64 1.5.3-7ubuntu4 [294 kB] 378s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 init amd64 1.67ubuntu1 [6428 B] 378s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-sftp-server amd64 1:9.9p1-3ubuntu2 [41.2 kB] 378s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-server amd64 1:9.9p1-3ubuntu2 [625 kB] 378s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-client amd64 1:9.9p1-3ubuntu2 [1080 kB] 378s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 378s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 liblzma5 amd64 5.6.3-1 [156 kB] 378s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage-common all 3.7-2build1 [7186 B] 378s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage2 amd64 3.7-2build1 [105 kB] 378s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 distro-info amd64 1.12 [20.0 kB] 378s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-girepository-2.0 amd64 1.82.0-2 [25.3 kB] 378s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-glib-2.0 amd64 2.82.2-3 [182 kB] 378s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-0t64 amd64 2.82.2-3 [1655 kB] 378s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 libgirepository-1.0-1 amd64 1.82.0-2 [88.7 kB] 378s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-data all 2.82.2-3 [51.7 kB] 378s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dbus amd64 1.3.2-5build4 [110 kB] 378s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-gi amd64 3.50.0-3build1 [293 kB] 378s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-yaml amd64 6.0.2-1build1 [187 kB] 378s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 vim-tiny amd64 2:9.1.0861-1ubuntu1 [1037 kB] 378s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 378s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 xxd amd64 2:9.1.0861-1ubuntu1 [67.8 kB] 378s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libplymouth5 amd64 24.004.60-2ubuntu4 [145 kB] 378s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 plymouth-theme-ubuntu-text amd64 24.004.60-2ubuntu4 [10.2 kB] 378s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 plymouth amd64 24.004.60-2ubuntu4 [139 kB] 378s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 xz-utils amd64 5.6.3-1 [276 kB] 378s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 bpftrace amd64 0.21.2-2ubuntu3 [1787 kB] 378s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 curl amd64 8.11.0-1ubuntu2 [250 kB] 379s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl4t64 amd64 8.11.0-1ubuntu2 [429 kB] 379s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 dracut-install amd64 105-2ubuntu2 [35.9 kB] 379s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 fwupd-signed amd64 1.55+1.7-1 [30.6 kB] 379s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl3t64-gnutls amd64 8.11.0-1ubuntu2 [423 kB] 379s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libsgutils2-1.48 amd64 1.48-0ubuntu1 [124 kB] 379s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-base all 4.10.1ubuntu1 [34.8 kB] 379s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 lto-disabled-list all 54 [12.2 kB] 379s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 lxd-installer all 10 [5264 B] 379s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 pinentry-curses amd64 1.3.1-0ubuntu2 [41.6 kB] 379s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-blinker all 1.9.0-1 [10.7 kB] 379s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-rpds-py amd64 0.21.0-2ubuntu1 [323 kB] 379s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 379s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 sg3-utils amd64 1.48-0ubuntu1 [1042 kB] 379s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 379s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 amd64-microcode amd64 3.20240820.1ubuntu1 [187 kB] 379s Get:54 http://ftpmaster.internal/ubuntu plucky/main amd64 intel-microcode amd64 3.20241112.1ubuntu2 [7055 kB] 379s Preconfiguring packages ... 379s Fetched 20.4 MB in 2s (10.4 MB/s) 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../bash_5.2.32-1ubuntu2_amd64.deb ... 380s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 380s Setting up bash (5.2.32-1ubuntu2) ... 380s 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 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../hostname_3.25_amd64.deb ... 380s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 380s Setting up hostname (3.25) ... 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../init-system-helpers_1.67ubuntu1_all.deb ... 380s Unpacking init-system-helpers (1.67ubuntu1) over (1.66ubuntu1) ... 380s Setting up init-system-helpers (1.67ubuntu1) ... 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 380s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 380s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_amd64.deb ... 380s Unpacking libaudit1:amd64 (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 380s Setting up libaudit1:amd64 (1:4.0.2-2ubuntu1) ... 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 380s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 380s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 380s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 380s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 380s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 380s Setting up debconf (1.5.87ubuntu1) ... 380s (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 ... 75620 files and directories currently installed.) 380s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_amd64.deb ... 380s Unpacking libpam0g:amd64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 380s Setting up libpam0g:amd64 (1.5.3-7ubuntu4) ... 381s (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 ... 75620 files and directories currently installed.) 381s Preparing to unpack .../libselinux1_3.7-3ubuntu1_amd64.deb ... 381s Unpacking libselinux1:amd64 (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 381s Setting up libselinux1:amd64 (3.7-3ubuntu1) ... 381s (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 ... 75620 files and directories currently installed.) 381s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_amd64.deb ... 381s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 381s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 381s pam_namespace.service is a disabled or a static unit not running, not starting it. 381s (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 ... 75620 files and directories currently installed.) 381s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_amd64.deb ... 381s Unpacking libpam-modules:amd64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 381s Setting up libpam-modules:amd64 (1.5.3-7ubuntu4) ... 381s (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 ... 75620 files and directories currently installed.) 381s Preparing to unpack .../init_1.67ubuntu1_amd64.deb ... 381s Unpacking init (1.67ubuntu1) over (1.66ubuntu1) ... 381s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_amd64.deb ... 381s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 381s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_amd64.deb ... 381s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 381s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_amd64.deb ... 381s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 382s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 382s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 382s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 382s (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 ... 75622 files and directories currently installed.) 382s Preparing to unpack .../liblzma5_5.6.3-1_amd64.deb ... 382s Unpacking liblzma5:amd64 (5.6.3-1) over (5.6.2-2) ... 382s Setting up liblzma5:amd64 (5.6.3-1) ... 382s (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 ... 75622 files and directories currently installed.) 382s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 382s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 382s Setting up libsemanage-common (3.7-2build1) ... 382s (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 ... 75621 files and directories currently installed.) 382s Preparing to unpack .../libsemanage2_3.7-2build1_amd64.deb ... 382s Unpacking libsemanage2:amd64 (3.7-2build1) over (3.5-1build6) ... 382s Setting up libsemanage2:amd64 (3.7-2build1) ... 382s (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 ... 75621 files and directories currently installed.) 382s Preparing to unpack .../00-distro-info_1.12_amd64.deb ... 382s Unpacking distro-info (1.12) over (1.9) ... 382s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_amd64.deb ... 382s Unpacking gir1.2-girepository-2.0:amd64 (1.82.0-2) over (1.80.1-4) ... 382s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_amd64.deb ... 382s Unpacking gir1.2-glib-2.0:amd64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 382s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_amd64.deb ... 382s Unpacking libglib2.0-0t64:amd64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 382s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_amd64.deb ... 382s Unpacking libgirepository-1.0-1:amd64 (1.82.0-2) over (1.80.1-4) ... 382s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 382s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 382s Preparing to unpack .../06-python3-dbus_1.3.2-5build4_amd64.deb ... 382s Unpacking python3-dbus (1.3.2-5build4) over (1.3.2-5build3) ... 382s Preparing to unpack .../07-python3-gi_3.50.0-3build1_amd64.deb ... 382s Unpacking python3-gi (3.50.0-3build1) over (3.50.0-3) ... 382s Preparing to unpack .../08-python3-yaml_6.0.2-1build1_amd64.deb ... 383s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 383s Preparing to unpack .../09-vim-tiny_2%3a9.1.0861-1ubuntu1_amd64.deb ... 383s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 383s Preparing to unpack .../10-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 383s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 383s Preparing to unpack .../11-xxd_2%3a9.1.0861-1ubuntu1_amd64.deb ... 383s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 383s Preparing to unpack .../12-libplymouth5_24.004.60-2ubuntu4_amd64.deb ... 383s Unpacking libplymouth5:amd64 (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 383s Preparing to unpack .../13-plymouth-theme-ubuntu-text_24.004.60-2ubuntu4_amd64.deb ... 383s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 383s Preparing to unpack .../14-plymouth_24.004.60-2ubuntu4_amd64.deb ... 383s Unpacking plymouth (24.004.60-2ubuntu4) over (24.004.60-1ubuntu11) ... 383s Preparing to unpack .../15-xz-utils_5.6.3-1_amd64.deb ... 383s Unpacking xz-utils (5.6.3-1) over (5.6.2-2) ... 383s Preparing to unpack .../16-bpftrace_0.21.2-2ubuntu3_amd64.deb ... 383s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 383s Preparing to unpack .../17-curl_8.11.0-1ubuntu2_amd64.deb ... 383s Unpacking curl (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 383s Preparing to unpack .../18-libcurl4t64_8.11.0-1ubuntu2_amd64.deb ... 383s Unpacking libcurl4t64:amd64 (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 383s Preparing to unpack .../19-dracut-install_105-2ubuntu2_amd64.deb ... 383s Unpacking dracut-install (105-2ubuntu2) over (105-1ubuntu1) ... 383s Preparing to unpack .../20-fwupd-signed_1.55+1.7-1_amd64.deb ... 383s Unpacking fwupd-signed (1.55+1.7-1) over (1.54+1.6-1build1) ... 383s Preparing to unpack .../21-libcurl3t64-gnutls_8.11.0-1ubuntu2_amd64.deb ... 383s Unpacking libcurl3t64-gnutls:amd64 (8.11.0-1ubuntu2) over (8.9.1-2ubuntu2) ... 383s Selecting previously unselected package libsgutils2-1.48:amd64. 383s Preparing to unpack .../22-libsgutils2-1.48_1.48-0ubuntu1_amd64.deb ... 383s Unpacking libsgutils2-1.48:amd64 (1.48-0ubuntu1) ... 383s Preparing to unpack .../23-linux-base_4.10.1ubuntu1_all.deb ... 383s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 383s Preparing to unpack .../24-lto-disabled-list_54_all.deb ... 383s Unpacking lto-disabled-list (54) over (53) ... 383s Preparing to unpack .../25-lxd-installer_10_all.deb ... 383s Unpacking lxd-installer (10) over (9) ... 383s Preparing to unpack .../26-pinentry-curses_1.3.1-0ubuntu2_amd64.deb ... 383s Unpacking pinentry-curses (1.3.1-0ubuntu2) over (1.2.1-3ubuntu5) ... 383s Preparing to unpack .../27-python3-blinker_1.9.0-1_all.deb ... 383s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 383s Preparing to unpack .../28-python3-rpds-py_0.21.0-2ubuntu1_amd64.deb ... 384s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 384s Preparing to unpack .../29-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 384s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 384s Preparing to unpack .../30-sg3-utils_1.48-0ubuntu1_amd64.deb ... 384s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 384s Preparing to unpack .../31-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 384s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 384s Preparing to unpack .../32-amd64-microcode_3.20240820.1ubuntu1_amd64.deb ... 384s Unpacking amd64-microcode (3.20240820.1ubuntu1) over (3.20240116.2+nmu1ubuntu1.1) ... 384s Preparing to unpack .../33-intel-microcode_3.20241112.1ubuntu2_amd64.deb ... 384s Unpacking intel-microcode (3.20241112.1ubuntu2) over (3.20240910.0ubuntu1) ... 384s Setting up pinentry-curses (1.3.1-0ubuntu2) ... 384s Setting up distro-info (1.12) ... 384s Setting up lto-disabled-list (54) ... 384s Setting up linux-base (4.10.1ubuntu1) ... 384s Setting up init (1.67ubuntu1) ... 384s Setting up libcurl4t64:amd64 (8.11.0-1ubuntu2) ... 384s Setting up bpftrace (0.21.2-2ubuntu3) ... 384s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 384s Setting up intel-microcode (3.20241112.1ubuntu2) ... 384s intel-microcode: microcode will be updated at next boot 384s Setting up python3-debconf (1.5.87ubuntu1) ... 384s Setting up libcurl3t64-gnutls:amd64 (8.11.0-1ubuntu2) ... 384s Setting up fwupd-signed (1.55+1.7-1) ... 384s Setting up libsgutils2-1.48:amd64 (1.48-0ubuntu1) ... 384s Setting up python3-yaml (6.0.2-1build1) ... 384s Setting up debconf-i18n (1.5.87ubuntu1) ... 384s Setting up amd64-microcode (3.20240820.1ubuntu1) ... 384s amd64-microcode: microcode will be updated at next boot 384s Setting up xxd (2:9.1.0861-1ubuntu1) ... 384s Setting up libglib2.0-0t64:amd64 (2.82.2-3) ... 384s No schema files found: doing nothing. 384s Setting up libglib2.0-data (2.82.2-3) ... 384s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 384s Setting up xz-utils (5.6.3-1) ... 384s Setting up gir1.2-glib-2.0:amd64 (2.82.2-3) ... 384s Setting up lxd-installer (10) ... 385s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 385s Setting up dracut-install (105-2ubuntu2) ... 385s Setting up libplymouth5:amd64 (24.004.60-2ubuntu4) ... 385s Setting up libgirepository-1.0-1:amd64 (1.82.0-2) ... 385s Setting up curl (8.11.0-1ubuntu2) ... 385s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 385s Setting up sg3-utils (1.48-0ubuntu1) ... 385s Setting up python3-blinker (1.9.0-1) ... 385s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 385s Setting up python3-dbus (1.3.2-5build4) ... 385s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 385s Installing new version of config file /etc/ssh/moduli ... 385s Replacing config file /etc/ssh/sshd_config with new version 386s Setting up plymouth (24.004.60-2ubuntu4) ... 386s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 386s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 387s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 387s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 387s update-initramfs: deferring update (trigger activated) 387s Setting up gir1.2-girepository-2.0:amd64 (1.82.0-2) ... 387s Setting up python3-gi (3.50.0-3build1) ... 387s Processing triggers for debianutils (5.21) ... 387s Processing triggers for install-info (7.1.1-1) ... 387s Processing triggers for initramfs-tools (0.142ubuntu35) ... 387s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 387s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 394s Processing triggers for libc-bin (2.40-1ubuntu3) ... 395s Processing triggers for ufw (0.36.2-8) ... 395s Processing triggers for man-db (2.13.0-1) ... 396s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu4) ... 396s Processing triggers for initramfs-tools (0.142ubuntu35) ... 396s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 396s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 404s Reading package lists... 404s Building dependency tree... 404s Reading state information... 404s The following packages will be REMOVED: 404s libsgutils2-1.46-2* 404s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 404s After this operation, 294 kB disk space will be freed. 404s (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 ... 75655 files and directories currently installed.) 404s Removing libsgutils2-1.46-2:amd64 (1.46-3ubuntu5) ... 404s Processing triggers for libc-bin (2.40-1ubuntu3) ... 405s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 405s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 405s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 405s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 406s Reading package lists... 406s Reading package lists... 406s Building dependency tree... 406s Reading state information... 406s Calculating upgrade... 406s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 406s Reading package lists... 407s Building dependency tree... 407s Reading state information... 407s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 407s autopkgtest [09:27:19]: rebooting testbed after setup commands that affected boot 430s autopkgtest [09:27:42]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 433s autopkgtest [09:27:45]: @@@@@@@@@@@@@@@@@@@@ apt-source tiktoken 435s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (dsc) [2247 B] 435s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (tar) [31.6 kB] 435s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (diff) [3908 B] 435s gpgv: Signature made Mon Nov 18 15:38:19 2024 UTC 435s gpgv: using RSA key 25E3FF2D7F469DBE7D0D4E50AFCFEC8E669CE1C2 435s gpgv: Can't check signature: No public key 435s dpkg-source: warning: cannot verify inline signature for ./tiktoken_0.8.0-1build1.dsc: no acceptable signature found 435s autopkgtest [09:27:47]: testing package tiktoken version 0.8.0-1build1 435s autopkgtest [09:27:47]: build not needed 436s autopkgtest [09:27:48]: test pybuild-autopkgtest: preparing testbed 438s Reading package lists... 438s Building dependency tree... 438s Reading state information... 438s Starting pkgProblemResolver with broken count: 0 438s Starting 2 pkgProblemResolver with broken count: 0 438s Done 438s The following additional packages will be installed: 438s autoconf automake autopoint autotools-dev binutils-mingw-w64-i686 438s binutils-mingw-w64-x86-64 build-essential cargo cargo-1.80 cmake cmake-data 438s cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 438s dh-autoreconf dh-python dh-strip-nondeterminism dwz fontconfig-config 438s fonts-dejavu-core fonts-dejavu-mono g++ g++-14 g++-14-x86-64-linux-gnu 438s g++-x86-64-linux-gnu gcc gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu 438s gettext intltool-debian libarchive-zip-perl libasan8 libbrotli-dev 438s libbz2-dev libcc1-0 libdebhelper-perl libexpat1-dev 438s libfile-stripnondeterminism-perl libfontconfig-dev libfontconfig1 438s libfreetype-dev libgcc-14-dev libgit2-1.7 libgomp1 libhttp-parser2.9 438s libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 libmpc3 libpfm4 438s libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev libpython3.12-dev 438s libquadmath0 librhash0 librust-ab-glyph-dev 438s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 438s librust-addr2line-dev librust-adler-dev librust-ahash-dev 438s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 438s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 438s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 438s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 438s librust-async-attributes-dev librust-async-channel-dev 438s librust-async-executor-dev librust-async-fs-dev 438s librust-async-global-executor-dev librust-async-io-dev 438s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 438s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 438s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 438s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 438s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 438s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 438s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 438s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 438s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 438s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 438s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 438s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 438s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 438s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 438s librust-color-quant-dev librust-colorchoice-dev 438s librust-compiler-builtins+core-dev 438s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 438s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 438s librust-const-random-dev librust-const-random-macro-dev 438s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 438s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 438s librust-critical-section-dev librust-crossbeam-deque-dev 438s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 438s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 438s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 438s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 438s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 438s librust-either-dev librust-env-logger-dev librust-equivalent-dev 438s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 438s librust-event-listener-dev librust-event-listener-strategy-dev 438s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 438s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 438s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 438s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 438s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 438s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 438s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 438s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 438s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 438s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 438s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 438s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 438s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 438s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 438s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 438s librust-libc-dev librust-libloading-dev librust-libm-dev 438s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 438s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 438s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 438s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 438s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 438s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 438s librust-num-threads-dev librust-num-traits-dev librust-object-dev 438s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 438s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 438s librust-parking-lot-dev librust-parse-zoneinfo-dev 438s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 438s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 438s librust-phf-generator-dev librust-phf-shared+uncased-dev 438s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 438s librust-pkg-config-dev librust-plotters-backend-dev 438s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 438s librust-png-dev librust-polling-dev librust-portable-atomic-dev 438s librust-postgres-derive-dev librust-postgres-protocol-dev 438s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 438s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 438s librust-ptr-meta-derive-dev librust-ptr-meta-dev 438s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 438s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 438s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 438s librust-quickcheck-dev librust-quote-dev librust-radium-dev 438s librust-rand-chacha-dev librust-rand-core+getrandom-dev 438s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 438s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 438s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 438s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 438s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 438s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 438s librust-rustc-version-dev librust-rustix-dev 438s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 438s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 438s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 438s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 438s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 438s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 438s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 438s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 438s librust-smol-str-dev librust-socket2-dev librust-spin-dev 438s librust-stable-deref-trait-dev librust-static-assertions-dev 438s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 438s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 438s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 438s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 438s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 438s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 438s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 438s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 438s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 438s librust-tokio-macros-dev librust-tracing-attributes-dev 438s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 438s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 438s librust-typenum-dev librust-unarray-dev librust-uncased-dev 438s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 438s librust-unicode-normalization-dev librust-unicode-segmentation-dev 438s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 438s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 438s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 438s librust-value-bag-sval2-dev librust-version-check-dev 438s librust-wait-timeout-dev librust-walkdir-dev 438s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 438s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 438s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 438s librust-wasm-bindgen-macro-support+spans-dev 438s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 438s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 438s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 438s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 438s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 438s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 438s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 438s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 438s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 438s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 438s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 438s python3-build python3-dateutil python3-hypothesis python3-iniconfig 438s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 438s python3-pytest python3-regex python3-semantic-version 438s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 438s python3-toml python3-wheel python3.12-dev rustc rustc-1.80 uuid-dev 438s zlib1g-dev 438s Suggested packages: 438s autoconf-archive gnu-standards autoconf-doc cargo-1.80-doc cmake-doc 438s cmake-format elpa-cmake-mode ninja-build cpp-doc gcc-14-locales cpp-14-doc 438s dh-make flit g++-multilib g++-14-multilib gcc-14-doc gcc-multilib 438s manpages-dev flex bison gdb gcc-doc gcc-14-multilib gdb-x86-64-linux-gnu 438s gettext-doc libasprintf-dev libgettextpo-dev freetype2-doc 438s librust-adler+compiler-builtins-dev librust-adler+core-dev 438s librust-adler+rustc-dep-of-std-dev librust-backtrace+cpp-demangle-dev 438s librust-backtrace+rustc-serialize-dev librust-backtrace+serde-dev 438s librust-backtrace+verify-winapi-dev librust-backtrace+winapi-dev 438s librust-cfg-if-0.1+core-dev librust-cfg-if+core-dev 438s librust-compiler-builtins+c-dev gnuplot-nox librust-csv-core+libc-dev 438s librust-either+serde-dev librust-getrandom+compiler-builtins-dev 438s librust-getrandom+core-dev librust-getrandom+rustc-dep-of-std-dev 438s librust-phf+phf-macros-dev librust-phf+serde-dev librust-phf+unicase-dev 438s librust-phf-shared+unicase-dev librust-rand-xorshift+serde-dev 438s librust-rustc-demangle+compiler-builtins-dev librust-rustc-demangle+core-dev 438s librust-rustc-demangle+rustc-dep-of-std-dev librust-ryu+no-panic-dev 438s librust-slog+erased-serde-dev librust-tinyvec+arbitrary-dev 438s librust-tinyvec+serde-dev librust-uncased+serde-dev 438s librust-uncased+with-serde-alloc-dev 438s librust-wasm-bindgen-backend+extra-traits-dev librust-wasm-bindgen+serde-dev 438s librust-wasm-bindgen+serde-serialize-dev librust-wasm-bindgen+serde-json-dev 438s librust-wasm-bindgen+strict-macro-dev 438s librust-wasm-bindgen+xxx-debug-only-print-generated-code-dev 438s librust-wasm-bindgen-macro+strict-macro-dev 438s librust-wasm-bindgen-macro-support+extra-traits-dev librust-weezl+async-dev 438s librust-weezl+futures-dev libstdc++-14-doc libtool-doc gfortran 438s | fortran95-compiler gcj-jdk llvm-19-doc m4-doc libmail-box-perl python3-pip 438s python3-venv python-build-doc python-hypothesis-doc python-installer-doc 438s python-semantic-version-doc python-sortedcontainers-doc llvm-18 lld-18 438s clang-18 438s Recommended packages: 438s bzip2-doc libarchive-cpio-perl libpng-tools librust-phf+std-dev 438s librust-subtle+default-dev libltdl-dev llvm-19-dev libmail-sendmail-perl 438s python3-click 439s The following NEW packages will be installed: 439s autoconf automake autopkgtest-satdep autopoint autotools-dev 439s binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 build-essential cargo 439s cargo-1.80 cmake cmake-data cpp cpp-14 cpp-14-x86-64-linux-gnu 439s cpp-x86-64-linux-gnu debhelper debugedit dh-autoreconf dh-python 439s dh-strip-nondeterminism dwz fontconfig-config fonts-dejavu-core 439s fonts-dejavu-mono g++ g++-14 g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu 439s gcc gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext 439s intltool-debian libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev 439s libcc1-0 libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 439s libfontconfig-dev libfontconfig1 libfreetype-dev libgcc-14-dev libgit2-1.7 439s libgomp1 libhttp-parser2.9 libhwasan0 libisl23 libitm1 libjsoncpp25 liblsan0 439s libmpc3 libpfm4 libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev 439s libpython3.12-dev libquadmath0 librhash0 librust-ab-glyph-dev 439s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 439s librust-addr2line-dev librust-adler-dev librust-ahash-dev 439s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 439s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 439s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 439s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 439s librust-async-attributes-dev librust-async-channel-dev 439s librust-async-executor-dev librust-async-fs-dev 439s librust-async-global-executor-dev librust-async-io-dev 439s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 439s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 439s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 439s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 439s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 439s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 439s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 439s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 439s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 439s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 439s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 439s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 439s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 439s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 439s librust-color-quant-dev librust-colorchoice-dev 439s librust-compiler-builtins+core-dev 439s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 439s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 439s librust-const-random-dev librust-const-random-macro-dev 439s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 439s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 439s librust-critical-section-dev librust-crossbeam-deque-dev 439s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 439s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 439s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 439s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 439s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 439s librust-either-dev librust-env-logger-dev librust-equivalent-dev 439s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 439s librust-event-listener-dev librust-event-listener-strategy-dev 439s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 439s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 439s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 439s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 439s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 439s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 439s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 439s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 439s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 439s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 439s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 439s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 439s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 439s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 439s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 439s librust-libc-dev librust-libloading-dev librust-libm-dev 439s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 439s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 439s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 439s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 439s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 439s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 439s librust-num-threads-dev librust-num-traits-dev librust-object-dev 439s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 439s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 439s librust-parking-lot-dev librust-parse-zoneinfo-dev 439s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 439s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 439s librust-phf-generator-dev librust-phf-shared+uncased-dev 439s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 439s librust-pkg-config-dev librust-plotters-backend-dev 439s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 439s librust-png-dev librust-polling-dev librust-portable-atomic-dev 439s librust-postgres-derive-dev librust-postgres-protocol-dev 439s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 439s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 439s librust-ptr-meta-derive-dev librust-ptr-meta-dev 439s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 439s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 439s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 439s librust-quickcheck-dev librust-quote-dev librust-radium-dev 439s librust-rand-chacha-dev librust-rand-core+getrandom-dev 439s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 439s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 439s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 439s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 439s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 439s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 439s librust-rustc-version-dev librust-rustix-dev 439s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 439s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 439s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 439s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 439s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 439s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 439s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 439s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 439s librust-smol-str-dev librust-socket2-dev librust-spin-dev 439s librust-stable-deref-trait-dev librust-static-assertions-dev 439s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 439s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 439s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 439s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 439s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 439s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 439s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 439s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 439s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 439s librust-tokio-macros-dev librust-tracing-attributes-dev 439s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 439s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 439s librust-typenum-dev librust-unarray-dev librust-uncased-dev 439s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 439s librust-unicode-normalization-dev librust-unicode-segmentation-dev 439s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 439s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 439s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 439s librust-value-bag-sval2-dev librust-version-check-dev 439s librust-wait-timeout-dev librust-walkdir-dev 439s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 439s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 439s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 439s librust-wasm-bindgen-macro-support+spans-dev 439s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 439s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 439s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 439s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 439s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 439s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 439s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 439s libstdc++-14-dev libtool libtsan2 libubsan1 libwebp-dev libwebp7 439s libwebpdecoder3 libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools 439s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 439s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 439s python3-build python3-dateutil python3-hypothesis python3-iniconfig 439s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 439s python3-pytest python3-regex python3-semantic-version 439s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 439s python3-toml python3-wheel python3.12-dev rustc rustc-1.80 uuid-dev 439s zlib1g-dev 439s 0 upgraded, 468 newly installed, 0 to remove and 0 not upgraded. 439s Need to get 221 MB/221 MB of archives. 439s After this operation, 926 MB of additional disk space will be used. 439s Get:1 /tmp/autopkgtest.Ntntl8/1-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [864 B] 439s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 m4 amd64 1.4.19-4build1 [244 kB] 439s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 autoconf all 2.72-3 [382 kB] 439s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 autotools-dev all 20220109.1 [44.9 kB] 439s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 automake all 1:1.16.5-1.3ubuntu1 [558 kB] 439s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 autopoint all 0.22.5-2 [616 kB] 439s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libisl23 amd64 0.27-1 [685 kB] 439s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libmpc3 amd64 1.3.1-1build2 [55.3 kB] 439s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [11.9 MB] 440s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14 amd64 14.2.0-8ubuntu1 [1030 B] 440s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [5452 B] 440s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp amd64 4:14.1.0-2ubuntu1 [22.4 kB] 440s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libcc1-0 amd64 14.2.0-8ubuntu1 [47.6 kB] 440s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libgomp1 amd64 14.2.0-8ubuntu1 [148 kB] 440s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libitm1 amd64 14.2.0-8ubuntu1 [29.1 kB] 440s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libasan8 amd64 14.2.0-8ubuntu1 [2998 kB] 440s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 liblsan0 amd64 14.2.0-8ubuntu1 [1317 kB] 440s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 libtsan2 amd64 14.2.0-8ubuntu1 [2732 kB] 440s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 libubsan1 amd64 14.2.0-8ubuntu1 [1177 kB] 440s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libhwasan0 amd64 14.2.0-8ubuntu1 [1634 kB] 440s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libquadmath0 amd64 14.2.0-8ubuntu1 [153 kB] 440s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-14-dev amd64 14.2.0-8ubuntu1 [2814 kB] 440s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [23.3 MB] 441s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14 amd64 14.2.0-8ubuntu1 [528 kB] 441s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [1214 B] 441s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc amd64 4:14.1.0-2ubuntu1 [5000 B] 441s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++-14-dev amd64 14.2.0-8ubuntu1 [2504 kB] 441s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [13.3 MB] 441s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14 amd64 14.2.0-8ubuntu1 [19.9 kB] 441s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [966 B] 441s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 g++ amd64 4:14.1.0-2ubuntu1 [1100 B] 441s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 build-essential amd64 12.10ubuntu1 [4928 B] 441s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libhttp-parser2.9 amd64 2.9.4-6build1 [22.3 kB] 441s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libgit2-1.7 amd64 1.7.2+ds-1ubuntu3 [529 kB] 441s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libstd-rust-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [21.5 MB] 441s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libstd-rust-1.80-dev amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [41.7 MB] 442s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 rustc-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [3334 kB] 442s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 cargo-1.80 amd64 1.80.1+dfsg0ubuntu1-0ubuntu1 [6148 kB] 443s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 libjsoncpp25 amd64 1.9.5-6build1 [82.8 kB] 443s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 librhash0 amd64 1.4.3-3build1 [129 kB] 443s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 cmake-data all 3.30.3-1 [2246 kB] 443s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 cmake amd64 3.30.3-1 [12.0 MB] 443s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 443s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 libtool all 2.4.7-8 [166 kB] 443s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-autoreconf all 20 [16.1 kB] 443s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 443s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 443s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-strip-nondeterminism all 1.14.0-1 [5058 B] 443s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 debugedit amd64 1:5.1-1 [46.9 kB] 443s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 dwz amd64 0.15-1build6 [115 kB] 443s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 gettext amd64 0.22.5-2 [948 kB] 443s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 443s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 443s Get:54 http://ftpmaster.internal/ubuntu plucky/main amd64 debhelper all 13.20ubuntu1 [893 kB] 443s Get:55 http://ftpmaster.internal/ubuntu plucky/universe amd64 dh-python all 6.20241024 [112 kB] 443s Get:56 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB] 443s Get:57 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-core all 2.37-8 [835 kB] 443s Get:58 http://ftpmaster.internal/ubuntu plucky/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB] 443s Get:59 http://ftpmaster.internal/ubuntu plucky/main amd64 libbrotli-dev amd64 1.1.0-2build3 [381 kB] 443s Get:60 http://ftpmaster.internal/ubuntu plucky/main amd64 libbz2-dev amd64 1.0.8-6 [33.8 kB] 443s Get:61 http://ftpmaster.internal/ubuntu plucky/main amd64 libexpat1-dev amd64 2.6.4-1 [148 kB] 443s Get:62 http://ftpmaster.internal/ubuntu plucky/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB] 443s Get:63 http://ftpmaster.internal/ubuntu plucky/main amd64 zlib1g-dev amd64 1:1.3.dfsg+really1.3.1-1ubuntu1 [895 kB] 443s Get:64 http://ftpmaster.internal/ubuntu plucky/main amd64 libpng-dev amd64 1.6.44-2 [300 kB] 443s Get:65 http://ftpmaster.internal/ubuntu plucky/main amd64 libfreetype-dev amd64 2.13.3+dfsg-1 [575 kB] 443s Get:66 http://ftpmaster.internal/ubuntu plucky/main amd64 uuid-dev amd64 2.40.2-1ubuntu1 [52.7 kB] 443s Get:67 http://ftpmaster.internal/ubuntu plucky/main amd64 libpkgconf3 amd64 1.8.1-4 [32.3 kB] 443s Get:68 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf-bin amd64 1.8.1-4 [21.6 kB] 443s Get:69 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf amd64 1.8.1-4 [16.8 kB] 443s Get:70 http://ftpmaster.internal/ubuntu plucky/main amd64 libfontconfig-dev amd64 2.15.0-1.1ubuntu2 [161 kB] 443s Get:71 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.12-dev amd64 3.12.7-3 [5699 kB] 443s Get:72 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-dev amd64 3.12.6-0ubuntu1 [10.2 kB] 443s Get:73 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-all-dev amd64 3.12.6-0ubuntu1 [916 B] 443s Get:74 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-rasterizer-dev amd64 0.1.7-1 [12.2 kB] 443s Get:75 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libm-dev amd64 0.2.8-1 [101 kB] 443s Get:76 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-rasterizer+libm-dev amd64 0.1.7-1 [1064 B] 443s Get:77 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-core-maths-dev amd64 0.1.0-2 [7944 B] 443s Get:78 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ttf-parser-dev amd64 0.24.1-1 [148 kB] 443s Get:79 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-owned-ttf-parser-dev amd64 0.24.0-1 [129 kB] 443s Get:80 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ab-glyph-dev amd64 0.2.28-1 [20.7 kB] 443s Get:81 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cfg-if-dev amd64 1.0.0-1 [10.5 kB] 443s Get:82 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cpp-demangle-dev amd64 0.4.0-1 [66.1 kB] 443s Get:83 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fallible-iterator-dev amd64 0.3.0-2 [20.3 kB] 443s Get:84 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-ident-dev amd64 1.0.13-1 [38.5 kB] 443s Get:85 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-proc-macro2-dev amd64 1.0.86-1 [44.8 kB] 443s Get:86 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quote-dev amd64 1.0.37-1 [29.5 kB] 443s Get:87 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-syn-dev amd64 2.0.85-1 [219 kB] 443s Get:88 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-derive-arbitrary-dev amd64 1.3.2-1 [12.3 kB] 443s Get:89 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-arbitrary-dev amd64 1.3.2-1 [31.4 kB] 443s Get:90 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-equivalent-dev amd64 1.0.1-1 [8238 B] 444s Get:91 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-critical-section-dev amd64 1.1.3-1 [20.5 kB] 444s Get:92 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-derive-dev amd64 1.0.210-1 [50.1 kB] 444s Get:93 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-dev amd64 1.0.210-2 [66.4 kB] 444s Get:94 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-portable-atomic-dev amd64 1.9.0-4 [124 kB] 444s Get:95 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-std-workspace-core-dev amd64 1.0.0-1 [3020 B] 444s Get:96 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libc-dev amd64 0.2.161-1 [379 kB] 444s Get:97 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-getrandom-dev amd64 0.2.12-1 [36.4 kB] 444s Get:98 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smallvec-dev amd64 1.13.2-1 [35.5 kB] 444s Get:99 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-lot-core-dev amd64 0.9.10-1 [32.6 kB] 444s Get:100 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-once-cell-dev amd64 1.20.2-1 [31.9 kB] 444s Get:101 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crunchy-dev amd64 0.2.2-1 [5336 B] 444s Get:102 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tiny-keccak-dev amd64 2.0.2-1 [20.9 kB] 444s Get:103 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-random-macro-dev amd64 0.1.16-2 [10.5 kB] 444s Get:104 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-random-dev amd64 0.1.17-2 [8584 B] 444s Get:105 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-version-check-dev amd64 0.9.5-1 [16.9 kB] 444s Get:106 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-byteorder-dev amd64 1.5.0-1 [22.4 kB] 444s Get:107 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zerocopy-derive-dev amd64 0.7.32-2 [29.7 kB] 444s Get:108 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zerocopy-dev amd64 0.7.32-1 [116 kB] 444s Get:109 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ahash-dev all 0.8.11-8 [37.9 kB] 444s Get:110 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-allocator-api2-dev amd64 0.2.16-1 [54.8 kB] 444s Get:111 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins-dev amd64 0.1.101-1 [156 kB] 444s Get:112 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-either-dev amd64 1.13.0-1 [20.2 kB] 444s Get:113 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-utils-dev amd64 0.8.19-1 [41.1 kB] 444s Get:114 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-epoch-dev amd64 0.9.18-1 [42.3 kB] 444s Get:115 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-epoch+std-dev amd64 0.9.18-1 [1128 B] 444s Get:116 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crossbeam-deque-dev amd64 0.8.5-1 [22.4 kB] 444s Get:117 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rayon-core-dev amd64 1.12.1-1 [63.7 kB] 444s Get:118 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rayon-dev amd64 1.10.0-1 [149 kB] 444s Get:119 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-hashbrown-dev amd64 0.14.5-5 [110 kB] 444s Get:120 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indexmap-dev amd64 2.2.6-1 [66.7 kB] 444s Get:121 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-stable-deref-trait-dev amd64 1.2.0-1 [9794 B] 444s Get:122 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-gimli-dev amd64 0.28.1-2 [209 kB] 444s Get:123 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memmap2-dev amd64 0.9.3-1 [30.8 kB] 444s Get:124 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crc32fast-dev amd64 1.4.2-1 [39.8 kB] 444s Get:125 http://ftpmaster.internal/ubuntu plucky/main amd64 pkg-config amd64 1.8.1-4 [7362 B] 444s Get:126 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pkg-config-dev amd64 0.3.27-1 [21.5 kB] 444s Get:127 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libz-sys-dev amd64 1.1.20-1 [19.7 kB] 444s Get:128 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-adler-dev amd64 1.0.2-2 [15.3 kB] 444s Get:129 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-miniz-oxide-dev amd64 0.7.1-1 [51.5 kB] 444s Get:130 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-flate2-dev amd64 1.0.34-1 [94.5 kB] 444s Get:131 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-derive-dev amd64 2.6.1-2 [11.0 kB] 444s Get:132 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-dev amd64 2.6.1-2 [28.0 kB] 444s Get:133 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-ref-dev amd64 2.6.1-1 [8942 B] 444s Get:134 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-erased-serde-dev amd64 0.3.31-1 [22.7 kB] 444s Get:135 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-fmt-dev all 1.0.3-3 [6956 B] 444s Get:136 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-syn-1-dev amd64 1.0.109-2 [188 kB] 444s Get:137 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-no-panic-dev amd64 0.1.13-1 [11.3 kB] 444s Get:138 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-itoa-dev amd64 1.0.9-1 [13.1 kB] 444s Get:139 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ryu-dev amd64 1.0.15-1 [41.7 kB] 444s Get:140 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-json-dev amd64 1.0.128-1 [128 kB] 445s Get:141 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-serde-test-dev amd64 1.0.171-1 [20.6 kB] 445s Get:142 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-serde1-dev amd64 1.9.0-1 [7822 B] 445s Get:143 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-buffer-dev amd64 2.6.1-1 [16.7 kB] 445s Get:144 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-dynamic-dev amd64 2.6.1-1 [9540 B] 445s Get:145 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-fmt-dev amd64 2.6.1-1 [12.0 kB] 445s Get:146 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sval-serde-dev amd64 2.6.1-1 [13.2 kB] 445s Get:147 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-sval2-dev amd64 1.9.0-1 [7860 B] 445s Get:148 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-value-bag-dev amd64 1.9.0-1 [37.6 kB] 445s Get:149 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-log-dev amd64 0.4.22-1 [43.0 kB] 445s Get:150 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memchr-dev amd64 2.7.4-1 [71.8 kB] 445s Get:151 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ppv-lite86-dev amd64 0.2.16-1 [21.9 kB] 445s Get:152 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core-dev amd64 0.6.4-2 [23.8 kB] 445s Get:153 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-chacha-dev amd64 0.3.1-2 [16.9 kB] 445s Get:154 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+getrandom-dev amd64 0.6.4-2 [1052 B] 445s Get:155 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+serde-dev amd64 0.6.4-2 [1108 B] 445s Get:156 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-core+std-dev amd64 0.6.4-2 [1050 B] 445s Get:157 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-dev amd64 0.8.5-1 [77.5 kB] 445s Get:158 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-segmentation-dev amd64 1.11.0-1 [74.2 kB] 445s Get:159 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-convert-case-dev amd64 0.6.0-2 [19.4 kB] 445s Get:160 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-semver-dev amd64 1.0.23-1 [30.6 kB] 445s Get:161 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-version-dev amd64 0.4.0-1 [13.8 kB] 445s Get:162 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-derive-more-dev amd64 0.99.17-1 [50.0 kB] 445s Get:163 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cfg-if-0.1-dev amd64 0.1.10-2 [10.2 kB] 445s Get:164 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-blobby-dev amd64 0.3.1-1 [11.3 kB] 445s Get:165 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-typenum-dev amd64 1.17.0-2 [41.2 kB] 445s Get:166 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zeroize-derive-dev amd64 1.4.2-1 [12.7 kB] 445s Get:167 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-zeroize-dev amd64 1.8.1-1 [21.6 kB] 445s Get:168 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-generic-array-dev amd64 0.14.7-1 [16.9 kB] 445s Get:169 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-block-buffer-dev amd64 0.10.2-2 [12.2 kB] 445s Get:170 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-oid-dev amd64 0.9.3-1 [40.9 kB] 445s Get:171 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-crypto-common-dev amd64 0.1.6-1 [10.5 kB] 445s Get:172 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-subtle-dev amd64 2.6.1-1 [16.1 kB] 445s Get:173 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-digest-dev amd64 0.10.7-2 [20.9 kB] 445s Get:174 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-static-assertions-dev amd64 1.1.0-1 [19.0 kB] 445s Get:175 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-twox-hash-dev amd64 1.6.3-1 [21.6 kB] 445s Get:176 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ruzstd-dev amd64 0.5.0-1 [44.6 kB] 445s Get:177 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-object-dev amd64 0.32.2-1 [228 kB] 445s Get:178 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-demangle-dev amd64 0.1.21-1 [27.7 kB] 445s Get:179 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-addr2line-dev amd64 0.21.0-2 [36.4 kB] 445s Get:180 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-aho-corasick-dev amd64 1.1.3-1 [146 kB] 445s Get:181 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitflags-1-dev amd64 1.3.2-5 [25.3 kB] 445s Get:182 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anes-dev amd64 0.1.6-1 [21.1 kB] 445s Get:183 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-dev amd64 1.0.8-1 [16.7 kB] 445s Get:184 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-arrayvec-dev amd64 0.7.4-2 [29.9 kB] 445s Get:185 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-utf8parse-dev amd64 0.2.1-1 [15.0 kB] 445s Get:186 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-parse-dev amd64 0.2.1-1 [17.1 kB] 445s Get:187 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstyle-query-dev amd64 1.0.0-1 [9768 B] 445s Get:188 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-colorchoice-dev amd64 1.0.0-1 [8336 B] 445s Get:189 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anstream-dev amd64 0.6.15-1 [25.7 kB] 445s Get:190 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-jobserver-dev amd64 0.1.32-1 [29.1 kB] 445s Get:191 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-shlex-dev amd64 1.3.0-1 [20.1 kB] 445s Get:192 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cc-dev amd64 1.1.14-1 [73.6 kB] 445s Get:193 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-backtrace-dev amd64 0.3.69-2 [69.9 kB] 445s Get:194 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-anyhow-dev amd64 1.0.86-1 [44.3 kB] 445s Get:195 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytecheck-derive-dev amd64 0.6.12-1 [7086 B] 445s Get:196 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ptr-meta-derive-dev amd64 0.1.4-1 [3964 B] 445s Get:197 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ptr-meta-dev amd64 0.1.4-1 [7342 B] 445s Get:198 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-simdutf8-dev amd64 0.1.4-4 [27.2 kB] 445s Get:199 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytemuck-derive-dev amd64 1.5.0-2 [18.7 kB] 445s Get:200 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytemuck-dev amd64 1.14.0-1 [42.7 kB] 445s Get:201 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-atomic-dev amd64 0.6.0-1 [15.5 kB] 445s Get:202 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-md5-asm-dev amd64 0.5.0-2 [7512 B] 445s Get:203 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-md-5-dev amd64 0.10.6-1 [17.5 kB] 445s Get:204 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cpufeatures-dev amd64 0.2.11-1 [14.9 kB] 446s Get:205 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha1-asm-dev amd64 0.5.1-2 [8056 B] 446s Get:206 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha1-dev amd64 0.10.6-1 [16.0 kB] 446s Get:207 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-slog-dev amd64 2.7.0-1 [44.0 kB] 446s Get:208 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-uuid-dev amd64 1.10.0-1 [44.2 kB] 446s Get:209 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytecheck-dev amd64 0.6.12-1 [10.2 kB] 446s Get:210 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-autocfg-dev amd64 1.1.0-1 [15.1 kB] 446s Get:211 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-traits-dev amd64 0.2.19-2 [46.2 kB] 446s Get:212 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-funty-dev amd64 2.0.0-1 [13.8 kB] 446s Get:213 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-radium-dev amd64 1.1.0-1 [14.9 kB] 446s Get:214 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tap-dev amd64 1.0.1-1 [12.7 kB] 446s Get:215 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-traitobject-dev amd64 0.1.0-1 [4540 B] 446s Get:216 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unsafe-any-dev amd64 0.4.2-2 [4622 B] 446s Get:217 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-typemap-dev amd64 0.3.3-2 [6724 B] 446s Get:218 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wyz-dev amd64 0.5.1-1 [19.7 kB] 446s Get:219 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitvec-dev amd64 1.0.1-1 [179 kB] 446s Get:220 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bytes-dev amd64 1.8.0-1 [56.9 kB] 446s Get:221 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rend-dev amd64 0.4.0-1 [10.3 kB] 446s Get:222 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rkyv-derive-dev amd64 0.7.44-1 [17.5 kB] 446s Get:223 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-seahash-dev amd64 4.1.0-1 [25.1 kB] 446s Get:224 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smol-str-dev amd64 0.2.0-1 [15.2 kB] 446s Get:225 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec-dev amd64 1.6.0-2 [37.7 kB] 446s Get:226 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec-macros-dev amd64 0.1.0-1 [3852 B] 446s Get:227 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinyvec+tinyvec-macros-dev amd64 1.6.0-2 [1124 B] 446s Get:228 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rkyv-dev amd64 0.7.44-1 [94.4 kB] 446s Get:229 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-complex-dev amd64 0.4.6-2 [30.8 kB] 446s Get:230 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-approx-dev amd64 0.5.1-1 [16.0 kB] 446s Get:231 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-array-init-dev amd64 2.0.1-1 [12.3 kB] 446s Get:232 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-attributes-dev all 1.1.2-6 [6756 B] 446s Get:233 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-concurrent-queue-dev amd64 2.5.0-4 [23.9 kB] 446s Get:234 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-dev amd64 2.2.0-1 [11.6 kB] 446s Get:235 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pin-project-lite-dev amd64 0.2.13-1 [30.2 kB] 446s Get:236 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-event-listener-dev all 5.3.1-8 [29.6 kB] 446s Get:237 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-event-listener-strategy-dev amd64 0.5.2-3 [12.6 kB] 446s Get:238 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-core-dev amd64 0.3.30-1 [16.7 kB] 446s Get:239 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-channel-dev all 2.3.1-8 [13.1 kB] 446s Get:240 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-task-dev all 4.7.1-3 [29.4 kB] 446s Get:241 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fastrand-dev amd64 2.1.1-1 [17.8 kB] 446s Get:242 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-io-dev amd64 0.3.31-1 [11.2 kB] 446s Get:243 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-lite-dev amd64 2.3.0-2 [38.6 kB] 446s Get:244 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-slab-dev amd64 0.4.9-1 [21.2 kB] 446s Get:245 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-executor-dev all 1.13.1-1 [18.7 kB] 446s Get:246 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-lock-dev all 3.4.0-4 [29.3 kB] 446s Get:247 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-atomic-waker-dev amd64 1.1.2-1 [14.3 kB] 446s Get:248 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-attributes-dev amd64 0.1.27-1 [33.3 kB] 446s Get:249 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-valuable-derive-dev amd64 0.1.0-1 [5942 B] 446s Get:250 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-valuable-dev amd64 0.1.0-4 [23.5 kB] 446s Get:251 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-core-dev amd64 0.1.32-1 [53.8 kB] 446s Get:252 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tracing-dev amd64 0.1.40-1 [69.5 kB] 446s Get:253 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-blocking-dev all 1.6.1-5 [17.5 kB] 446s Get:254 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-fs-dev all 2.1.2-4 [15.3 kB] 446s Get:255 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bitflags-dev amd64 2.6.0-1 [41.1 kB] 446s Get:256 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins+core-dev amd64 0.1.101-1 [1090 B] 446s Get:257 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-compiler-builtins+rustc-dep-of-std-dev amd64 0.1.101-1 [1104 B] 446s Get:258 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-errno-dev amd64 0.3.8-1 [13.0 kB] 446s Get:259 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-linux-raw-sys-dev amd64 0.4.14-1 [138 kB] 446s Get:260 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustix-dev amd64 0.38.32-1 [274 kB] 446s Get:261 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-polling-dev amd64 3.4.0-1 [47.8 kB] 446s Get:262 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-io-dev amd64 2.3.3-4 [41.0 kB] 446s Get:263 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-mio-dev amd64 1.0.2-2 [87.6 kB] 446s Get:264 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-owning-ref-dev amd64 0.4.1-1 [13.7 kB] 446s Get:265 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-scopeguard-dev amd64 1.2.0-1 [13.3 kB] 446s Get:266 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-lock-api-dev amd64 0.4.12-1 [22.9 kB] 446s Get:267 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parking-lot-dev amd64 0.12.3-1 [38.7 kB] 447s Get:268 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-signal-hook-registry-dev amd64 1.4.0-1 [19.2 kB] 447s Get:269 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-socket2-dev amd64 0.5.7-1 [48.3 kB] 447s Get:270 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tokio-macros-dev amd64 2.4.0-2 [14.0 kB] 447s Get:271 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tokio-dev amd64 1.39.3-3 [561 kB] 447s Get:272 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-global-executor-dev amd64 2.4.1-5 [14.6 kB] 447s Get:273 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-net-dev all 2.0.0-4 [14.6 kB] 447s Get:274 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-signal-dev amd64 0.2.10-1 [16.0 kB] 447s Get:275 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-process-dev all 2.3.0-1 [21.2 kB] 447s Get:276 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-kv-log-macro-dev all 1.0.8-4 [7290 B] 447s Get:277 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pin-utils-dev amd64 0.1.0-1 [9340 B] 447s Get:278 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-async-std-dev all 1.13.0-1 [170 kB] 447s Get:279 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-base64-dev amd64 0.21.7-1 [65.1 kB] 447s Get:280 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-vec-dev amd64 0.6.3-1 [21.1 kB] 447s Get:281 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-set-dev amd64 0.5.2-1 [15.7 kB] 447s Get:282 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bit-set+std-dev amd64 0.5.2-1 [1084 B] 447s Get:283 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-syntax-dev amd64 0.8.2-1 [200 kB] 447s Get:284 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-automata-dev amd64 0.4.7-1 [424 kB] 447s Get:285 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bstr-dev amd64 1.7.0-2build1 [271 kB] 447s Get:286 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-bumpalo-dev amd64 3.16.0-1 [75.7 kB] 447s Get:287 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cast-dev amd64 0.3.0-1 [13.1 kB] 447s Get:288 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-iana-time-zone-dev amd64 0.1.60-1 [25.1 kB] 447s Get:289 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-shared-dev amd64 0.2.87-1 [9090 B] 447s Get:290 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-backend-dev amd64 0.2.87-1 [27.0 kB] 447s Get:291 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-support-dev amd64 0.2.87-1 [21.2 kB] 447s Get:292 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-dev amd64 0.2.87-1 [16.6 kB] 447s Get:293 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-dev amd64 0.2.87-1 [157 kB] 447s Get:294 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro-support+spans-dev amd64 0.2.87-1 [1074 B] 447s Get:295 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen-macro+spans-dev amd64 0.2.87-1 [1058 B] 447s Get:296 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen+spans-dev amd64 0.2.87-1 [1038 B] 447s Get:297 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wasm-bindgen+default-dev amd64 0.2.87-1 [1046 B] 447s Get:298 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-js-sys-dev amd64 0.3.64-1 [71.9 kB] 447s Get:299 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pure-rust-locales-dev amd64 0.8.1-1 [112 kB] 447s Get:300 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-dev amd64 0.4.38-2 [172 kB] 447s Get:301 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-regex-dev amd64 1.10.6-1 [199 kB] 447s Get:302 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-parse-zoneinfo-dev amd64 0.3.0-1 [71.0 kB] 447s Get:303 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-siphasher-dev amd64 0.3.10-1 [12.0 kB] 447s Get:304 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-shared-dev amd64 0.11.2-1 [15.6 kB] 447s Get:305 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-dev amd64 0.11.2-1 [21.6 kB] 447s Get:306 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-uncased-dev amd64 0.9.6-2 [12.2 kB] 447s Get:307 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-shared+uncased-dev amd64 0.11.2-1 [1026 B] 447s Get:308 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf+uncased-dev amd64 0.11.2-1 [1028 B] 447s Get:309 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-io-dev amd64 0.2.2-1 [8180 B] 447s Get:310 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-half-dev amd64 1.8.2-4 [34.8 kB] 447s Get:311 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-ll-dev amd64 0.2.2-1 [15.8 kB] 447s Get:312 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ciborium-dev amd64 0.2.2-2 [32.6 kB] 447s Get:313 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-lex-dev amd64 0.7.2-2 [14.3 kB] 447s Get:314 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-strsim-dev amd64 0.11.1-1 [15.9 kB] 447s Get:315 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-terminal-size-dev amd64 0.3.0-2 [12.6 kB] 447s Get:316 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicase-dev amd64 2.7.0-1 [19.4 kB] 447s Get:317 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-width-dev amd64 0.1.14-1 [196 kB] 447s Get:318 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-builder-dev amd64 4.5.15-2 [135 kB] 448s Get:319 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-heck-dev amd64 0.4.1-1 [13.3 kB] 448s Get:320 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-derive-dev amd64 4.5.13-2 [29.3 kB] 448s Get:321 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-clap-dev amd64 4.5.16-1 [52.3 kB] 448s Get:322 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-csv-core-dev amd64 0.1.11-1 [25.9 kB] 448s Get:323 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-csv-dev amd64 1.3.0-1 [729 kB] 448s Get:324 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-sink-dev amd64 0.3.31-1 [10.1 kB] 448s Get:325 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-channel-dev amd64 0.3.30-1 [31.8 kB] 448s Get:326 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-task-dev amd64 0.3.30-1 [13.5 kB] 448s Get:327 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-macro-dev amd64 0.3.30-1 [13.3 kB] 448s Get:328 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-util-dev amd64 0.3.30-2 [127 kB] 448s Get:329 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-cpus-dev amd64 1.16.0-1 [18.1 kB] 448s Get:330 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-executor-dev amd64 0.3.30-1 [19.8 kB] 448s Get:331 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-futures-dev amd64 0.3.30-2 [53.2 kB] 448s Get:332 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-is-terminal-dev amd64 0.4.13-1 [8264 B] 448s Get:333 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-itertools-dev amd64 0.10.5-1 [101 kB] 448s Get:334 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-oorandom-dev amd64 11.1.3-1 [11.3 kB] 448s Get:335 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-i686-pc-windows-gnu-dev amd64 0.4.0-1 [3652 B] 448s Get:336 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-x86-64-pc-windows-gnu-dev amd64 0.4.0-1 [3660 B] 448s Get:337 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-dev amd64 0.3.9-1 [953 kB] 448s Get:338 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dirs-sys-next-dev amd64 0.1.1-1 [12.1 kB] 448s Get:339 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dirs-next-dev amd64 2.0.0-1 [13.1 kB] 448s Get:340 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-float-ord-dev amd64 0.3.2-1 [9402 B] 448s Get:341 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-cmake-dev amd64 0.1.45-1 [16.0 kB] 448s Get:342 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-freetype-sys-dev amd64 0.13.1-1 [11.8 kB] 448s Get:343 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-freetype-dev amd64 0.7.0-4 [20.4 kB] 448s Get:344 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-spin-dev amd64 0.9.8-4 [33.4 kB] 448s Get:345 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-lazy-static-dev amd64 1.5.0-1 [14.2 kB] 448s Get:346 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pathfinder-simd-dev amd64 0.5.2-1 [20.1 kB] 448s Get:347 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pathfinder-geometry-dev amd64 0.5.1-1 [13.2 kB] 448s Get:348 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-winapi-util-dev amd64 0.1.6-1 [14.0 kB] 448s Get:349 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-same-file-dev amd64 1.0.6-1 [11.5 kB] 448s Get:350 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-walkdir-dev amd64 2.5.0-1 [24.5 kB] 448s Get:351 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-const-cstr-dev amd64 0.3.0-1 [9068 B] 448s Get:352 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libloading-dev amd64 0.8.5-1 [29.2 kB] 448s Get:353 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-dlib-dev amd64 0.5.2-2 [7972 B] 448s Get:354 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-yeslogic-fontconfig-sys-dev amd64 3.0.1-1 [8110 B] 448s Get:355 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-font-kit-dev amd64 0.11.0-2 [56.2 kB] 448s Get:356 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-color-quant-dev amd64 1.1.0-1 [8462 B] 448s Get:357 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-weezl-dev amd64 0.1.5-1 [30.3 kB] 448s Get:358 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-gif-dev amd64 0.11.3-1 [31.9 kB] 448s Get:359 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-jpeg-decoder-dev amd64 0.3.0-1 [717 kB] 448s Get:360 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-integer-dev amd64 0.1.46-1 [22.6 kB] 448s Get:361 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-humantime-dev amd64 2.1.0-1 [18.2 kB] 448s Get:362 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-termcolor-dev amd64 1.4.1-1 [19.7 kB] 448s Get:363 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-env-logger-dev amd64 0.10.2-2 [34.4 kB] 448s Get:364 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quickcheck-dev amd64 1.0.3-3 [27.9 kB] 448s Get:365 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-bigint-dev amd64 0.4.6-1 [84.9 kB] 448s Get:366 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-rational-dev amd64 0.4.2-1 [28.7 kB] 448s Get:367 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-png-dev amd64 0.17.7-3 [63.4 kB] 448s Get:368 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-qoi-dev amd64 0.4.1-2 [56.7 kB] 448s Get:369 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tiff-dev amd64 0.9.0-1 [1413 kB] 448s Get:370 http://ftpmaster.internal/ubuntu plucky/main amd64 libsharpyuv0 amd64 1.4.0-0.1 [17.5 kB] 448s Get:371 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebp7 amd64 1.4.0-0.1 [231 kB] 448s Get:372 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpdemux2 amd64 1.4.0-0.1 [12.4 kB] 448s Get:373 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpmux3 amd64 1.4.0-0.1 [25.8 kB] 448s Get:374 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebpdecoder3 amd64 1.4.0-0.1 [115 kB] 448s Get:375 http://ftpmaster.internal/ubuntu plucky/main amd64 libsharpyuv-dev amd64 1.4.0-0.1 [19.4 kB] 448s Get:376 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebp-dev amd64 1.4.0-0.1 [371 kB] 448s Get:377 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-libwebp-sys-dev amd64 0.9.5-1build1 [1357 kB] 448s Get:378 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-webp-dev amd64 0.2.6-1 [1846 kB] 448s Get:379 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-image-dev amd64 0.24.7-2 [229 kB] 448s Get:380 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-backend-dev amd64 0.3.7-1 [15.7 kB] 448s Get:381 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-bitmap-dev amd64 0.3.3-3 [17.1 kB] 448s Get:382 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-svg-dev amd64 0.3.5-1 [9258 B] 448s Get:383 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-web-sys-dev amd64 0.3.64-2 [581 kB] 448s Get:384 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-plotters-dev amd64 0.3.5-4 [118 kB] 448s Get:385 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-smol-dev all 2.0.2-1 [205 kB] 448s Get:386 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tinytemplate-dev amd64 1.2.1-1 [26.8 kB] 448s Get:387 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-criterion-dev all 0.5.1-6 [104 kB] 448s Get:388 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-generator-dev amd64 0.11.2-2 [12.3 kB] 449s Get:389 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-phf-codegen-dev amd64 0.11.2-1 [14.3 kB] 449s Get:390 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-tz-build-dev amd64 0.2.1-1 [12.1 kB] 449s Get:391 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-chrono-tz-dev amd64 0.8.6-2 [513 kB] 449s Get:392 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ctor-dev amd64 0.1.26-1 [12.0 kB] 449s Get:393 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-powerfmt-macros-dev amd64 0.1.0-1 [10.5 kB] 449s Get:394 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-powerfmt-dev amd64 0.2.0-1 [16.5 kB] 449s Get:395 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-deranged-dev amd64 0.3.11-1 [18.4 kB] 449s Get:396 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eui48-dev amd64 1.1.0-2 [16.1 kB] 449s Get:397 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indenter-dev amd64 0.3.3-1 [8646 B] 449s Get:398 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eyre-dev amd64 0.6.12-1 [38.0 kB] 449s Get:399 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-eyre+default-dev amd64 0.6.12-1 [1050 B] 449s Get:400 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fancy-regex-dev amd64 0.11.0-2 [54.7 kB] 449s Get:401 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-fnv-dev amd64 1.0.7-1 [12.8 kB] 449s Get:402 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-geo-types-dev amd64 0.7.11-2 [32.8 kB] 449s Get:403 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-ghost-dev amd64 0.1.5-1 [16.1 kB] 449s Get:404 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-hmac-dev amd64 0.12.1-1 [43.9 kB] 449s Get:405 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-indoc-dev amd64 2.0.5-1 [16.7 kB] 449s Get:406 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-inventory-dev amd64 0.3.2-1 [13.5 kB] 449s Get:407 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-memoffset-dev amd64 0.8.0-1 [10.9 kB] 449s Get:408 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-conv-dev amd64 0.1.0-1 [8990 B] 449s Get:409 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-num-threads-dev amd64 0.1.7-1 [9152 B] 449s Get:410 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-derive-dev amd64 0.4.5-1 [13.4 kB] 449s Get:411 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha2-asm-dev amd64 0.6.2-2 [14.4 kB] 449s Get:412 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-sha2-dev amd64 0.10.8-1 [25.6 kB] 449s Get:413 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-bidi-dev amd64 0.3.13-1 [39.8 kB] 449s Get:414 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unicode-normalization-dev amd64 0.1.22-1 [104 kB] 449s Get:415 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-stringprep-dev amd64 0.1.2-1 [16.5 kB] 449s Get:416 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-protocol-dev amd64 0.6.6-2 [25.9 kB] 449s Get:417 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-core-dev amd64 0.1.2-1 [9136 B] 449s Get:418 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-macros-dev amd64 0.2.16-1 [25.1 kB] 449s Get:419 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-time-dev amd64 0.3.36-2 [99.4 kB] 449s Get:420 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-postgres-types-dev amd64 0.2.6-2 [30.1 kB] 449s Get:421 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rand-xorshift-dev amd64 0.3.0-2 [10.9 kB] 449s Get:422 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-quick-error-dev amd64 2.0.1-1 [15.6 kB] 449s Get:423 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-tempfile-dev amd64 3.10.1-1 [33.7 kB] 449s Get:424 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rusty-fork-dev amd64 0.3.0-1 [20.4 kB] 449s Get:425 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-wait-timeout-dev amd64 0.2.0-1 [14.1 kB] 449s Get:426 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rusty-fork+wait-timeout-dev amd64 0.3.0-1 [1134 B] 449s Get:427 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unarray-dev amd64 0.1.4-1 [14.6 kB] 449s Get:428 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-proptest-dev amd64 1.5.0-2 [171 kB] 449s Get:429 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19-runtime amd64 1:19.1.2-1ubuntu1 [554 kB] 449s Get:430 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-runtime amd64 1:19.0-60~exp1 [5608 B] 449s Get:431 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19-linker-tools amd64 1:19.1.2-1ubuntu1 [1312 kB] 449s Get:432 http://ftpmaster.internal/ubuntu plucky/universe amd64 libpfm4 amd64 4.13.0+git83-g91970fe-1 [429 kB] 449s Get:433 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm-19 amd64 1:19.1.2-1ubuntu1 [17.8 MB] 450s Get:434 http://ftpmaster.internal/ubuntu plucky/universe amd64 llvm amd64 1:19.0-60~exp1 [4134 B] 450s Get:435 http://ftpmaster.internal/ubuntu plucky/universe amd64 binutils-mingw-w64-x86-64 amd64 2.43.1-4ubuntu1+12 [3637 kB] 450s Get:436 http://ftpmaster.internal/ubuntu plucky/universe amd64 binutils-mingw-w64-i686 amd64 2.43.1-4ubuntu1+12 [3314 kB] 450s Get:437 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-python3-dll-a-dev amd64 0.2.10-1 [31.6 kB] 450s Get:438 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-target-lexicon-dev amd64 0.12.14-1 [25.1 kB] 450s Get:439 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-build-config-dev amd64 0.22.6-1 [30.8 kB] 450s Get:440 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12-dev amd64 3.12.7-3 [505 kB] 450s Get:441 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-ffi-dev amd64 0.22.6-1build1 [62.6 kB] 450s Get:442 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-macros-backend-dev amd64 0.22.6-1 [58.5 kB] 450s Get:443 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-macros-dev amd64 0.22.6-1 [10.4 kB] 450s Get:444 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rust-decimal-dev amd64 1.36.0-1 [114 kB] 450s Get:445 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-unindent-dev amd64 0.2.3-1 [9186 B] 450s Get:446 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-pyo3-dev amd64 0.22.6-1 [415 kB] 450s Get:447 http://ftpmaster.internal/ubuntu plucky/universe amd64 librust-rustc-hash-dev amd64 1.1.0-1 [10.8 kB] 450s Get:448 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 450s Get:449 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 450s Get:450 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 450s Get:451 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-toml all 0.10.2-1 [16.5 kB] 450s Get:452 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wheel all 0.45.1-1 [57.7 kB] 450s Get:453 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-build all 1.2.2-1 [31.0 kB] 450s Get:454 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 450s Get:455 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-pyproject all 6.20241024 [1728 B] 450s Get:456 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.12.6-0ubuntu1 [886 B] 450s Get:457 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dateutil all 2.9.0-3 [80.2 kB] 450s Get:458 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-sortedcontainers all 2.4.0-2 [27.6 kB] 450s Get:459 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-hypothesis all 6.119.3-1 [329 kB] 450s Get:460 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 450s Get:461 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 450s Get:462 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.3-1 [251 kB] 450s Get:463 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-regex amd64 0.1.20240724-1build1 [303 kB] 450s Get:464 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-semantic-version all 2.10.0-2 [15.1 kB] 450s Get:465 http://ftpmaster.internal/ubuntu plucky/main amd64 rustc amd64 1.80.1ubuntu2 [2754 B] 450s Get:466 http://ftpmaster.internal/ubuntu plucky/main amd64 cargo amd64 1.80.1ubuntu2 [2244 B] 450s Get:467 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-setuptools-rust all 1.9.0+dfsg-2 [23.1 kB] 450s Get:468 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-tiktoken amd64 0.8.0-1build1 [839 kB] 451s Fetched 221 MB in 12s (18.8 MB/s) 451s Selecting previously unselected package m4. 451s (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 ... 75650 files and directories currently installed.) 451s Preparing to unpack .../000-m4_1.4.19-4build1_amd64.deb ... 451s Unpacking m4 (1.4.19-4build1) ... 451s Selecting previously unselected package autoconf. 451s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 451s Unpacking autoconf (2.72-3) ... 451s Selecting previously unselected package autotools-dev. 451s Preparing to unpack .../002-autotools-dev_20220109.1_all.deb ... 451s Unpacking autotools-dev (20220109.1) ... 451s Selecting previously unselected package automake. 451s Preparing to unpack .../003-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 451s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 451s Selecting previously unselected package autopoint. 452s Preparing to unpack .../004-autopoint_0.22.5-2_all.deb ... 452s Unpacking autopoint (0.22.5-2) ... 452s Selecting previously unselected package libisl23:amd64. 452s Preparing to unpack .../005-libisl23_0.27-1_amd64.deb ... 452s Unpacking libisl23:amd64 (0.27-1) ... 452s Selecting previously unselected package libmpc3:amd64. 452s Preparing to unpack .../006-libmpc3_1.3.1-1build2_amd64.deb ... 452s Unpacking libmpc3:amd64 (1.3.1-1build2) ... 452s Selecting previously unselected package cpp-14-x86-64-linux-gnu. 452s Preparing to unpack .../007-cpp-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking cpp-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package cpp-14. 452s Preparing to unpack .../008-cpp-14_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package cpp-x86-64-linux-gnu. 452s Preparing to unpack .../009-cpp-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 452s Unpacking cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 452s Selecting previously unselected package cpp. 452s Preparing to unpack .../010-cpp_4%3a14.1.0-2ubuntu1_amd64.deb ... 452s Unpacking cpp (4:14.1.0-2ubuntu1) ... 452s Selecting previously unselected package libcc1-0:amd64. 452s Preparing to unpack .../011-libcc1-0_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libcc1-0:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libgomp1:amd64. 452s Preparing to unpack .../012-libgomp1_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libgomp1:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libitm1:amd64. 452s Preparing to unpack .../013-libitm1_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libitm1:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libasan8:amd64. 452s Preparing to unpack .../014-libasan8_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libasan8:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package liblsan0:amd64. 452s Preparing to unpack .../015-liblsan0_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking liblsan0:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libtsan2:amd64. 452s Preparing to unpack .../016-libtsan2_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libtsan2:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libubsan1:amd64. 452s Preparing to unpack .../017-libubsan1_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libubsan1:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libhwasan0:amd64. 452s Preparing to unpack .../018-libhwasan0_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libhwasan0:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libquadmath0:amd64. 452s Preparing to unpack .../019-libquadmath0_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libquadmath0:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package libgcc-14-dev:amd64. 452s Preparing to unpack .../020-libgcc-14-dev_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking libgcc-14-dev:amd64 (14.2.0-8ubuntu1) ... 452s Selecting previously unselected package gcc-14-x86-64-linux-gnu. 452s Preparing to unpack .../021-gcc-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 452s Unpacking gcc-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 453s Selecting previously unselected package gcc-14. 453s Preparing to unpack .../022-gcc-14_14.2.0-8ubuntu1_amd64.deb ... 453s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 453s Selecting previously unselected package gcc-x86-64-linux-gnu. 453s Preparing to unpack .../023-gcc-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 453s Unpacking gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 453s Selecting previously unselected package gcc. 453s Preparing to unpack .../024-gcc_4%3a14.1.0-2ubuntu1_amd64.deb ... 453s Unpacking gcc (4:14.1.0-2ubuntu1) ... 453s Selecting previously unselected package libstdc++-14-dev:amd64. 453s Preparing to unpack .../025-libstdc++-14-dev_14.2.0-8ubuntu1_amd64.deb ... 453s Unpacking libstdc++-14-dev:amd64 (14.2.0-8ubuntu1) ... 453s Selecting previously unselected package g++-14-x86-64-linux-gnu. 453s Preparing to unpack .../026-g++-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 453s Unpacking g++-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 453s Selecting previously unselected package g++-14. 453s Preparing to unpack .../027-g++-14_14.2.0-8ubuntu1_amd64.deb ... 453s Unpacking g++-14 (14.2.0-8ubuntu1) ... 453s Selecting previously unselected package g++-x86-64-linux-gnu. 453s Preparing to unpack .../028-g++-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 453s Unpacking g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 453s Selecting previously unselected package g++. 453s Preparing to unpack .../029-g++_4%3a14.1.0-2ubuntu1_amd64.deb ... 453s Unpacking g++ (4:14.1.0-2ubuntu1) ... 453s Selecting previously unselected package build-essential. 453s Preparing to unpack .../030-build-essential_12.10ubuntu1_amd64.deb ... 453s Unpacking build-essential (12.10ubuntu1) ... 453s Selecting previously unselected package libhttp-parser2.9:amd64. 453s Preparing to unpack .../031-libhttp-parser2.9_2.9.4-6build1_amd64.deb ... 453s Unpacking libhttp-parser2.9:amd64 (2.9.4-6build1) ... 453s Selecting previously unselected package libgit2-1.7:amd64. 453s Preparing to unpack .../032-libgit2-1.7_1.7.2+ds-1ubuntu3_amd64.deb ... 453s Unpacking libgit2-1.7:amd64 (1.7.2+ds-1ubuntu3) ... 453s Selecting previously unselected package libstd-rust-1.80:amd64. 453s Preparing to unpack .../033-libstd-rust-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 453s Unpacking libstd-rust-1.80:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 453s Selecting previously unselected package libstd-rust-1.80-dev:amd64. 453s Preparing to unpack .../034-libstd-rust-1.80-dev_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 453s Unpacking libstd-rust-1.80-dev:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 454s Selecting previously unselected package rustc-1.80. 454s Preparing to unpack .../035-rustc-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 454s Unpacking rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 454s Selecting previously unselected package cargo-1.80. 454s Preparing to unpack .../036-cargo-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_amd64.deb ... 454s Unpacking cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 454s Selecting previously unselected package libjsoncpp25:amd64. 454s Preparing to unpack .../037-libjsoncpp25_1.9.5-6build1_amd64.deb ... 454s Unpacking libjsoncpp25:amd64 (1.9.5-6build1) ... 454s Selecting previously unselected package librhash0:amd64. 454s Preparing to unpack .../038-librhash0_1.4.3-3build1_amd64.deb ... 454s Unpacking librhash0:amd64 (1.4.3-3build1) ... 454s Selecting previously unselected package cmake-data. 454s Preparing to unpack .../039-cmake-data_3.30.3-1_all.deb ... 454s Unpacking cmake-data (3.30.3-1) ... 455s Selecting previously unselected package cmake. 455s Preparing to unpack .../040-cmake_3.30.3-1_amd64.deb ... 455s Unpacking cmake (3.30.3-1) ... 455s Selecting previously unselected package libdebhelper-perl. 455s Preparing to unpack .../041-libdebhelper-perl_13.20ubuntu1_all.deb ... 455s Unpacking libdebhelper-perl (13.20ubuntu1) ... 455s Selecting previously unselected package libtool. 455s Preparing to unpack .../042-libtool_2.4.7-8_all.deb ... 455s Unpacking libtool (2.4.7-8) ... 455s Selecting previously unselected package dh-autoreconf. 455s Preparing to unpack .../043-dh-autoreconf_20_all.deb ... 455s Unpacking dh-autoreconf (20) ... 455s Selecting previously unselected package libarchive-zip-perl. 455s Preparing to unpack .../044-libarchive-zip-perl_1.68-1_all.deb ... 455s Unpacking libarchive-zip-perl (1.68-1) ... 455s Selecting previously unselected package libfile-stripnondeterminism-perl. 455s Preparing to unpack .../045-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 455s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 455s Selecting previously unselected package dh-strip-nondeterminism. 455s Preparing to unpack .../046-dh-strip-nondeterminism_1.14.0-1_all.deb ... 455s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 455s Selecting previously unselected package debugedit. 455s Preparing to unpack .../047-debugedit_1%3a5.1-1_amd64.deb ... 455s Unpacking debugedit (1:5.1-1) ... 455s Selecting previously unselected package dwz. 455s Preparing to unpack .../048-dwz_0.15-1build6_amd64.deb ... 455s Unpacking dwz (0.15-1build6) ... 455s Selecting previously unselected package gettext. 455s Preparing to unpack .../049-gettext_0.22.5-2_amd64.deb ... 455s Unpacking gettext (0.22.5-2) ... 455s Selecting previously unselected package intltool-debian. 455s Preparing to unpack .../050-intltool-debian_0.35.0+20060710.6_all.deb ... 455s Unpacking intltool-debian (0.35.0+20060710.6) ... 455s Selecting previously unselected package po-debconf. 455s Preparing to unpack .../051-po-debconf_1.0.21+nmu1_all.deb ... 455s Unpacking po-debconf (1.0.21+nmu1) ... 455s Selecting previously unselected package debhelper. 455s Preparing to unpack .../052-debhelper_13.20ubuntu1_all.deb ... 455s Unpacking debhelper (13.20ubuntu1) ... 455s Selecting previously unselected package dh-python. 455s Preparing to unpack .../053-dh-python_6.20241024_all.deb ... 455s Unpacking dh-python (6.20241024) ... 455s Selecting previously unselected package fonts-dejavu-mono. 455s Preparing to unpack .../054-fonts-dejavu-mono_2.37-8_all.deb ... 455s Unpacking fonts-dejavu-mono (2.37-8) ... 455s Selecting previously unselected package fonts-dejavu-core. 455s Preparing to unpack .../055-fonts-dejavu-core_2.37-8_all.deb ... 455s Unpacking fonts-dejavu-core (2.37-8) ... 455s Selecting previously unselected package fontconfig-config. 455s Preparing to unpack .../056-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ... 456s Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ... 456s Selecting previously unselected package libbrotli-dev:amd64. 456s Preparing to unpack .../057-libbrotli-dev_1.1.0-2build3_amd64.deb ... 456s Unpacking libbrotli-dev:amd64 (1.1.0-2build3) ... 456s Selecting previously unselected package libbz2-dev:amd64. 456s Preparing to unpack .../058-libbz2-dev_1.0.8-6_amd64.deb ... 456s Unpacking libbz2-dev:amd64 (1.0.8-6) ... 456s Selecting previously unselected package libexpat1-dev:amd64. 456s Preparing to unpack .../059-libexpat1-dev_2.6.4-1_amd64.deb ... 456s Unpacking libexpat1-dev:amd64 (2.6.4-1) ... 456s Selecting previously unselected package libfontconfig1:amd64. 456s Preparing to unpack .../060-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ... 456s Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ... 456s Selecting previously unselected package zlib1g-dev:amd64. 456s Preparing to unpack .../061-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_amd64.deb ... 456s Unpacking zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 456s Selecting previously unselected package libpng-dev:amd64. 456s Preparing to unpack .../062-libpng-dev_1.6.44-2_amd64.deb ... 456s Unpacking libpng-dev:amd64 (1.6.44-2) ... 456s Selecting previously unselected package libfreetype-dev:amd64. 456s Preparing to unpack .../063-libfreetype-dev_2.13.3+dfsg-1_amd64.deb ... 456s Unpacking libfreetype-dev:amd64 (2.13.3+dfsg-1) ... 456s Selecting previously unselected package uuid-dev:amd64. 456s Preparing to unpack .../064-uuid-dev_2.40.2-1ubuntu1_amd64.deb ... 456s Unpacking uuid-dev:amd64 (2.40.2-1ubuntu1) ... 456s Selecting previously unselected package libpkgconf3:amd64. 456s Preparing to unpack .../065-libpkgconf3_1.8.1-4_amd64.deb ... 456s Unpacking libpkgconf3:amd64 (1.8.1-4) ... 456s Selecting previously unselected package pkgconf-bin. 456s Preparing to unpack .../066-pkgconf-bin_1.8.1-4_amd64.deb ... 456s Unpacking pkgconf-bin (1.8.1-4) ... 456s Selecting previously unselected package pkgconf:amd64. 456s Preparing to unpack .../067-pkgconf_1.8.1-4_amd64.deb ... 456s Unpacking pkgconf:amd64 (1.8.1-4) ... 456s Selecting previously unselected package libfontconfig-dev:amd64. 456s Preparing to unpack .../068-libfontconfig-dev_2.15.0-1.1ubuntu2_amd64.deb ... 456s Unpacking libfontconfig-dev:amd64 (2.15.0-1.1ubuntu2) ... 456s Selecting previously unselected package libpython3.12-dev:amd64. 456s Preparing to unpack .../069-libpython3.12-dev_3.12.7-3_amd64.deb ... 456s Unpacking libpython3.12-dev:amd64 (3.12.7-3) ... 456s Selecting previously unselected package libpython3-dev:amd64. 456s Preparing to unpack .../070-libpython3-dev_3.12.6-0ubuntu1_amd64.deb ... 456s Unpacking libpython3-dev:amd64 (3.12.6-0ubuntu1) ... 456s Selecting previously unselected package libpython3-all-dev:amd64. 456s Preparing to unpack .../071-libpython3-all-dev_3.12.6-0ubuntu1_amd64.deb ... 456s Unpacking libpython3-all-dev:amd64 (3.12.6-0ubuntu1) ... 456s Selecting previously unselected package librust-ab-glyph-rasterizer-dev:amd64. 456s Preparing to unpack .../072-librust-ab-glyph-rasterizer-dev_0.1.7-1_amd64.deb ... 456s Unpacking librust-ab-glyph-rasterizer-dev:amd64 (0.1.7-1) ... 456s Selecting previously unselected package librust-libm-dev:amd64. 456s Preparing to unpack .../073-librust-libm-dev_0.2.8-1_amd64.deb ... 456s Unpacking librust-libm-dev:amd64 (0.2.8-1) ... 456s Selecting previously unselected package librust-ab-glyph-rasterizer+libm-dev:amd64. 456s Preparing to unpack .../074-librust-ab-glyph-rasterizer+libm-dev_0.1.7-1_amd64.deb ... 456s Unpacking librust-ab-glyph-rasterizer+libm-dev:amd64 (0.1.7-1) ... 456s Selecting previously unselected package librust-core-maths-dev:amd64. 456s Preparing to unpack .../075-librust-core-maths-dev_0.1.0-2_amd64.deb ... 456s Unpacking librust-core-maths-dev:amd64 (0.1.0-2) ... 456s Selecting previously unselected package librust-ttf-parser-dev:amd64. 456s Preparing to unpack .../076-librust-ttf-parser-dev_0.24.1-1_amd64.deb ... 456s Unpacking librust-ttf-parser-dev:amd64 (0.24.1-1) ... 456s Selecting previously unselected package librust-owned-ttf-parser-dev:amd64. 456s Preparing to unpack .../077-librust-owned-ttf-parser-dev_0.24.0-1_amd64.deb ... 456s Unpacking librust-owned-ttf-parser-dev:amd64 (0.24.0-1) ... 456s Selecting previously unselected package librust-ab-glyph-dev:amd64. 456s Preparing to unpack .../078-librust-ab-glyph-dev_0.2.28-1_amd64.deb ... 456s Unpacking librust-ab-glyph-dev:amd64 (0.2.28-1) ... 456s Selecting previously unselected package librust-cfg-if-dev:amd64. 456s Preparing to unpack .../079-librust-cfg-if-dev_1.0.0-1_amd64.deb ... 456s Unpacking librust-cfg-if-dev:amd64 (1.0.0-1) ... 456s Selecting previously unselected package librust-cpp-demangle-dev:amd64. 456s Preparing to unpack .../080-librust-cpp-demangle-dev_0.4.0-1_amd64.deb ... 456s Unpacking librust-cpp-demangle-dev:amd64 (0.4.0-1) ... 456s Selecting previously unselected package librust-fallible-iterator-dev:amd64. 456s Preparing to unpack .../081-librust-fallible-iterator-dev_0.3.0-2_amd64.deb ... 456s Unpacking librust-fallible-iterator-dev:amd64 (0.3.0-2) ... 456s Selecting previously unselected package librust-unicode-ident-dev:amd64. 456s Preparing to unpack .../082-librust-unicode-ident-dev_1.0.13-1_amd64.deb ... 456s Unpacking librust-unicode-ident-dev:amd64 (1.0.13-1) ... 456s Selecting previously unselected package librust-proc-macro2-dev:amd64. 456s Preparing to unpack .../083-librust-proc-macro2-dev_1.0.86-1_amd64.deb ... 456s Unpacking librust-proc-macro2-dev:amd64 (1.0.86-1) ... 456s Selecting previously unselected package librust-quote-dev:amd64. 456s Preparing to unpack .../084-librust-quote-dev_1.0.37-1_amd64.deb ... 456s Unpacking librust-quote-dev:amd64 (1.0.37-1) ... 456s Selecting previously unselected package librust-syn-dev:amd64. 456s Preparing to unpack .../085-librust-syn-dev_2.0.85-1_amd64.deb ... 456s Unpacking librust-syn-dev:amd64 (2.0.85-1) ... 456s Selecting previously unselected package librust-derive-arbitrary-dev:amd64. 456s Preparing to unpack .../086-librust-derive-arbitrary-dev_1.3.2-1_amd64.deb ... 456s Unpacking librust-derive-arbitrary-dev:amd64 (1.3.2-1) ... 456s Selecting previously unselected package librust-arbitrary-dev:amd64. 456s Preparing to unpack .../087-librust-arbitrary-dev_1.3.2-1_amd64.deb ... 456s Unpacking librust-arbitrary-dev:amd64 (1.3.2-1) ... 456s Selecting previously unselected package librust-equivalent-dev:amd64. 456s Preparing to unpack .../088-librust-equivalent-dev_1.0.1-1_amd64.deb ... 456s Unpacking librust-equivalent-dev:amd64 (1.0.1-1) ... 456s Selecting previously unselected package librust-critical-section-dev:amd64. 456s Preparing to unpack .../089-librust-critical-section-dev_1.1.3-1_amd64.deb ... 456s Unpacking librust-critical-section-dev:amd64 (1.1.3-1) ... 456s Selecting previously unselected package librust-serde-derive-dev:amd64. 457s Preparing to unpack .../090-librust-serde-derive-dev_1.0.210-1_amd64.deb ... 457s Unpacking librust-serde-derive-dev:amd64 (1.0.210-1) ... 457s Selecting previously unselected package librust-serde-dev:amd64. 457s Preparing to unpack .../091-librust-serde-dev_1.0.210-2_amd64.deb ... 457s Unpacking librust-serde-dev:amd64 (1.0.210-2) ... 457s Selecting previously unselected package librust-portable-atomic-dev:amd64. 457s Preparing to unpack .../092-librust-portable-atomic-dev_1.9.0-4_amd64.deb ... 457s Unpacking librust-portable-atomic-dev:amd64 (1.9.0-4) ... 457s Selecting previously unselected package librust-rustc-std-workspace-core-dev:amd64. 457s Preparing to unpack .../093-librust-rustc-std-workspace-core-dev_1.0.0-1_amd64.deb ... 457s Unpacking librust-rustc-std-workspace-core-dev:amd64 (1.0.0-1) ... 457s Selecting previously unselected package librust-libc-dev:amd64. 457s Preparing to unpack .../094-librust-libc-dev_0.2.161-1_amd64.deb ... 457s Unpacking librust-libc-dev:amd64 (0.2.161-1) ... 457s Selecting previously unselected package librust-getrandom-dev:amd64. 457s Preparing to unpack .../095-librust-getrandom-dev_0.2.12-1_amd64.deb ... 457s Unpacking librust-getrandom-dev:amd64 (0.2.12-1) ... 457s Selecting previously unselected package librust-smallvec-dev:amd64. 457s Preparing to unpack .../096-librust-smallvec-dev_1.13.2-1_amd64.deb ... 457s Unpacking librust-smallvec-dev:amd64 (1.13.2-1) ... 457s Selecting previously unselected package librust-parking-lot-core-dev:amd64. 457s Preparing to unpack .../097-librust-parking-lot-core-dev_0.9.10-1_amd64.deb ... 457s Unpacking librust-parking-lot-core-dev:amd64 (0.9.10-1) ... 457s Selecting previously unselected package librust-once-cell-dev:amd64. 457s Preparing to unpack .../098-librust-once-cell-dev_1.20.2-1_amd64.deb ... 457s Unpacking librust-once-cell-dev:amd64 (1.20.2-1) ... 457s Selecting previously unselected package librust-crunchy-dev:amd64. 457s Preparing to unpack .../099-librust-crunchy-dev_0.2.2-1_amd64.deb ... 457s Unpacking librust-crunchy-dev:amd64 (0.2.2-1) ... 457s Selecting previously unselected package librust-tiny-keccak-dev:amd64. 457s Preparing to unpack .../100-librust-tiny-keccak-dev_2.0.2-1_amd64.deb ... 457s Unpacking librust-tiny-keccak-dev:amd64 (2.0.2-1) ... 457s Selecting previously unselected package librust-const-random-macro-dev:amd64. 457s Preparing to unpack .../101-librust-const-random-macro-dev_0.1.16-2_amd64.deb ... 457s Unpacking librust-const-random-macro-dev:amd64 (0.1.16-2) ... 457s Selecting previously unselected package librust-const-random-dev:amd64. 457s Preparing to unpack .../102-librust-const-random-dev_0.1.17-2_amd64.deb ... 457s Unpacking librust-const-random-dev:amd64 (0.1.17-2) ... 457s Selecting previously unselected package librust-version-check-dev:amd64. 457s Preparing to unpack .../103-librust-version-check-dev_0.9.5-1_amd64.deb ... 457s Unpacking librust-version-check-dev:amd64 (0.9.5-1) ... 457s Selecting previously unselected package librust-byteorder-dev:amd64. 457s Preparing to unpack .../104-librust-byteorder-dev_1.5.0-1_amd64.deb ... 457s Unpacking librust-byteorder-dev:amd64 (1.5.0-1) ... 457s Selecting previously unselected package librust-zerocopy-derive-dev:amd64. 457s Preparing to unpack .../105-librust-zerocopy-derive-dev_0.7.32-2_amd64.deb ... 457s Unpacking librust-zerocopy-derive-dev:amd64 (0.7.32-2) ... 457s Selecting previously unselected package librust-zerocopy-dev:amd64. 457s Preparing to unpack .../106-librust-zerocopy-dev_0.7.32-1_amd64.deb ... 457s Unpacking librust-zerocopy-dev:amd64 (0.7.32-1) ... 457s Selecting previously unselected package librust-ahash-dev. 457s Preparing to unpack .../107-librust-ahash-dev_0.8.11-8_all.deb ... 457s Unpacking librust-ahash-dev (0.8.11-8) ... 457s Selecting previously unselected package librust-allocator-api2-dev:amd64. 457s Preparing to unpack .../108-librust-allocator-api2-dev_0.2.16-1_amd64.deb ... 457s Unpacking librust-allocator-api2-dev:amd64 (0.2.16-1) ... 457s Selecting previously unselected package librust-compiler-builtins-dev:amd64. 457s Preparing to unpack .../109-librust-compiler-builtins-dev_0.1.101-1_amd64.deb ... 457s Unpacking librust-compiler-builtins-dev:amd64 (0.1.101-1) ... 457s Selecting previously unselected package librust-either-dev:amd64. 457s Preparing to unpack .../110-librust-either-dev_1.13.0-1_amd64.deb ... 457s Unpacking librust-either-dev:amd64 (1.13.0-1) ... 457s Selecting previously unselected package librust-crossbeam-utils-dev:amd64. 457s Preparing to unpack .../111-librust-crossbeam-utils-dev_0.8.19-1_amd64.deb ... 457s Unpacking librust-crossbeam-utils-dev:amd64 (0.8.19-1) ... 457s Selecting previously unselected package librust-crossbeam-epoch-dev:amd64. 457s Preparing to unpack .../112-librust-crossbeam-epoch-dev_0.9.18-1_amd64.deb ... 457s Unpacking librust-crossbeam-epoch-dev:amd64 (0.9.18-1) ... 457s Selecting previously unselected package librust-crossbeam-epoch+std-dev:amd64. 457s Preparing to unpack .../113-librust-crossbeam-epoch+std-dev_0.9.18-1_amd64.deb ... 457s Unpacking librust-crossbeam-epoch+std-dev:amd64 (0.9.18-1) ... 457s Selecting previously unselected package librust-crossbeam-deque-dev:amd64. 457s Preparing to unpack .../114-librust-crossbeam-deque-dev_0.8.5-1_amd64.deb ... 457s Unpacking librust-crossbeam-deque-dev:amd64 (0.8.5-1) ... 457s Selecting previously unselected package librust-rayon-core-dev:amd64. 457s Preparing to unpack .../115-librust-rayon-core-dev_1.12.1-1_amd64.deb ... 457s Unpacking librust-rayon-core-dev:amd64 (1.12.1-1) ... 457s Selecting previously unselected package librust-rayon-dev:amd64. 457s Preparing to unpack .../116-librust-rayon-dev_1.10.0-1_amd64.deb ... 457s Unpacking librust-rayon-dev:amd64 (1.10.0-1) ... 457s Selecting previously unselected package librust-hashbrown-dev:amd64. 457s Preparing to unpack .../117-librust-hashbrown-dev_0.14.5-5_amd64.deb ... 457s Unpacking librust-hashbrown-dev:amd64 (0.14.5-5) ... 457s Selecting previously unselected package librust-indexmap-dev:amd64. 457s Preparing to unpack .../118-librust-indexmap-dev_2.2.6-1_amd64.deb ... 457s Unpacking librust-indexmap-dev:amd64 (2.2.6-1) ... 457s Selecting previously unselected package librust-stable-deref-trait-dev:amd64. 457s Preparing to unpack .../119-librust-stable-deref-trait-dev_1.2.0-1_amd64.deb ... 457s Unpacking librust-stable-deref-trait-dev:amd64 (1.2.0-1) ... 457s Selecting previously unselected package librust-gimli-dev:amd64. 457s Preparing to unpack .../120-librust-gimli-dev_0.28.1-2_amd64.deb ... 457s Unpacking librust-gimli-dev:amd64 (0.28.1-2) ... 457s Selecting previously unselected package librust-memmap2-dev:amd64. 457s Preparing to unpack .../121-librust-memmap2-dev_0.9.3-1_amd64.deb ... 457s Unpacking librust-memmap2-dev:amd64 (0.9.3-1) ... 457s Selecting previously unselected package librust-crc32fast-dev:amd64. 457s Preparing to unpack .../122-librust-crc32fast-dev_1.4.2-1_amd64.deb ... 457s Unpacking librust-crc32fast-dev:amd64 (1.4.2-1) ... 457s Selecting previously unselected package pkg-config:amd64. 457s Preparing to unpack .../123-pkg-config_1.8.1-4_amd64.deb ... 457s Unpacking pkg-config:amd64 (1.8.1-4) ... 457s Selecting previously unselected package librust-pkg-config-dev:amd64. 457s Preparing to unpack .../124-librust-pkg-config-dev_0.3.27-1_amd64.deb ... 457s Unpacking librust-pkg-config-dev:amd64 (0.3.27-1) ... 457s Selecting previously unselected package librust-libz-sys-dev:amd64. 457s Preparing to unpack .../125-librust-libz-sys-dev_1.1.20-1_amd64.deb ... 457s Unpacking librust-libz-sys-dev:amd64 (1.1.20-1) ... 457s Selecting previously unselected package librust-adler-dev:amd64. 457s Preparing to unpack .../126-librust-adler-dev_1.0.2-2_amd64.deb ... 457s Unpacking librust-adler-dev:amd64 (1.0.2-2) ... 457s Selecting previously unselected package librust-miniz-oxide-dev:amd64. 457s Preparing to unpack .../127-librust-miniz-oxide-dev_0.7.1-1_amd64.deb ... 457s Unpacking librust-miniz-oxide-dev:amd64 (0.7.1-1) ... 458s Selecting previously unselected package librust-flate2-dev:amd64. 458s Preparing to unpack .../128-librust-flate2-dev_1.0.34-1_amd64.deb ... 458s Unpacking librust-flate2-dev:amd64 (1.0.34-1) ... 458s Selecting previously unselected package librust-sval-derive-dev:amd64. 458s Preparing to unpack .../129-librust-sval-derive-dev_2.6.1-2_amd64.deb ... 458s Unpacking librust-sval-derive-dev:amd64 (2.6.1-2) ... 458s Selecting previously unselected package librust-sval-dev:amd64. 458s Preparing to unpack .../130-librust-sval-dev_2.6.1-2_amd64.deb ... 458s Unpacking librust-sval-dev:amd64 (2.6.1-2) ... 458s Selecting previously unselected package librust-sval-ref-dev:amd64. 458s Preparing to unpack .../131-librust-sval-ref-dev_2.6.1-1_amd64.deb ... 458s Unpacking librust-sval-ref-dev:amd64 (2.6.1-1) ... 458s Selecting previously unselected package librust-erased-serde-dev:amd64. 458s Preparing to unpack .../132-librust-erased-serde-dev_0.3.31-1_amd64.deb ... 458s Unpacking librust-erased-serde-dev:amd64 (0.3.31-1) ... 458s Selecting previously unselected package librust-serde-fmt-dev. 458s Preparing to unpack .../133-librust-serde-fmt-dev_1.0.3-3_all.deb ... 458s Unpacking librust-serde-fmt-dev (1.0.3-3) ... 458s Selecting previously unselected package librust-syn-1-dev:amd64. 458s Preparing to unpack .../134-librust-syn-1-dev_1.0.109-2_amd64.deb ... 458s Unpacking librust-syn-1-dev:amd64 (1.0.109-2) ... 458s Selecting previously unselected package librust-no-panic-dev:amd64. 458s Preparing to unpack .../135-librust-no-panic-dev_0.1.13-1_amd64.deb ... 458s Unpacking librust-no-panic-dev:amd64 (0.1.13-1) ... 458s Selecting previously unselected package librust-itoa-dev:amd64. 458s Preparing to unpack .../136-librust-itoa-dev_1.0.9-1_amd64.deb ... 458s Unpacking librust-itoa-dev:amd64 (1.0.9-1) ... 458s Selecting previously unselected package librust-ryu-dev:amd64. 458s Preparing to unpack .../137-librust-ryu-dev_1.0.15-1_amd64.deb ... 458s Unpacking librust-ryu-dev:amd64 (1.0.15-1) ... 458s Selecting previously unselected package librust-serde-json-dev:amd64. 458s Preparing to unpack .../138-librust-serde-json-dev_1.0.128-1_amd64.deb ... 458s Unpacking librust-serde-json-dev:amd64 (1.0.128-1) ... 458s Selecting previously unselected package librust-serde-test-dev:amd64. 458s Preparing to unpack .../139-librust-serde-test-dev_1.0.171-1_amd64.deb ... 458s Unpacking librust-serde-test-dev:amd64 (1.0.171-1) ... 458s Selecting previously unselected package librust-value-bag-serde1-dev:amd64. 458s Preparing to unpack .../140-librust-value-bag-serde1-dev_1.9.0-1_amd64.deb ... 458s Unpacking librust-value-bag-serde1-dev:amd64 (1.9.0-1) ... 458s Selecting previously unselected package librust-sval-buffer-dev:amd64. 458s Preparing to unpack .../141-librust-sval-buffer-dev_2.6.1-1_amd64.deb ... 458s Unpacking librust-sval-buffer-dev:amd64 (2.6.1-1) ... 458s Selecting previously unselected package librust-sval-dynamic-dev:amd64. 458s Preparing to unpack .../142-librust-sval-dynamic-dev_2.6.1-1_amd64.deb ... 458s Unpacking librust-sval-dynamic-dev:amd64 (2.6.1-1) ... 458s Selecting previously unselected package librust-sval-fmt-dev:amd64. 458s Preparing to unpack .../143-librust-sval-fmt-dev_2.6.1-1_amd64.deb ... 458s Unpacking librust-sval-fmt-dev:amd64 (2.6.1-1) ... 458s Selecting previously unselected package librust-sval-serde-dev:amd64. 458s Preparing to unpack .../144-librust-sval-serde-dev_2.6.1-1_amd64.deb ... 458s Unpacking librust-sval-serde-dev:amd64 (2.6.1-1) ... 458s Selecting previously unselected package librust-value-bag-sval2-dev:amd64. 458s Preparing to unpack .../145-librust-value-bag-sval2-dev_1.9.0-1_amd64.deb ... 458s Unpacking librust-value-bag-sval2-dev:amd64 (1.9.0-1) ... 458s Selecting previously unselected package librust-value-bag-dev:amd64. 458s Preparing to unpack .../146-librust-value-bag-dev_1.9.0-1_amd64.deb ... 458s Unpacking librust-value-bag-dev:amd64 (1.9.0-1) ... 458s Selecting previously unselected package librust-log-dev:amd64. 458s Preparing to unpack .../147-librust-log-dev_0.4.22-1_amd64.deb ... 458s Unpacking librust-log-dev:amd64 (0.4.22-1) ... 458s Selecting previously unselected package librust-memchr-dev:amd64. 458s Preparing to unpack .../148-librust-memchr-dev_2.7.4-1_amd64.deb ... 458s Unpacking librust-memchr-dev:amd64 (2.7.4-1) ... 458s Selecting previously unselected package librust-ppv-lite86-dev:amd64. 458s Preparing to unpack .../149-librust-ppv-lite86-dev_0.2.16-1_amd64.deb ... 458s Unpacking librust-ppv-lite86-dev:amd64 (0.2.16-1) ... 458s Selecting previously unselected package librust-rand-core-dev:amd64. 458s Preparing to unpack .../150-librust-rand-core-dev_0.6.4-2_amd64.deb ... 458s Unpacking librust-rand-core-dev:amd64 (0.6.4-2) ... 458s Selecting previously unselected package librust-rand-chacha-dev:amd64. 458s Preparing to unpack .../151-librust-rand-chacha-dev_0.3.1-2_amd64.deb ... 458s Unpacking librust-rand-chacha-dev:amd64 (0.3.1-2) ... 458s Selecting previously unselected package librust-rand-core+getrandom-dev:amd64. 458s Preparing to unpack .../152-librust-rand-core+getrandom-dev_0.6.4-2_amd64.deb ... 458s Unpacking librust-rand-core+getrandom-dev:amd64 (0.6.4-2) ... 458s Selecting previously unselected package librust-rand-core+serde-dev:amd64. 458s Preparing to unpack .../153-librust-rand-core+serde-dev_0.6.4-2_amd64.deb ... 458s Unpacking librust-rand-core+serde-dev:amd64 (0.6.4-2) ... 458s Selecting previously unselected package librust-rand-core+std-dev:amd64. 458s Preparing to unpack .../154-librust-rand-core+std-dev_0.6.4-2_amd64.deb ... 458s Unpacking librust-rand-core+std-dev:amd64 (0.6.4-2) ... 458s Selecting previously unselected package librust-rand-dev:amd64. 458s Preparing to unpack .../155-librust-rand-dev_0.8.5-1_amd64.deb ... 458s Unpacking librust-rand-dev:amd64 (0.8.5-1) ... 458s Selecting previously unselected package librust-unicode-segmentation-dev:amd64. 458s Preparing to unpack .../156-librust-unicode-segmentation-dev_1.11.0-1_amd64.deb ... 458s Unpacking librust-unicode-segmentation-dev:amd64 (1.11.0-1) ... 458s Selecting previously unselected package librust-convert-case-dev:amd64. 458s Preparing to unpack .../157-librust-convert-case-dev_0.6.0-2_amd64.deb ... 458s Unpacking librust-convert-case-dev:amd64 (0.6.0-2) ... 458s Selecting previously unselected package librust-semver-dev:amd64. 458s Preparing to unpack .../158-librust-semver-dev_1.0.23-1_amd64.deb ... 458s Unpacking librust-semver-dev:amd64 (1.0.23-1) ... 458s Selecting previously unselected package librust-rustc-version-dev:amd64. 458s Preparing to unpack .../159-librust-rustc-version-dev_0.4.0-1_amd64.deb ... 458s Unpacking librust-rustc-version-dev:amd64 (0.4.0-1) ... 458s Selecting previously unselected package librust-derive-more-dev:amd64. 458s Preparing to unpack .../160-librust-derive-more-dev_0.99.17-1_amd64.deb ... 458s Unpacking librust-derive-more-dev:amd64 (0.99.17-1) ... 458s Selecting previously unselected package librust-cfg-if-0.1-dev:amd64. 458s Preparing to unpack .../161-librust-cfg-if-0.1-dev_0.1.10-2_amd64.deb ... 458s Unpacking librust-cfg-if-0.1-dev:amd64 (0.1.10-2) ... 458s Selecting previously unselected package librust-blobby-dev:amd64. 458s Preparing to unpack .../162-librust-blobby-dev_0.3.1-1_amd64.deb ... 458s Unpacking librust-blobby-dev:amd64 (0.3.1-1) ... 458s Selecting previously unselected package librust-typenum-dev:amd64. 458s Preparing to unpack .../163-librust-typenum-dev_1.17.0-2_amd64.deb ... 458s Unpacking librust-typenum-dev:amd64 (1.17.0-2) ... 458s Selecting previously unselected package librust-zeroize-derive-dev:amd64. 458s Preparing to unpack .../164-librust-zeroize-derive-dev_1.4.2-1_amd64.deb ... 458s Unpacking librust-zeroize-derive-dev:amd64 (1.4.2-1) ... 458s Selecting previously unselected package librust-zeroize-dev:amd64. 458s Preparing to unpack .../165-librust-zeroize-dev_1.8.1-1_amd64.deb ... 458s Unpacking librust-zeroize-dev:amd64 (1.8.1-1) ... 458s Selecting previously unselected package librust-generic-array-dev:amd64. 458s Preparing to unpack .../166-librust-generic-array-dev_0.14.7-1_amd64.deb ... 458s Unpacking librust-generic-array-dev:amd64 (0.14.7-1) ... 459s Selecting previously unselected package librust-block-buffer-dev:amd64. 459s Preparing to unpack .../167-librust-block-buffer-dev_0.10.2-2_amd64.deb ... 459s Unpacking librust-block-buffer-dev:amd64 (0.10.2-2) ... 459s Selecting previously unselected package librust-const-oid-dev:amd64. 459s Preparing to unpack .../168-librust-const-oid-dev_0.9.3-1_amd64.deb ... 459s Unpacking librust-const-oid-dev:amd64 (0.9.3-1) ... 459s Selecting previously unselected package librust-crypto-common-dev:amd64. 459s Preparing to unpack .../169-librust-crypto-common-dev_0.1.6-1_amd64.deb ... 459s Unpacking librust-crypto-common-dev:amd64 (0.1.6-1) ... 459s Selecting previously unselected package librust-subtle-dev:amd64. 459s Preparing to unpack .../170-librust-subtle-dev_2.6.1-1_amd64.deb ... 459s Unpacking librust-subtle-dev:amd64 (2.6.1-1) ... 459s Selecting previously unselected package librust-digest-dev:amd64. 459s Preparing to unpack .../171-librust-digest-dev_0.10.7-2_amd64.deb ... 459s Unpacking librust-digest-dev:amd64 (0.10.7-2) ... 459s Selecting previously unselected package librust-static-assertions-dev:amd64. 459s Preparing to unpack .../172-librust-static-assertions-dev_1.1.0-1_amd64.deb ... 459s Unpacking librust-static-assertions-dev:amd64 (1.1.0-1) ... 459s Selecting previously unselected package librust-twox-hash-dev:amd64. 459s Preparing to unpack .../173-librust-twox-hash-dev_1.6.3-1_amd64.deb ... 459s Unpacking librust-twox-hash-dev:amd64 (1.6.3-1) ... 459s Selecting previously unselected package librust-ruzstd-dev:amd64. 459s Preparing to unpack .../174-librust-ruzstd-dev_0.5.0-1_amd64.deb ... 459s Unpacking librust-ruzstd-dev:amd64 (0.5.0-1) ... 459s Selecting previously unselected package librust-object-dev:amd64. 459s Preparing to unpack .../175-librust-object-dev_0.32.2-1_amd64.deb ... 459s Unpacking librust-object-dev:amd64 (0.32.2-1) ... 459s Selecting previously unselected package librust-rustc-demangle-dev:amd64. 459s Preparing to unpack .../176-librust-rustc-demangle-dev_0.1.21-1_amd64.deb ... 459s Unpacking librust-rustc-demangle-dev:amd64 (0.1.21-1) ... 459s Selecting previously unselected package librust-addr2line-dev:amd64. 459s Preparing to unpack .../177-librust-addr2line-dev_0.21.0-2_amd64.deb ... 459s Unpacking librust-addr2line-dev:amd64 (0.21.0-2) ... 459s Selecting previously unselected package librust-aho-corasick-dev:amd64. 459s Preparing to unpack .../178-librust-aho-corasick-dev_1.1.3-1_amd64.deb ... 459s Unpacking librust-aho-corasick-dev:amd64 (1.1.3-1) ... 459s Selecting previously unselected package librust-bitflags-1-dev:amd64. 459s Preparing to unpack .../179-librust-bitflags-1-dev_1.3.2-5_amd64.deb ... 459s Unpacking librust-bitflags-1-dev:amd64 (1.3.2-5) ... 459s Selecting previously unselected package librust-anes-dev:amd64. 459s Preparing to unpack .../180-librust-anes-dev_0.1.6-1_amd64.deb ... 459s Unpacking librust-anes-dev:amd64 (0.1.6-1) ... 459s Selecting previously unselected package librust-anstyle-dev:amd64. 459s Preparing to unpack .../181-librust-anstyle-dev_1.0.8-1_amd64.deb ... 459s Unpacking librust-anstyle-dev:amd64 (1.0.8-1) ... 459s Selecting previously unselected package librust-arrayvec-dev:amd64. 459s Preparing to unpack .../182-librust-arrayvec-dev_0.7.4-2_amd64.deb ... 459s Unpacking librust-arrayvec-dev:amd64 (0.7.4-2) ... 459s Selecting previously unselected package librust-utf8parse-dev:amd64. 459s Preparing to unpack .../183-librust-utf8parse-dev_0.2.1-1_amd64.deb ... 459s Unpacking librust-utf8parse-dev:amd64 (0.2.1-1) ... 459s Selecting previously unselected package librust-anstyle-parse-dev:amd64. 459s Preparing to unpack .../184-librust-anstyle-parse-dev_0.2.1-1_amd64.deb ... 459s Unpacking librust-anstyle-parse-dev:amd64 (0.2.1-1) ... 459s Selecting previously unselected package librust-anstyle-query-dev:amd64. 459s Preparing to unpack .../185-librust-anstyle-query-dev_1.0.0-1_amd64.deb ... 459s Unpacking librust-anstyle-query-dev:amd64 (1.0.0-1) ... 459s Selecting previously unselected package librust-colorchoice-dev:amd64. 459s Preparing to unpack .../186-librust-colorchoice-dev_1.0.0-1_amd64.deb ... 459s Unpacking librust-colorchoice-dev:amd64 (1.0.0-1) ... 459s Selecting previously unselected package librust-anstream-dev:amd64. 459s Preparing to unpack .../187-librust-anstream-dev_0.6.15-1_amd64.deb ... 459s Unpacking librust-anstream-dev:amd64 (0.6.15-1) ... 459s Selecting previously unselected package librust-jobserver-dev:amd64. 459s Preparing to unpack .../188-librust-jobserver-dev_0.1.32-1_amd64.deb ... 459s Unpacking librust-jobserver-dev:amd64 (0.1.32-1) ... 459s Selecting previously unselected package librust-shlex-dev:amd64. 459s Preparing to unpack .../189-librust-shlex-dev_1.3.0-1_amd64.deb ... 459s Unpacking librust-shlex-dev:amd64 (1.3.0-1) ... 459s Selecting previously unselected package librust-cc-dev:amd64. 459s Preparing to unpack .../190-librust-cc-dev_1.1.14-1_amd64.deb ... 459s Unpacking librust-cc-dev:amd64 (1.1.14-1) ... 459s Selecting previously unselected package librust-backtrace-dev:amd64. 459s Preparing to unpack .../191-librust-backtrace-dev_0.3.69-2_amd64.deb ... 459s Unpacking librust-backtrace-dev:amd64 (0.3.69-2) ... 459s Selecting previously unselected package librust-anyhow-dev:amd64. 459s Preparing to unpack .../192-librust-anyhow-dev_1.0.86-1_amd64.deb ... 459s Unpacking librust-anyhow-dev:amd64 (1.0.86-1) ... 459s Selecting previously unselected package librust-bytecheck-derive-dev:amd64. 459s Preparing to unpack .../193-librust-bytecheck-derive-dev_0.6.12-1_amd64.deb ... 459s Unpacking librust-bytecheck-derive-dev:amd64 (0.6.12-1) ... 459s Selecting previously unselected package librust-ptr-meta-derive-dev:amd64. 459s Preparing to unpack .../194-librust-ptr-meta-derive-dev_0.1.4-1_amd64.deb ... 459s Unpacking librust-ptr-meta-derive-dev:amd64 (0.1.4-1) ... 459s Selecting previously unselected package librust-ptr-meta-dev:amd64. 459s Preparing to unpack .../195-librust-ptr-meta-dev_0.1.4-1_amd64.deb ... 459s Unpacking librust-ptr-meta-dev:amd64 (0.1.4-1) ... 459s Selecting previously unselected package librust-simdutf8-dev:amd64. 459s Preparing to unpack .../196-librust-simdutf8-dev_0.1.4-4_amd64.deb ... 459s Unpacking librust-simdutf8-dev:amd64 (0.1.4-4) ... 459s Selecting previously unselected package librust-bytemuck-derive-dev:amd64. 459s Preparing to unpack .../197-librust-bytemuck-derive-dev_1.5.0-2_amd64.deb ... 459s Unpacking librust-bytemuck-derive-dev:amd64 (1.5.0-2) ... 459s Selecting previously unselected package librust-bytemuck-dev:amd64. 459s Preparing to unpack .../198-librust-bytemuck-dev_1.14.0-1_amd64.deb ... 459s Unpacking librust-bytemuck-dev:amd64 (1.14.0-1) ... 459s Selecting previously unselected package librust-atomic-dev:amd64. 459s Preparing to unpack .../199-librust-atomic-dev_0.6.0-1_amd64.deb ... 459s Unpacking librust-atomic-dev:amd64 (0.6.0-1) ... 460s Selecting previously unselected package librust-md5-asm-dev:amd64. 460s Preparing to unpack .../200-librust-md5-asm-dev_0.5.0-2_amd64.deb ... 460s Unpacking librust-md5-asm-dev:amd64 (0.5.0-2) ... 460s Selecting previously unselected package librust-md-5-dev:amd64. 460s Preparing to unpack .../201-librust-md-5-dev_0.10.6-1_amd64.deb ... 460s Unpacking librust-md-5-dev:amd64 (0.10.6-1) ... 460s Selecting previously unselected package librust-cpufeatures-dev:amd64. 460s Preparing to unpack .../202-librust-cpufeatures-dev_0.2.11-1_amd64.deb ... 460s Unpacking librust-cpufeatures-dev:amd64 (0.2.11-1) ... 460s Selecting previously unselected package librust-sha1-asm-dev:amd64. 460s Preparing to unpack .../203-librust-sha1-asm-dev_0.5.1-2_amd64.deb ... 460s Unpacking librust-sha1-asm-dev:amd64 (0.5.1-2) ... 460s Selecting previously unselected package librust-sha1-dev:amd64. 460s Preparing to unpack .../204-librust-sha1-dev_0.10.6-1_amd64.deb ... 460s Unpacking librust-sha1-dev:amd64 (0.10.6-1) ... 460s Selecting previously unselected package librust-slog-dev:amd64. 460s Preparing to unpack .../205-librust-slog-dev_2.7.0-1_amd64.deb ... 460s Unpacking librust-slog-dev:amd64 (2.7.0-1) ... 460s Selecting previously unselected package librust-uuid-dev:amd64. 460s Preparing to unpack .../206-librust-uuid-dev_1.10.0-1_amd64.deb ... 460s Unpacking librust-uuid-dev:amd64 (1.10.0-1) ... 460s Selecting previously unselected package librust-bytecheck-dev:amd64. 460s Preparing to unpack .../207-librust-bytecheck-dev_0.6.12-1_amd64.deb ... 460s Unpacking librust-bytecheck-dev:amd64 (0.6.12-1) ... 460s Selecting previously unselected package librust-autocfg-dev:amd64. 460s Preparing to unpack .../208-librust-autocfg-dev_1.1.0-1_amd64.deb ... 460s Unpacking librust-autocfg-dev:amd64 (1.1.0-1) ... 460s Selecting previously unselected package librust-num-traits-dev:amd64. 460s Preparing to unpack .../209-librust-num-traits-dev_0.2.19-2_amd64.deb ... 460s Unpacking librust-num-traits-dev:amd64 (0.2.19-2) ... 460s Selecting previously unselected package librust-funty-dev:amd64. 460s Preparing to unpack .../210-librust-funty-dev_2.0.0-1_amd64.deb ... 460s Unpacking librust-funty-dev:amd64 (2.0.0-1) ... 460s Selecting previously unselected package librust-radium-dev:amd64. 460s Preparing to unpack .../211-librust-radium-dev_1.1.0-1_amd64.deb ... 460s Unpacking librust-radium-dev:amd64 (1.1.0-1) ... 460s Selecting previously unselected package librust-tap-dev:amd64. 460s Preparing to unpack .../212-librust-tap-dev_1.0.1-1_amd64.deb ... 460s Unpacking librust-tap-dev:amd64 (1.0.1-1) ... 460s Selecting previously unselected package librust-traitobject-dev:amd64. 460s Preparing to unpack .../213-librust-traitobject-dev_0.1.0-1_amd64.deb ... 460s Unpacking librust-traitobject-dev:amd64 (0.1.0-1) ... 460s Selecting previously unselected package librust-unsafe-any-dev:amd64. 460s Preparing to unpack .../214-librust-unsafe-any-dev_0.4.2-2_amd64.deb ... 460s Unpacking librust-unsafe-any-dev:amd64 (0.4.2-2) ... 460s Selecting previously unselected package librust-typemap-dev:amd64. 460s Preparing to unpack .../215-librust-typemap-dev_0.3.3-2_amd64.deb ... 460s Unpacking librust-typemap-dev:amd64 (0.3.3-2) ... 460s Selecting previously unselected package librust-wyz-dev:amd64. 460s Preparing to unpack .../216-librust-wyz-dev_0.5.1-1_amd64.deb ... 460s Unpacking librust-wyz-dev:amd64 (0.5.1-1) ... 460s Selecting previously unselected package librust-bitvec-dev:amd64. 460s Preparing to unpack .../217-librust-bitvec-dev_1.0.1-1_amd64.deb ... 460s Unpacking librust-bitvec-dev:amd64 (1.0.1-1) ... 460s Selecting previously unselected package librust-bytes-dev:amd64. 460s Preparing to unpack .../218-librust-bytes-dev_1.8.0-1_amd64.deb ... 460s Unpacking librust-bytes-dev:amd64 (1.8.0-1) ... 460s Selecting previously unselected package librust-rend-dev:amd64. 460s Preparing to unpack .../219-librust-rend-dev_0.4.0-1_amd64.deb ... 460s Unpacking librust-rend-dev:amd64 (0.4.0-1) ... 460s Selecting previously unselected package librust-rkyv-derive-dev:amd64. 460s Preparing to unpack .../220-librust-rkyv-derive-dev_0.7.44-1_amd64.deb ... 460s Unpacking librust-rkyv-derive-dev:amd64 (0.7.44-1) ... 460s Selecting previously unselected package librust-seahash-dev:amd64. 460s Preparing to unpack .../221-librust-seahash-dev_4.1.0-1_amd64.deb ... 460s Unpacking librust-seahash-dev:amd64 (4.1.0-1) ... 460s Selecting previously unselected package librust-smol-str-dev:amd64. 460s Preparing to unpack .../222-librust-smol-str-dev_0.2.0-1_amd64.deb ... 460s Unpacking librust-smol-str-dev:amd64 (0.2.0-1) ... 460s Selecting previously unselected package librust-tinyvec-dev:amd64. 460s Preparing to unpack .../223-librust-tinyvec-dev_1.6.0-2_amd64.deb ... 460s Unpacking librust-tinyvec-dev:amd64 (1.6.0-2) ... 460s Selecting previously unselected package librust-tinyvec-macros-dev:amd64. 460s Preparing to unpack .../224-librust-tinyvec-macros-dev_0.1.0-1_amd64.deb ... 460s Unpacking librust-tinyvec-macros-dev:amd64 (0.1.0-1) ... 460s Selecting previously unselected package librust-tinyvec+tinyvec-macros-dev:amd64. 460s Preparing to unpack .../225-librust-tinyvec+tinyvec-macros-dev_1.6.0-2_amd64.deb ... 460s Unpacking librust-tinyvec+tinyvec-macros-dev:amd64 (1.6.0-2) ... 460s Selecting previously unselected package librust-rkyv-dev:amd64. 460s Preparing to unpack .../226-librust-rkyv-dev_0.7.44-1_amd64.deb ... 460s Unpacking librust-rkyv-dev:amd64 (0.7.44-1) ... 460s Selecting previously unselected package librust-num-complex-dev:amd64. 460s Preparing to unpack .../227-librust-num-complex-dev_0.4.6-2_amd64.deb ... 460s Unpacking librust-num-complex-dev:amd64 (0.4.6-2) ... 461s Selecting previously unselected package librust-approx-dev:amd64. 461s Preparing to unpack .../228-librust-approx-dev_0.5.1-1_amd64.deb ... 461s Unpacking librust-approx-dev:amd64 (0.5.1-1) ... 461s Selecting previously unselected package librust-array-init-dev:amd64. 461s Preparing to unpack .../229-librust-array-init-dev_2.0.1-1_amd64.deb ... 461s Unpacking librust-array-init-dev:amd64 (2.0.1-1) ... 461s Selecting previously unselected package librust-async-attributes-dev. 461s Preparing to unpack .../230-librust-async-attributes-dev_1.1.2-6_all.deb ... 461s Unpacking librust-async-attributes-dev (1.1.2-6) ... 461s Selecting previously unselected package librust-concurrent-queue-dev:amd64. 461s Preparing to unpack .../231-librust-concurrent-queue-dev_2.5.0-4_amd64.deb ... 461s Unpacking librust-concurrent-queue-dev:amd64 (2.5.0-4) ... 461s Selecting previously unselected package librust-parking-dev:amd64. 461s Preparing to unpack .../232-librust-parking-dev_2.2.0-1_amd64.deb ... 461s Unpacking librust-parking-dev:amd64 (2.2.0-1) ... 461s Selecting previously unselected package librust-pin-project-lite-dev:amd64. 461s Preparing to unpack .../233-librust-pin-project-lite-dev_0.2.13-1_amd64.deb ... 461s Unpacking librust-pin-project-lite-dev:amd64 (0.2.13-1) ... 461s Selecting previously unselected package librust-event-listener-dev. 461s Preparing to unpack .../234-librust-event-listener-dev_5.3.1-8_all.deb ... 461s Unpacking librust-event-listener-dev (5.3.1-8) ... 461s Selecting previously unselected package librust-event-listener-strategy-dev:amd64. 461s Preparing to unpack .../235-librust-event-listener-strategy-dev_0.5.2-3_amd64.deb ... 461s Unpacking librust-event-listener-strategy-dev:amd64 (0.5.2-3) ... 461s Selecting previously unselected package librust-futures-core-dev:amd64. 461s Preparing to unpack .../236-librust-futures-core-dev_0.3.30-1_amd64.deb ... 461s Unpacking librust-futures-core-dev:amd64 (0.3.30-1) ... 461s Selecting previously unselected package librust-async-channel-dev. 461s Preparing to unpack .../237-librust-async-channel-dev_2.3.1-8_all.deb ... 461s Unpacking librust-async-channel-dev (2.3.1-8) ... 461s Selecting previously unselected package librust-async-task-dev. 461s Preparing to unpack .../238-librust-async-task-dev_4.7.1-3_all.deb ... 461s Unpacking librust-async-task-dev (4.7.1-3) ... 461s Selecting previously unselected package librust-fastrand-dev:amd64. 461s Preparing to unpack .../239-librust-fastrand-dev_2.1.1-1_amd64.deb ... 461s Unpacking librust-fastrand-dev:amd64 (2.1.1-1) ... 461s Selecting previously unselected package librust-futures-io-dev:amd64. 461s Preparing to unpack .../240-librust-futures-io-dev_0.3.31-1_amd64.deb ... 461s Unpacking librust-futures-io-dev:amd64 (0.3.31-1) ... 461s Selecting previously unselected package librust-futures-lite-dev:amd64. 461s Preparing to unpack .../241-librust-futures-lite-dev_2.3.0-2_amd64.deb ... 461s Unpacking librust-futures-lite-dev:amd64 (2.3.0-2) ... 461s Selecting previously unselected package librust-slab-dev:amd64. 461s Preparing to unpack .../242-librust-slab-dev_0.4.9-1_amd64.deb ... 461s Unpacking librust-slab-dev:amd64 (0.4.9-1) ... 461s Selecting previously unselected package librust-async-executor-dev. 461s Preparing to unpack .../243-librust-async-executor-dev_1.13.1-1_all.deb ... 461s Unpacking librust-async-executor-dev (1.13.1-1) ... 461s Selecting previously unselected package librust-async-lock-dev. 461s Preparing to unpack .../244-librust-async-lock-dev_3.4.0-4_all.deb ... 461s Unpacking librust-async-lock-dev (3.4.0-4) ... 461s Selecting previously unselected package librust-atomic-waker-dev:amd64. 461s Preparing to unpack .../245-librust-atomic-waker-dev_1.1.2-1_amd64.deb ... 461s Unpacking librust-atomic-waker-dev:amd64 (1.1.2-1) ... 461s Selecting previously unselected package librust-tracing-attributes-dev:amd64. 461s Preparing to unpack .../246-librust-tracing-attributes-dev_0.1.27-1_amd64.deb ... 461s Unpacking librust-tracing-attributes-dev:amd64 (0.1.27-1) ... 461s Selecting previously unselected package librust-valuable-derive-dev:amd64. 461s Preparing to unpack .../247-librust-valuable-derive-dev_0.1.0-1_amd64.deb ... 461s Unpacking librust-valuable-derive-dev:amd64 (0.1.0-1) ... 461s Selecting previously unselected package librust-valuable-dev:amd64. 461s Preparing to unpack .../248-librust-valuable-dev_0.1.0-4_amd64.deb ... 461s Unpacking librust-valuable-dev:amd64 (0.1.0-4) ... 461s Selecting previously unselected package librust-tracing-core-dev:amd64. 461s Preparing to unpack .../249-librust-tracing-core-dev_0.1.32-1_amd64.deb ... 461s Unpacking librust-tracing-core-dev:amd64 (0.1.32-1) ... 461s Selecting previously unselected package librust-tracing-dev:amd64. 461s Preparing to unpack .../250-librust-tracing-dev_0.1.40-1_amd64.deb ... 461s Unpacking librust-tracing-dev:amd64 (0.1.40-1) ... 461s Selecting previously unselected package librust-blocking-dev. 461s Preparing to unpack .../251-librust-blocking-dev_1.6.1-5_all.deb ... 461s Unpacking librust-blocking-dev (1.6.1-5) ... 461s Selecting previously unselected package librust-async-fs-dev. 461s Preparing to unpack .../252-librust-async-fs-dev_2.1.2-4_all.deb ... 461s Unpacking librust-async-fs-dev (2.1.2-4) ... 461s Selecting previously unselected package librust-bitflags-dev:amd64. 461s Preparing to unpack .../253-librust-bitflags-dev_2.6.0-1_amd64.deb ... 461s Unpacking librust-bitflags-dev:amd64 (2.6.0-1) ... 461s Selecting previously unselected package librust-compiler-builtins+core-dev:amd64. 461s Preparing to unpack .../254-librust-compiler-builtins+core-dev_0.1.101-1_amd64.deb ... 461s Unpacking librust-compiler-builtins+core-dev:amd64 (0.1.101-1) ... 462s Selecting previously unselected package librust-compiler-builtins+rustc-dep-of-std-dev:amd64. 462s Preparing to unpack .../255-librust-compiler-builtins+rustc-dep-of-std-dev_0.1.101-1_amd64.deb ... 462s Unpacking librust-compiler-builtins+rustc-dep-of-std-dev:amd64 (0.1.101-1) ... 462s Selecting previously unselected package librust-errno-dev:amd64. 462s Preparing to unpack .../256-librust-errno-dev_0.3.8-1_amd64.deb ... 462s Unpacking librust-errno-dev:amd64 (0.3.8-1) ... 462s Selecting previously unselected package librust-linux-raw-sys-dev:amd64. 462s Preparing to unpack .../257-librust-linux-raw-sys-dev_0.4.14-1_amd64.deb ... 462s Unpacking librust-linux-raw-sys-dev:amd64 (0.4.14-1) ... 462s Selecting previously unselected package librust-rustix-dev:amd64. 462s Preparing to unpack .../258-librust-rustix-dev_0.38.32-1_amd64.deb ... 462s Unpacking librust-rustix-dev:amd64 (0.38.32-1) ... 462s Selecting previously unselected package librust-polling-dev:amd64. 462s Preparing to unpack .../259-librust-polling-dev_3.4.0-1_amd64.deb ... 462s Unpacking librust-polling-dev:amd64 (3.4.0-1) ... 462s Selecting previously unselected package librust-async-io-dev:amd64. 462s Preparing to unpack .../260-librust-async-io-dev_2.3.3-4_amd64.deb ... 462s Unpacking librust-async-io-dev:amd64 (2.3.3-4) ... 462s Selecting previously unselected package librust-mio-dev:amd64. 462s Preparing to unpack .../261-librust-mio-dev_1.0.2-2_amd64.deb ... 462s Unpacking librust-mio-dev:amd64 (1.0.2-2) ... 462s Selecting previously unselected package librust-owning-ref-dev:amd64. 462s Preparing to unpack .../262-librust-owning-ref-dev_0.4.1-1_amd64.deb ... 462s Unpacking librust-owning-ref-dev:amd64 (0.4.1-1) ... 462s Selecting previously unselected package librust-scopeguard-dev:amd64. 462s Preparing to unpack .../263-librust-scopeguard-dev_1.2.0-1_amd64.deb ... 462s Unpacking librust-scopeguard-dev:amd64 (1.2.0-1) ... 462s Selecting previously unselected package librust-lock-api-dev:amd64. 462s Preparing to unpack .../264-librust-lock-api-dev_0.4.12-1_amd64.deb ... 462s Unpacking librust-lock-api-dev:amd64 (0.4.12-1) ... 462s Selecting previously unselected package librust-parking-lot-dev:amd64. 462s Preparing to unpack .../265-librust-parking-lot-dev_0.12.3-1_amd64.deb ... 462s Unpacking librust-parking-lot-dev:amd64 (0.12.3-1) ... 462s Selecting previously unselected package librust-signal-hook-registry-dev:amd64. 462s Preparing to unpack .../266-librust-signal-hook-registry-dev_1.4.0-1_amd64.deb ... 462s Unpacking librust-signal-hook-registry-dev:amd64 (1.4.0-1) ... 462s Selecting previously unselected package librust-socket2-dev:amd64. 462s Preparing to unpack .../267-librust-socket2-dev_0.5.7-1_amd64.deb ... 462s Unpacking librust-socket2-dev:amd64 (0.5.7-1) ... 462s Selecting previously unselected package librust-tokio-macros-dev:amd64. 462s Preparing to unpack .../268-librust-tokio-macros-dev_2.4.0-2_amd64.deb ... 462s Unpacking librust-tokio-macros-dev:amd64 (2.4.0-2) ... 462s Selecting previously unselected package librust-tokio-dev:amd64. 462s Preparing to unpack .../269-librust-tokio-dev_1.39.3-3_amd64.deb ... 462s Unpacking librust-tokio-dev:amd64 (1.39.3-3) ... 462s Selecting previously unselected package librust-async-global-executor-dev:amd64. 462s Preparing to unpack .../270-librust-async-global-executor-dev_2.4.1-5_amd64.deb ... 462s Unpacking librust-async-global-executor-dev:amd64 (2.4.1-5) ... 462s Selecting previously unselected package librust-async-net-dev. 462s Preparing to unpack .../271-librust-async-net-dev_2.0.0-4_all.deb ... 462s Unpacking librust-async-net-dev (2.0.0-4) ... 462s Selecting previously unselected package librust-async-signal-dev:amd64. 462s Preparing to unpack .../272-librust-async-signal-dev_0.2.10-1_amd64.deb ... 462s Unpacking librust-async-signal-dev:amd64 (0.2.10-1) ... 462s Selecting previously unselected package librust-async-process-dev. 462s Preparing to unpack .../273-librust-async-process-dev_2.3.0-1_all.deb ... 462s Unpacking librust-async-process-dev (2.3.0-1) ... 462s Selecting previously unselected package librust-kv-log-macro-dev. 462s Preparing to unpack .../274-librust-kv-log-macro-dev_1.0.8-4_all.deb ... 462s Unpacking librust-kv-log-macro-dev (1.0.8-4) ... 462s Selecting previously unselected package librust-pin-utils-dev:amd64. 462s Preparing to unpack .../275-librust-pin-utils-dev_0.1.0-1_amd64.deb ... 462s Unpacking librust-pin-utils-dev:amd64 (0.1.0-1) ... 462s Selecting previously unselected package librust-async-std-dev. 462s Preparing to unpack .../276-librust-async-std-dev_1.13.0-1_all.deb ... 462s Unpacking librust-async-std-dev (1.13.0-1) ... 463s Selecting previously unselected package librust-base64-dev:amd64. 463s Preparing to unpack .../277-librust-base64-dev_0.21.7-1_amd64.deb ... 463s Unpacking librust-base64-dev:amd64 (0.21.7-1) ... 463s Selecting previously unselected package librust-bit-vec-dev:amd64. 463s Preparing to unpack .../278-librust-bit-vec-dev_0.6.3-1_amd64.deb ... 463s Unpacking librust-bit-vec-dev:amd64 (0.6.3-1) ... 463s Selecting previously unselected package librust-bit-set-dev:amd64. 463s Preparing to unpack .../279-librust-bit-set-dev_0.5.2-1_amd64.deb ... 463s Unpacking librust-bit-set-dev:amd64 (0.5.2-1) ... 463s Selecting previously unselected package librust-bit-set+std-dev:amd64. 463s Preparing to unpack .../280-librust-bit-set+std-dev_0.5.2-1_amd64.deb ... 463s Unpacking librust-bit-set+std-dev:amd64 (0.5.2-1) ... 463s Selecting previously unselected package librust-regex-syntax-dev:amd64. 463s Preparing to unpack .../281-librust-regex-syntax-dev_0.8.2-1_amd64.deb ... 463s Unpacking librust-regex-syntax-dev:amd64 (0.8.2-1) ... 463s Selecting previously unselected package librust-regex-automata-dev:amd64. 463s Preparing to unpack .../282-librust-regex-automata-dev_0.4.7-1_amd64.deb ... 463s Unpacking librust-regex-automata-dev:amd64 (0.4.7-1) ... 463s Selecting previously unselected package librust-bstr-dev:amd64. 463s Preparing to unpack .../283-librust-bstr-dev_1.7.0-2build1_amd64.deb ... 463s Unpacking librust-bstr-dev:amd64 (1.7.0-2build1) ... 463s Selecting previously unselected package librust-bumpalo-dev:amd64. 463s Preparing to unpack .../284-librust-bumpalo-dev_3.16.0-1_amd64.deb ... 463s Unpacking librust-bumpalo-dev:amd64 (3.16.0-1) ... 463s Selecting previously unselected package librust-cast-dev:amd64. 463s Preparing to unpack .../285-librust-cast-dev_0.3.0-1_amd64.deb ... 463s Unpacking librust-cast-dev:amd64 (0.3.0-1) ... 463s Selecting previously unselected package librust-iana-time-zone-dev:amd64. 463s Preparing to unpack .../286-librust-iana-time-zone-dev_0.1.60-1_amd64.deb ... 463s Unpacking librust-iana-time-zone-dev:amd64 (0.1.60-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-shared-dev:amd64. 463s Preparing to unpack .../287-librust-wasm-bindgen-shared-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-shared-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-backend-dev:amd64. 463s Preparing to unpack .../288-librust-wasm-bindgen-backend-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-backend-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-macro-support-dev:amd64. 463s Preparing to unpack .../289-librust-wasm-bindgen-macro-support-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-macro-support-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-macro-dev:amd64. 463s Preparing to unpack .../290-librust-wasm-bindgen-macro-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-macro-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-dev:amd64. 463s Preparing to unpack .../291-librust-wasm-bindgen-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-macro-support+spans-dev:amd64. 463s Preparing to unpack .../292-librust-wasm-bindgen-macro-support+spans-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-macro-support+spans-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen-macro+spans-dev:amd64. 463s Preparing to unpack .../293-librust-wasm-bindgen-macro+spans-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen-macro+spans-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen+spans-dev:amd64. 463s Preparing to unpack .../294-librust-wasm-bindgen+spans-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen+spans-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-wasm-bindgen+default-dev:amd64. 463s Preparing to unpack .../295-librust-wasm-bindgen+default-dev_0.2.87-1_amd64.deb ... 463s Unpacking librust-wasm-bindgen+default-dev:amd64 (0.2.87-1) ... 463s Selecting previously unselected package librust-js-sys-dev:amd64. 463s Preparing to unpack .../296-librust-js-sys-dev_0.3.64-1_amd64.deb ... 463s Unpacking librust-js-sys-dev:amd64 (0.3.64-1) ... 463s Selecting previously unselected package librust-pure-rust-locales-dev:amd64. 463s Preparing to unpack .../297-librust-pure-rust-locales-dev_0.8.1-1_amd64.deb ... 463s Unpacking librust-pure-rust-locales-dev:amd64 (0.8.1-1) ... 463s Selecting previously unselected package librust-chrono-dev:amd64. 463s Preparing to unpack .../298-librust-chrono-dev_0.4.38-2_amd64.deb ... 463s Unpacking librust-chrono-dev:amd64 (0.4.38-2) ... 463s Selecting previously unselected package librust-regex-dev:amd64. 463s Preparing to unpack .../299-librust-regex-dev_1.10.6-1_amd64.deb ... 463s Unpacking librust-regex-dev:amd64 (1.10.6-1) ... 463s Selecting previously unselected package librust-parse-zoneinfo-dev:amd64. 463s Preparing to unpack .../300-librust-parse-zoneinfo-dev_0.3.0-1_amd64.deb ... 463s Unpacking librust-parse-zoneinfo-dev:amd64 (0.3.0-1) ... 463s Selecting previously unselected package librust-siphasher-dev:amd64. 463s Preparing to unpack .../301-librust-siphasher-dev_0.3.10-1_amd64.deb ... 463s Unpacking librust-siphasher-dev:amd64 (0.3.10-1) ... 463s Selecting previously unselected package librust-phf-shared-dev:amd64. 463s Preparing to unpack .../302-librust-phf-shared-dev_0.11.2-1_amd64.deb ... 463s Unpacking librust-phf-shared-dev:amd64 (0.11.2-1) ... 463s Selecting previously unselected package librust-phf-dev:amd64. 463s Preparing to unpack .../303-librust-phf-dev_0.11.2-1_amd64.deb ... 463s Unpacking librust-phf-dev:amd64 (0.11.2-1) ... 463s Selecting previously unselected package librust-uncased-dev:amd64. 463s Preparing to unpack .../304-librust-uncased-dev_0.9.6-2_amd64.deb ... 463s Unpacking librust-uncased-dev:amd64 (0.9.6-2) ... 464s Selecting previously unselected package librust-phf-shared+uncased-dev:amd64. 464s Preparing to unpack .../305-librust-phf-shared+uncased-dev_0.11.2-1_amd64.deb ... 464s Unpacking librust-phf-shared+uncased-dev:amd64 (0.11.2-1) ... 464s Selecting previously unselected package librust-phf+uncased-dev:amd64. 464s Preparing to unpack .../306-librust-phf+uncased-dev_0.11.2-1_amd64.deb ... 464s Unpacking librust-phf+uncased-dev:amd64 (0.11.2-1) ... 464s Selecting previously unselected package librust-ciborium-io-dev:amd64. 464s Preparing to unpack .../307-librust-ciborium-io-dev_0.2.2-1_amd64.deb ... 464s Unpacking librust-ciborium-io-dev:amd64 (0.2.2-1) ... 464s Selecting previously unselected package librust-half-dev:amd64. 464s Preparing to unpack .../308-librust-half-dev_1.8.2-4_amd64.deb ... 464s Unpacking librust-half-dev:amd64 (1.8.2-4) ... 464s Selecting previously unselected package librust-ciborium-ll-dev:amd64. 464s Preparing to unpack .../309-librust-ciborium-ll-dev_0.2.2-1_amd64.deb ... 464s Unpacking librust-ciborium-ll-dev:amd64 (0.2.2-1) ... 464s Selecting previously unselected package librust-ciborium-dev:amd64. 464s Preparing to unpack .../310-librust-ciborium-dev_0.2.2-2_amd64.deb ... 464s Unpacking librust-ciborium-dev:amd64 (0.2.2-2) ... 464s Selecting previously unselected package librust-clap-lex-dev:amd64. 464s Preparing to unpack .../311-librust-clap-lex-dev_0.7.2-2_amd64.deb ... 464s Unpacking librust-clap-lex-dev:amd64 (0.7.2-2) ... 464s Selecting previously unselected package librust-strsim-dev:amd64. 464s Preparing to unpack .../312-librust-strsim-dev_0.11.1-1_amd64.deb ... 464s Unpacking librust-strsim-dev:amd64 (0.11.1-1) ... 464s Selecting previously unselected package librust-terminal-size-dev:amd64. 464s Preparing to unpack .../313-librust-terminal-size-dev_0.3.0-2_amd64.deb ... 464s Unpacking librust-terminal-size-dev:amd64 (0.3.0-2) ... 464s Selecting previously unselected package librust-unicase-dev:amd64. 464s Preparing to unpack .../314-librust-unicase-dev_2.7.0-1_amd64.deb ... 464s Unpacking librust-unicase-dev:amd64 (2.7.0-1) ... 464s Selecting previously unselected package librust-unicode-width-dev:amd64. 464s Preparing to unpack .../315-librust-unicode-width-dev_0.1.14-1_amd64.deb ... 464s Unpacking librust-unicode-width-dev:amd64 (0.1.14-1) ... 464s Selecting previously unselected package librust-clap-builder-dev:amd64. 464s Preparing to unpack .../316-librust-clap-builder-dev_4.5.15-2_amd64.deb ... 464s Unpacking librust-clap-builder-dev:amd64 (4.5.15-2) ... 464s Selecting previously unselected package librust-heck-dev:amd64. 464s Preparing to unpack .../317-librust-heck-dev_0.4.1-1_amd64.deb ... 464s Unpacking librust-heck-dev:amd64 (0.4.1-1) ... 464s Selecting previously unselected package librust-clap-derive-dev:amd64. 464s Preparing to unpack .../318-librust-clap-derive-dev_4.5.13-2_amd64.deb ... 464s Unpacking librust-clap-derive-dev:amd64 (4.5.13-2) ... 464s Selecting previously unselected package librust-clap-dev:amd64. 464s Preparing to unpack .../319-librust-clap-dev_4.5.16-1_amd64.deb ... 464s Unpacking librust-clap-dev:amd64 (4.5.16-1) ... 464s Selecting previously unselected package librust-csv-core-dev:amd64. 464s Preparing to unpack .../320-librust-csv-core-dev_0.1.11-1_amd64.deb ... 464s Unpacking librust-csv-core-dev:amd64 (0.1.11-1) ... 464s Selecting previously unselected package librust-csv-dev:amd64. 464s Preparing to unpack .../321-librust-csv-dev_1.3.0-1_amd64.deb ... 464s Unpacking librust-csv-dev:amd64 (1.3.0-1) ... 464s Selecting previously unselected package librust-futures-sink-dev:amd64. 464s Preparing to unpack .../322-librust-futures-sink-dev_0.3.31-1_amd64.deb ... 464s Unpacking librust-futures-sink-dev:amd64 (0.3.31-1) ... 464s Selecting previously unselected package librust-futures-channel-dev:amd64. 464s Preparing to unpack .../323-librust-futures-channel-dev_0.3.30-1_amd64.deb ... 464s Unpacking librust-futures-channel-dev:amd64 (0.3.30-1) ... 464s Selecting previously unselected package librust-futures-task-dev:amd64. 464s Preparing to unpack .../324-librust-futures-task-dev_0.3.30-1_amd64.deb ... 464s Unpacking librust-futures-task-dev:amd64 (0.3.30-1) ... 464s Selecting previously unselected package librust-futures-macro-dev:amd64. 464s Preparing to unpack .../325-librust-futures-macro-dev_0.3.30-1_amd64.deb ... 464s Unpacking librust-futures-macro-dev:amd64 (0.3.30-1) ... 464s Selecting previously unselected package librust-futures-util-dev:amd64. 464s Preparing to unpack .../326-librust-futures-util-dev_0.3.30-2_amd64.deb ... 464s Unpacking librust-futures-util-dev:amd64 (0.3.30-2) ... 464s Selecting previously unselected package librust-num-cpus-dev:amd64. 464s Preparing to unpack .../327-librust-num-cpus-dev_1.16.0-1_amd64.deb ... 464s Unpacking librust-num-cpus-dev:amd64 (1.16.0-1) ... 464s Selecting previously unselected package librust-futures-executor-dev:amd64. 464s Preparing to unpack .../328-librust-futures-executor-dev_0.3.30-1_amd64.deb ... 464s Unpacking librust-futures-executor-dev:amd64 (0.3.30-1) ... 464s Selecting previously unselected package librust-futures-dev:amd64. 464s Preparing to unpack .../329-librust-futures-dev_0.3.30-2_amd64.deb ... 464s Unpacking librust-futures-dev:amd64 (0.3.30-2) ... 464s Selecting previously unselected package librust-is-terminal-dev:amd64. 464s Preparing to unpack .../330-librust-is-terminal-dev_0.4.13-1_amd64.deb ... 464s Unpacking librust-is-terminal-dev:amd64 (0.4.13-1) ... 464s Selecting previously unselected package librust-itertools-dev:amd64. 464s Preparing to unpack .../331-librust-itertools-dev_0.10.5-1_amd64.deb ... 464s Unpacking librust-itertools-dev:amd64 (0.10.5-1) ... 464s Selecting previously unselected package librust-oorandom-dev:amd64. 464s Preparing to unpack .../332-librust-oorandom-dev_11.1.3-1_amd64.deb ... 464s Unpacking librust-oorandom-dev:amd64 (11.1.3-1) ... 464s Selecting previously unselected package librust-winapi-i686-pc-windows-gnu-dev:amd64. 464s Preparing to unpack .../333-librust-winapi-i686-pc-windows-gnu-dev_0.4.0-1_amd64.deb ... 464s Unpacking librust-winapi-i686-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 465s Selecting previously unselected package librust-winapi-x86-64-pc-windows-gnu-dev:amd64. 465s Preparing to unpack .../334-librust-winapi-x86-64-pc-windows-gnu-dev_0.4.0-1_amd64.deb ... 465s Unpacking librust-winapi-x86-64-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 465s Selecting previously unselected package librust-winapi-dev:amd64. 465s Preparing to unpack .../335-librust-winapi-dev_0.3.9-1_amd64.deb ... 465s Unpacking librust-winapi-dev:amd64 (0.3.9-1) ... 465s Selecting previously unselected package librust-dirs-sys-next-dev:amd64. 465s Preparing to unpack .../336-librust-dirs-sys-next-dev_0.1.1-1_amd64.deb ... 465s Unpacking librust-dirs-sys-next-dev:amd64 (0.1.1-1) ... 465s Selecting previously unselected package librust-dirs-next-dev:amd64. 465s Preparing to unpack .../337-librust-dirs-next-dev_2.0.0-1_amd64.deb ... 465s Unpacking librust-dirs-next-dev:amd64 (2.0.0-1) ... 465s Selecting previously unselected package librust-float-ord-dev:amd64. 465s Preparing to unpack .../338-librust-float-ord-dev_0.3.2-1_amd64.deb ... 465s Unpacking librust-float-ord-dev:amd64 (0.3.2-1) ... 465s Selecting previously unselected package librust-cmake-dev:amd64. 465s Preparing to unpack .../339-librust-cmake-dev_0.1.45-1_amd64.deb ... 465s Unpacking librust-cmake-dev:amd64 (0.1.45-1) ... 465s Selecting previously unselected package librust-freetype-sys-dev:amd64. 465s Preparing to unpack .../340-librust-freetype-sys-dev_0.13.1-1_amd64.deb ... 465s Unpacking librust-freetype-sys-dev:amd64 (0.13.1-1) ... 465s Selecting previously unselected package librust-freetype-dev:amd64. 465s Preparing to unpack .../341-librust-freetype-dev_0.7.0-4_amd64.deb ... 465s Unpacking librust-freetype-dev:amd64 (0.7.0-4) ... 465s Selecting previously unselected package librust-spin-dev:amd64. 465s Preparing to unpack .../342-librust-spin-dev_0.9.8-4_amd64.deb ... 465s Unpacking librust-spin-dev:amd64 (0.9.8-4) ... 465s Selecting previously unselected package librust-lazy-static-dev:amd64. 465s Preparing to unpack .../343-librust-lazy-static-dev_1.5.0-1_amd64.deb ... 465s Unpacking librust-lazy-static-dev:amd64 (1.5.0-1) ... 465s Selecting previously unselected package librust-pathfinder-simd-dev:amd64. 465s Preparing to unpack .../344-librust-pathfinder-simd-dev_0.5.2-1_amd64.deb ... 465s Unpacking librust-pathfinder-simd-dev:amd64 (0.5.2-1) ... 465s Selecting previously unselected package librust-pathfinder-geometry-dev:amd64. 465s Preparing to unpack .../345-librust-pathfinder-geometry-dev_0.5.1-1_amd64.deb ... 465s Unpacking librust-pathfinder-geometry-dev:amd64 (0.5.1-1) ... 465s Selecting previously unselected package librust-winapi-util-dev:amd64. 465s Preparing to unpack .../346-librust-winapi-util-dev_0.1.6-1_amd64.deb ... 465s Unpacking librust-winapi-util-dev:amd64 (0.1.6-1) ... 465s Selecting previously unselected package librust-same-file-dev:amd64. 465s Preparing to unpack .../347-librust-same-file-dev_1.0.6-1_amd64.deb ... 465s Unpacking librust-same-file-dev:amd64 (1.0.6-1) ... 465s Selecting previously unselected package librust-walkdir-dev:amd64. 465s Preparing to unpack .../348-librust-walkdir-dev_2.5.0-1_amd64.deb ... 465s Unpacking librust-walkdir-dev:amd64 (2.5.0-1) ... 465s Selecting previously unselected package librust-const-cstr-dev:amd64. 465s Preparing to unpack .../349-librust-const-cstr-dev_0.3.0-1_amd64.deb ... 465s Unpacking librust-const-cstr-dev:amd64 (0.3.0-1) ... 465s Selecting previously unselected package librust-libloading-dev:amd64. 465s Preparing to unpack .../350-librust-libloading-dev_0.8.5-1_amd64.deb ... 465s Unpacking librust-libloading-dev:amd64 (0.8.5-1) ... 465s Selecting previously unselected package librust-dlib-dev:amd64. 465s Preparing to unpack .../351-librust-dlib-dev_0.5.2-2_amd64.deb ... 465s Unpacking librust-dlib-dev:amd64 (0.5.2-2) ... 465s Selecting previously unselected package librust-yeslogic-fontconfig-sys-dev:amd64. 465s Preparing to unpack .../352-librust-yeslogic-fontconfig-sys-dev_3.0.1-1_amd64.deb ... 465s Unpacking librust-yeslogic-fontconfig-sys-dev:amd64 (3.0.1-1) ... 465s Selecting previously unselected package librust-font-kit-dev:amd64. 465s Preparing to unpack .../353-librust-font-kit-dev_0.11.0-2_amd64.deb ... 465s Unpacking librust-font-kit-dev:amd64 (0.11.0-2) ... 465s Selecting previously unselected package librust-color-quant-dev:amd64. 465s Preparing to unpack .../354-librust-color-quant-dev_1.1.0-1_amd64.deb ... 465s Unpacking librust-color-quant-dev:amd64 (1.1.0-1) ... 465s Selecting previously unselected package librust-weezl-dev:amd64. 465s Preparing to unpack .../355-librust-weezl-dev_0.1.5-1_amd64.deb ... 465s Unpacking librust-weezl-dev:amd64 (0.1.5-1) ... 465s Selecting previously unselected package librust-gif-dev:amd64. 465s Preparing to unpack .../356-librust-gif-dev_0.11.3-1_amd64.deb ... 465s Unpacking librust-gif-dev:amd64 (0.11.3-1) ... 465s Selecting previously unselected package librust-jpeg-decoder-dev:amd64. 465s Preparing to unpack .../357-librust-jpeg-decoder-dev_0.3.0-1_amd64.deb ... 465s Unpacking librust-jpeg-decoder-dev:amd64 (0.3.0-1) ... 465s Selecting previously unselected package librust-num-integer-dev:amd64. 465s Preparing to unpack .../358-librust-num-integer-dev_0.1.46-1_amd64.deb ... 465s Unpacking librust-num-integer-dev:amd64 (0.1.46-1) ... 465s Selecting previously unselected package librust-humantime-dev:amd64. 465s Preparing to unpack .../359-librust-humantime-dev_2.1.0-1_amd64.deb ... 465s Unpacking librust-humantime-dev:amd64 (2.1.0-1) ... 465s Selecting previously unselected package librust-termcolor-dev:amd64. 465s Preparing to unpack .../360-librust-termcolor-dev_1.4.1-1_amd64.deb ... 465s Unpacking librust-termcolor-dev:amd64 (1.4.1-1) ... 465s Selecting previously unselected package librust-env-logger-dev:amd64. 465s Preparing to unpack .../361-librust-env-logger-dev_0.10.2-2_amd64.deb ... 465s Unpacking librust-env-logger-dev:amd64 (0.10.2-2) ... 465s Selecting previously unselected package librust-quickcheck-dev:amd64. 465s Preparing to unpack .../362-librust-quickcheck-dev_1.0.3-3_amd64.deb ... 465s Unpacking librust-quickcheck-dev:amd64 (1.0.3-3) ... 465s Selecting previously unselected package librust-num-bigint-dev:amd64. 465s Preparing to unpack .../363-librust-num-bigint-dev_0.4.6-1_amd64.deb ... 465s Unpacking librust-num-bigint-dev:amd64 (0.4.6-1) ... 466s Selecting previously unselected package librust-num-rational-dev:amd64. 466s Preparing to unpack .../364-librust-num-rational-dev_0.4.2-1_amd64.deb ... 466s Unpacking librust-num-rational-dev:amd64 (0.4.2-1) ... 466s Selecting previously unselected package librust-png-dev:amd64. 466s Preparing to unpack .../365-librust-png-dev_0.17.7-3_amd64.deb ... 466s Unpacking librust-png-dev:amd64 (0.17.7-3) ... 466s Selecting previously unselected package librust-qoi-dev:amd64. 466s Preparing to unpack .../366-librust-qoi-dev_0.4.1-2_amd64.deb ... 466s Unpacking librust-qoi-dev:amd64 (0.4.1-2) ... 466s Selecting previously unselected package librust-tiff-dev:amd64. 466s Preparing to unpack .../367-librust-tiff-dev_0.9.0-1_amd64.deb ... 466s Unpacking librust-tiff-dev:amd64 (0.9.0-1) ... 466s Selecting previously unselected package libsharpyuv0:amd64. 466s Preparing to unpack .../368-libsharpyuv0_1.4.0-0.1_amd64.deb ... 466s Unpacking libsharpyuv0:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libwebp7:amd64. 466s Preparing to unpack .../369-libwebp7_1.4.0-0.1_amd64.deb ... 466s Unpacking libwebp7:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libwebpdemux2:amd64. 466s Preparing to unpack .../370-libwebpdemux2_1.4.0-0.1_amd64.deb ... 466s Unpacking libwebpdemux2:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libwebpmux3:amd64. 466s Preparing to unpack .../371-libwebpmux3_1.4.0-0.1_amd64.deb ... 466s Unpacking libwebpmux3:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libwebpdecoder3:amd64. 466s Preparing to unpack .../372-libwebpdecoder3_1.4.0-0.1_amd64.deb ... 466s Unpacking libwebpdecoder3:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libsharpyuv-dev:amd64. 466s Preparing to unpack .../373-libsharpyuv-dev_1.4.0-0.1_amd64.deb ... 466s Unpacking libsharpyuv-dev:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package libwebp-dev:amd64. 466s Preparing to unpack .../374-libwebp-dev_1.4.0-0.1_amd64.deb ... 466s Unpacking libwebp-dev:amd64 (1.4.0-0.1) ... 466s Selecting previously unselected package librust-libwebp-sys-dev:amd64. 466s Preparing to unpack .../375-librust-libwebp-sys-dev_0.9.5-1build1_amd64.deb ... 466s Unpacking librust-libwebp-sys-dev:amd64 (0.9.5-1build1) ... 466s Selecting previously unselected package librust-webp-dev:amd64. 466s Preparing to unpack .../376-librust-webp-dev_0.2.6-1_amd64.deb ... 466s Unpacking librust-webp-dev:amd64 (0.2.6-1) ... 466s Selecting previously unselected package librust-image-dev:amd64. 466s Preparing to unpack .../377-librust-image-dev_0.24.7-2_amd64.deb ... 466s Unpacking librust-image-dev:amd64 (0.24.7-2) ... 466s Selecting previously unselected package librust-plotters-backend-dev:amd64. 466s Preparing to unpack .../378-librust-plotters-backend-dev_0.3.7-1_amd64.deb ... 466s Unpacking librust-plotters-backend-dev:amd64 (0.3.7-1) ... 466s Selecting previously unselected package librust-plotters-bitmap-dev:amd64. 466s Preparing to unpack .../379-librust-plotters-bitmap-dev_0.3.3-3_amd64.deb ... 466s Unpacking librust-plotters-bitmap-dev:amd64 (0.3.3-3) ... 466s Selecting previously unselected package librust-plotters-svg-dev:amd64. 466s Preparing to unpack .../380-librust-plotters-svg-dev_0.3.5-1_amd64.deb ... 466s Unpacking librust-plotters-svg-dev:amd64 (0.3.5-1) ... 466s Selecting previously unselected package librust-web-sys-dev:amd64. 466s Preparing to unpack .../381-librust-web-sys-dev_0.3.64-2_amd64.deb ... 466s Unpacking librust-web-sys-dev:amd64 (0.3.64-2) ... 466s Selecting previously unselected package librust-plotters-dev:amd64. 466s Preparing to unpack .../382-librust-plotters-dev_0.3.5-4_amd64.deb ... 466s Unpacking librust-plotters-dev:amd64 (0.3.5-4) ... 466s Selecting previously unselected package librust-smol-dev. 466s Preparing to unpack .../383-librust-smol-dev_2.0.2-1_all.deb ... 466s Unpacking librust-smol-dev (2.0.2-1) ... 466s Selecting previously unselected package librust-tinytemplate-dev:amd64. 466s Preparing to unpack .../384-librust-tinytemplate-dev_1.2.1-1_amd64.deb ... 466s Unpacking librust-tinytemplate-dev:amd64 (1.2.1-1) ... 466s Selecting previously unselected package librust-criterion-dev. 466s Preparing to unpack .../385-librust-criterion-dev_0.5.1-6_all.deb ... 466s Unpacking librust-criterion-dev (0.5.1-6) ... 467s Selecting previously unselected package librust-phf-generator-dev:amd64. 467s Preparing to unpack .../386-librust-phf-generator-dev_0.11.2-2_amd64.deb ... 467s Unpacking librust-phf-generator-dev:amd64 (0.11.2-2) ... 467s Selecting previously unselected package librust-phf-codegen-dev:amd64. 467s Preparing to unpack .../387-librust-phf-codegen-dev_0.11.2-1_amd64.deb ... 467s Unpacking librust-phf-codegen-dev:amd64 (0.11.2-1) ... 467s Selecting previously unselected package librust-chrono-tz-build-dev:amd64. 467s Preparing to unpack .../388-librust-chrono-tz-build-dev_0.2.1-1_amd64.deb ... 467s Unpacking librust-chrono-tz-build-dev:amd64 (0.2.1-1) ... 467s Selecting previously unselected package librust-chrono-tz-dev:amd64. 467s Preparing to unpack .../389-librust-chrono-tz-dev_0.8.6-2_amd64.deb ... 467s Unpacking librust-chrono-tz-dev:amd64 (0.8.6-2) ... 467s Selecting previously unselected package librust-ctor-dev:amd64. 467s Preparing to unpack .../390-librust-ctor-dev_0.1.26-1_amd64.deb ... 467s Unpacking librust-ctor-dev:amd64 (0.1.26-1) ... 467s Selecting previously unselected package librust-powerfmt-macros-dev:amd64. 467s Preparing to unpack .../391-librust-powerfmt-macros-dev_0.1.0-1_amd64.deb ... 467s Unpacking librust-powerfmt-macros-dev:amd64 (0.1.0-1) ... 467s Selecting previously unselected package librust-powerfmt-dev:amd64. 467s Preparing to unpack .../392-librust-powerfmt-dev_0.2.0-1_amd64.deb ... 467s Unpacking librust-powerfmt-dev:amd64 (0.2.0-1) ... 467s Selecting previously unselected package librust-deranged-dev:amd64. 467s Preparing to unpack .../393-librust-deranged-dev_0.3.11-1_amd64.deb ... 467s Unpacking librust-deranged-dev:amd64 (0.3.11-1) ... 467s Selecting previously unselected package librust-eui48-dev:amd64. 467s Preparing to unpack .../394-librust-eui48-dev_1.1.0-2_amd64.deb ... 467s Unpacking librust-eui48-dev:amd64 (1.1.0-2) ... 467s Selecting previously unselected package librust-indenter-dev:amd64. 467s Preparing to unpack .../395-librust-indenter-dev_0.3.3-1_amd64.deb ... 467s Unpacking librust-indenter-dev:amd64 (0.3.3-1) ... 467s Selecting previously unselected package librust-eyre-dev:amd64. 467s Preparing to unpack .../396-librust-eyre-dev_0.6.12-1_amd64.deb ... 467s Unpacking librust-eyre-dev:amd64 (0.6.12-1) ... 467s Selecting previously unselected package librust-eyre+default-dev:amd64. 467s Preparing to unpack .../397-librust-eyre+default-dev_0.6.12-1_amd64.deb ... 467s Unpacking librust-eyre+default-dev:amd64 (0.6.12-1) ... 467s Selecting previously unselected package librust-fancy-regex-dev:amd64. 467s Preparing to unpack .../398-librust-fancy-regex-dev_0.11.0-2_amd64.deb ... 467s Unpacking librust-fancy-regex-dev:amd64 (0.11.0-2) ... 467s Selecting previously unselected package librust-fnv-dev:amd64. 467s Preparing to unpack .../399-librust-fnv-dev_1.0.7-1_amd64.deb ... 467s Unpacking librust-fnv-dev:amd64 (1.0.7-1) ... 467s Selecting previously unselected package librust-geo-types-dev:amd64. 467s Preparing to unpack .../400-librust-geo-types-dev_0.7.11-2_amd64.deb ... 467s Unpacking librust-geo-types-dev:amd64 (0.7.11-2) ... 467s Selecting previously unselected package librust-ghost-dev:amd64. 467s Preparing to unpack .../401-librust-ghost-dev_0.1.5-1_amd64.deb ... 467s Unpacking librust-ghost-dev:amd64 (0.1.5-1) ... 467s Selecting previously unselected package librust-hmac-dev:amd64. 467s Preparing to unpack .../402-librust-hmac-dev_0.12.1-1_amd64.deb ... 467s Unpacking librust-hmac-dev:amd64 (0.12.1-1) ... 467s Selecting previously unselected package librust-indoc-dev:amd64. 467s Preparing to unpack .../403-librust-indoc-dev_2.0.5-1_amd64.deb ... 467s Unpacking librust-indoc-dev:amd64 (2.0.5-1) ... 467s Selecting previously unselected package librust-inventory-dev:amd64. 467s Preparing to unpack .../404-librust-inventory-dev_0.3.2-1_amd64.deb ... 467s Unpacking librust-inventory-dev:amd64 (0.3.2-1) ... 467s Selecting previously unselected package librust-memoffset-dev:amd64. 467s Preparing to unpack .../405-librust-memoffset-dev_0.8.0-1_amd64.deb ... 467s Unpacking librust-memoffset-dev:amd64 (0.8.0-1) ... 467s Selecting previously unselected package librust-num-conv-dev:amd64. 467s Preparing to unpack .../406-librust-num-conv-dev_0.1.0-1_amd64.deb ... 467s Unpacking librust-num-conv-dev:amd64 (0.1.0-1) ... 467s Selecting previously unselected package librust-num-threads-dev:amd64. 467s Preparing to unpack .../407-librust-num-threads-dev_0.1.7-1_amd64.deb ... 467s Unpacking librust-num-threads-dev:amd64 (0.1.7-1) ... 467s Selecting previously unselected package librust-postgres-derive-dev:amd64. 467s Preparing to unpack .../408-librust-postgres-derive-dev_0.4.5-1_amd64.deb ... 467s Unpacking librust-postgres-derive-dev:amd64 (0.4.5-1) ... 467s Selecting previously unselected package librust-sha2-asm-dev:amd64. 467s Preparing to unpack .../409-librust-sha2-asm-dev_0.6.2-2_amd64.deb ... 467s Unpacking librust-sha2-asm-dev:amd64 (0.6.2-2) ... 467s Selecting previously unselected package librust-sha2-dev:amd64. 467s Preparing to unpack .../410-librust-sha2-dev_0.10.8-1_amd64.deb ... 467s Unpacking librust-sha2-dev:amd64 (0.10.8-1) ... 467s Selecting previously unselected package librust-unicode-bidi-dev:amd64. 467s Preparing to unpack .../411-librust-unicode-bidi-dev_0.3.13-1_amd64.deb ... 467s Unpacking librust-unicode-bidi-dev:amd64 (0.3.13-1) ... 467s Selecting previously unselected package librust-unicode-normalization-dev:amd64. 467s Preparing to unpack .../412-librust-unicode-normalization-dev_0.1.22-1_amd64.deb ... 467s Unpacking librust-unicode-normalization-dev:amd64 (0.1.22-1) ... 467s Selecting previously unselected package librust-stringprep-dev:amd64. 467s Preparing to unpack .../413-librust-stringprep-dev_0.1.2-1_amd64.deb ... 467s Unpacking librust-stringprep-dev:amd64 (0.1.2-1) ... 467s Selecting previously unselected package librust-postgres-protocol-dev:amd64. 467s Preparing to unpack .../414-librust-postgres-protocol-dev_0.6.6-2_amd64.deb ... 467s Unpacking librust-postgres-protocol-dev:amd64 (0.6.6-2) ... 467s Selecting previously unselected package librust-time-core-dev:amd64. 467s Preparing to unpack .../415-librust-time-core-dev_0.1.2-1_amd64.deb ... 467s Unpacking librust-time-core-dev:amd64 (0.1.2-1) ... 467s Selecting previously unselected package librust-time-macros-dev:amd64. 467s Preparing to unpack .../416-librust-time-macros-dev_0.2.16-1_amd64.deb ... 467s Unpacking librust-time-macros-dev:amd64 (0.2.16-1) ... 467s Selecting previously unselected package librust-time-dev:amd64. 467s Preparing to unpack .../417-librust-time-dev_0.3.36-2_amd64.deb ... 467s Unpacking librust-time-dev:amd64 (0.3.36-2) ... 468s Selecting previously unselected package librust-postgres-types-dev:amd64. 468s Preparing to unpack .../418-librust-postgres-types-dev_0.2.6-2_amd64.deb ... 468s Unpacking librust-postgres-types-dev:amd64 (0.2.6-2) ... 468s Selecting previously unselected package librust-rand-xorshift-dev:amd64. 468s Preparing to unpack .../419-librust-rand-xorshift-dev_0.3.0-2_amd64.deb ... 468s Unpacking librust-rand-xorshift-dev:amd64 (0.3.0-2) ... 468s Selecting previously unselected package librust-quick-error-dev:amd64. 468s Preparing to unpack .../420-librust-quick-error-dev_2.0.1-1_amd64.deb ... 468s Unpacking librust-quick-error-dev:amd64 (2.0.1-1) ... 468s Selecting previously unselected package librust-tempfile-dev:amd64. 468s Preparing to unpack .../421-librust-tempfile-dev_3.10.1-1_amd64.deb ... 468s Unpacking librust-tempfile-dev:amd64 (3.10.1-1) ... 468s Selecting previously unselected package librust-rusty-fork-dev:amd64. 468s Preparing to unpack .../422-librust-rusty-fork-dev_0.3.0-1_amd64.deb ... 468s Unpacking librust-rusty-fork-dev:amd64 (0.3.0-1) ... 468s Selecting previously unselected package librust-wait-timeout-dev:amd64. 468s Preparing to unpack .../423-librust-wait-timeout-dev_0.2.0-1_amd64.deb ... 468s Unpacking librust-wait-timeout-dev:amd64 (0.2.0-1) ... 468s Selecting previously unselected package librust-rusty-fork+wait-timeout-dev:amd64. 468s Preparing to unpack .../424-librust-rusty-fork+wait-timeout-dev_0.3.0-1_amd64.deb ... 468s Unpacking librust-rusty-fork+wait-timeout-dev:amd64 (0.3.0-1) ... 468s Selecting previously unselected package librust-unarray-dev:amd64. 468s Preparing to unpack .../425-librust-unarray-dev_0.1.4-1_amd64.deb ... 468s Unpacking librust-unarray-dev:amd64 (0.1.4-1) ... 468s Selecting previously unselected package librust-proptest-dev:amd64. 468s Preparing to unpack .../426-librust-proptest-dev_1.5.0-2_amd64.deb ... 468s Unpacking librust-proptest-dev:amd64 (1.5.0-2) ... 468s Selecting previously unselected package llvm-19-runtime. 468s Preparing to unpack .../427-llvm-19-runtime_1%3a19.1.2-1ubuntu1_amd64.deb ... 468s Unpacking llvm-19-runtime (1:19.1.2-1ubuntu1) ... 468s Selecting previously unselected package llvm-runtime:amd64. 468s Preparing to unpack .../428-llvm-runtime_1%3a19.0-60~exp1_amd64.deb ... 468s Unpacking llvm-runtime:amd64 (1:19.0-60~exp1) ... 468s Selecting previously unselected package llvm-19-linker-tools. 468s Preparing to unpack .../429-llvm-19-linker-tools_1%3a19.1.2-1ubuntu1_amd64.deb ... 468s Unpacking llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 468s Selecting previously unselected package libpfm4:amd64. 468s Preparing to unpack .../430-libpfm4_4.13.0+git83-g91970fe-1_amd64.deb ... 468s Unpacking libpfm4:amd64 (4.13.0+git83-g91970fe-1) ... 468s Selecting previously unselected package llvm-19. 468s Preparing to unpack .../431-llvm-19_1%3a19.1.2-1ubuntu1_amd64.deb ... 468s Unpacking llvm-19 (1:19.1.2-1ubuntu1) ... 468s Selecting previously unselected package llvm. 468s Preparing to unpack .../432-llvm_1%3a19.0-60~exp1_amd64.deb ... 468s Unpacking llvm (1:19.0-60~exp1) ... 468s Selecting previously unselected package binutils-mingw-w64-x86-64. 468s Preparing to unpack .../433-binutils-mingw-w64-x86-64_2.43.1-4ubuntu1+12_amd64.deb ... 468s Unpacking binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 469s Selecting previously unselected package binutils-mingw-w64-i686. 469s Preparing to unpack .../434-binutils-mingw-w64-i686_2.43.1-4ubuntu1+12_amd64.deb ... 469s Unpacking binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 469s Selecting previously unselected package librust-python3-dll-a-dev:amd64. 469s Preparing to unpack .../435-librust-python3-dll-a-dev_0.2.10-1_amd64.deb ... 469s Unpacking librust-python3-dll-a-dev:amd64 (0.2.10-1) ... 469s Selecting previously unselected package librust-target-lexicon-dev:amd64. 469s Preparing to unpack .../436-librust-target-lexicon-dev_0.12.14-1_amd64.deb ... 469s Unpacking librust-target-lexicon-dev:amd64 (0.12.14-1) ... 469s Selecting previously unselected package librust-pyo3-build-config-dev:amd64. 469s Preparing to unpack .../437-librust-pyo3-build-config-dev_0.22.6-1_amd64.deb ... 469s Unpacking librust-pyo3-build-config-dev:amd64 (0.22.6-1) ... 469s Selecting previously unselected package python3.12-dev. 469s Preparing to unpack .../438-python3.12-dev_3.12.7-3_amd64.deb ... 469s Unpacking python3.12-dev (3.12.7-3) ... 469s Selecting previously unselected package librust-pyo3-ffi-dev:amd64. 469s Preparing to unpack .../439-librust-pyo3-ffi-dev_0.22.6-1build1_amd64.deb ... 469s Unpacking librust-pyo3-ffi-dev:amd64 (0.22.6-1build1) ... 469s Selecting previously unselected package librust-pyo3-macros-backend-dev:amd64. 469s Preparing to unpack .../440-librust-pyo3-macros-backend-dev_0.22.6-1_amd64.deb ... 469s Unpacking librust-pyo3-macros-backend-dev:amd64 (0.22.6-1) ... 469s Selecting previously unselected package librust-pyo3-macros-dev:amd64. 469s Preparing to unpack .../441-librust-pyo3-macros-dev_0.22.6-1_amd64.deb ... 469s Unpacking librust-pyo3-macros-dev:amd64 (0.22.6-1) ... 469s Selecting previously unselected package librust-rust-decimal-dev:amd64. 469s Preparing to unpack .../442-librust-rust-decimal-dev_1.36.0-1_amd64.deb ... 469s Unpacking librust-rust-decimal-dev:amd64 (1.36.0-1) ... 469s Selecting previously unselected package librust-unindent-dev:amd64. 469s Preparing to unpack .../443-librust-unindent-dev_0.2.3-1_amd64.deb ... 469s Unpacking librust-unindent-dev:amd64 (0.2.3-1) ... 469s Selecting previously unselected package librust-pyo3-dev:amd64. 469s Preparing to unpack .../444-librust-pyo3-dev_0.22.6-1_amd64.deb ... 469s Unpacking librust-pyo3-dev:amd64 (0.22.6-1) ... 469s Selecting previously unselected package librust-rustc-hash-dev:amd64. 469s Preparing to unpack .../445-librust-rustc-hash-dev_1.1.0-1_amd64.deb ... 469s Unpacking librust-rustc-hash-dev:amd64 (1.1.0-1) ... 469s Selecting previously unselected package pybuild-plugin-autopkgtest. 469s Preparing to unpack .../446-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 469s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 469s Selecting previously unselected package python3-packaging. 469s Preparing to unpack .../447-python3-packaging_24.2-1_all.deb ... 469s Unpacking python3-packaging (24.2-1) ... 469s Selecting previously unselected package python3-pyproject-hooks. 469s Preparing to unpack .../448-python3-pyproject-hooks_1.2.0-1_all.deb ... 469s Unpacking python3-pyproject-hooks (1.2.0-1) ... 469s Selecting previously unselected package python3-toml. 469s Preparing to unpack .../449-python3-toml_0.10.2-1_all.deb ... 469s Unpacking python3-toml (0.10.2-1) ... 469s Selecting previously unselected package python3-wheel. 469s Preparing to unpack .../450-python3-wheel_0.45.1-1_all.deb ... 469s Unpacking python3-wheel (0.45.1-1) ... 469s Selecting previously unselected package python3-build. 469s Preparing to unpack .../451-python3-build_1.2.2-1_all.deb ... 469s Unpacking python3-build (1.2.2-1) ... 469s Selecting previously unselected package python3-installer. 469s Preparing to unpack .../452-python3-installer_0.7.0+dfsg1-3_all.deb ... 469s Unpacking python3-installer (0.7.0+dfsg1-3) ... 469s Selecting previously unselected package pybuild-plugin-pyproject. 469s Preparing to unpack .../453-pybuild-plugin-pyproject_6.20241024_all.deb ... 469s Unpacking pybuild-plugin-pyproject (6.20241024) ... 469s Selecting previously unselected package python3-all. 469s Preparing to unpack .../454-python3-all_3.12.6-0ubuntu1_amd64.deb ... 469s Unpacking python3-all (3.12.6-0ubuntu1) ... 469s Selecting previously unselected package python3-dateutil. 469s Preparing to unpack .../455-python3-dateutil_2.9.0-3_all.deb ... 469s Unpacking python3-dateutil (2.9.0-3) ... 469s Selecting previously unselected package python3-sortedcontainers. 469s Preparing to unpack .../456-python3-sortedcontainers_2.4.0-2_all.deb ... 469s Unpacking python3-sortedcontainers (2.4.0-2) ... 469s Selecting previously unselected package python3-hypothesis. 469s Preparing to unpack .../457-python3-hypothesis_6.119.3-1_all.deb ... 469s Unpacking python3-hypothesis (6.119.3-1) ... 469s Selecting previously unselected package python3-iniconfig. 469s Preparing to unpack .../458-python3-iniconfig_1.1.1-2_all.deb ... 469s Unpacking python3-iniconfig (1.1.1-2) ... 469s Selecting previously unselected package python3-pluggy. 469s Preparing to unpack .../459-python3-pluggy_1.5.0-1_all.deb ... 469s Unpacking python3-pluggy (1.5.0-1) ... 469s Selecting previously unselected package python3-pytest. 469s Preparing to unpack .../460-python3-pytest_8.3.3-1_all.deb ... 469s Unpacking python3-pytest (8.3.3-1) ... 470s Selecting previously unselected package python3-regex. 470s Preparing to unpack .../461-python3-regex_0.1.20240724-1build1_amd64.deb ... 470s Unpacking python3-regex (0.1.20240724-1build1) ... 470s Selecting previously unselected package python3-semantic-version. 470s Preparing to unpack .../462-python3-semantic-version_2.10.0-2_all.deb ... 470s Unpacking python3-semantic-version (2.10.0-2) ... 470s Selecting previously unselected package rustc. 470s Preparing to unpack .../463-rustc_1.80.1ubuntu2_amd64.deb ... 470s Unpacking rustc (1.80.1ubuntu2) ... 470s Selecting previously unselected package cargo. 470s Preparing to unpack .../464-cargo_1.80.1ubuntu2_amd64.deb ... 470s Unpacking cargo (1.80.1ubuntu2) ... 470s Selecting previously unselected package python3-setuptools-rust. 470s Preparing to unpack .../465-python3-setuptools-rust_1.9.0+dfsg-2_all.deb ... 470s Unpacking python3-setuptools-rust (1.9.0+dfsg-2) ... 470s Selecting previously unselected package python3-tiktoken. 470s Preparing to unpack .../466-python3-tiktoken_0.8.0-1build1_amd64.deb ... 470s Unpacking python3-tiktoken (0.8.0-1build1) ... 470s Selecting previously unselected package autopkgtest-satdep. 470s Preparing to unpack .../467-1-autopkgtest-satdep.deb ... 470s Unpacking autopkgtest-satdep (0) ... 470s Setting up dh-python (6.20241024) ... 470s Setting up librust-ciborium-io-dev:amd64 (0.2.2-1) ... 470s Setting up librust-crossbeam-utils-dev:amd64 (0.8.19-1) ... 470s Setting up librust-parking-dev:amd64 (2.2.0-1) ... 470s Setting up librust-ppv-lite86-dev:amd64 (0.2.16-1) ... 470s Setting up python3-iniconfig (1.1.1-2) ... 470s Setting up libsharpyuv0:amd64 (1.4.0-0.1) ... 470s Setting up librust-pin-utils-dev:amd64 (0.1.0-1) ... 470s Setting up librust-fnv-dev:amd64 (1.0.7-1) ... 470s Setting up librust-unindent-dev:amd64 (0.2.3-1) ... 470s Setting up librust-quick-error-dev:amd64 (2.0.1-1) ... 470s Setting up librust-traitobject-dev:amd64 (0.1.0-1) ... 470s Setting up librust-either-dev:amd64 (1.13.0-1) ... 470s Setting up binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 470s Setting up librust-adler-dev:amd64 (1.0.2-2) ... 470s Setting up librust-version-check-dev:amd64 (0.9.5-1) ... 470s Setting up librust-base64-dev:amd64 (0.21.7-1) ... 470s Setting up librust-indoc-dev:amd64 (2.0.5-1) ... 470s Setting up librust-anstyle-dev:amd64 (1.0.8-1) ... 470s Setting up librust-winapi-i686-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 470s Setting up librust-futures-task-dev:amd64 (0.3.30-1) ... 470s Setting up librust-rustc-hash-dev:amd64 (1.1.0-1) ... 470s Setting up librust-wasm-bindgen-shared-dev:amd64 (0.2.87-1) ... 470s Setting up libarchive-zip-perl (1.68-1) ... 470s Setting up librust-colorchoice-dev:amd64 (1.0.0-1) ... 470s Setting up librust-fastrand-dev:amd64 (2.1.1-1) ... 470s Setting up libdebhelper-perl (13.20ubuntu1) ... 470s Setting up librust-unsafe-any-dev:amd64 (0.4.2-2) ... 470s Setting up librust-tinyvec-macros-dev:amd64 (0.1.0-1) ... 470s Setting up librust-libm-dev:amd64 (0.2.8-1) ... 470s Setting up librust-strsim-dev:amd64 (0.11.1-1) ... 470s Setting up libwebpdecoder3:amd64 (1.4.0-0.1) ... 470s Setting up m4 (1.4.19-4build1) ... 470s Setting up librust-rustc-demangle-dev:amd64 (0.1.21-1) ... 470s Setting up python3-all (3.12.6-0ubuntu1) ... 470s Setting up librust-const-cstr-dev:amd64 (0.3.0-1) ... 470s Setting up librust-fallible-iterator-dev:amd64 (0.3.0-2) ... 470s Setting up librust-ryu-dev:amd64 (1.0.15-1) ... 470s Setting up python3-sortedcontainers (2.4.0-2) ... 470s Setting up librust-humantime-dev:amd64 (2.1.0-1) ... 470s Setting up librust-anstyle-query-dev:amd64 (1.0.0-1) ... 470s Setting up librust-cast-dev:amd64 (0.3.0-1) ... 470s Setting up libgomp1:amd64 (14.2.0-8ubuntu1) ... 470s Setting up librust-subtle-dev:amd64 (2.6.1-1) ... 470s Setting up librust-simdutf8-dev:amd64 (0.1.4-4) ... 470s Setting up librust-atomic-waker-dev:amd64 (1.1.2-1) ... 470s Setting up librust-miniz-oxide-dev:amd64 (0.7.1-1) ... 470s Setting up librust-pin-project-lite-dev:amd64 (0.2.13-1) ... 470s Setting up python3-wheel (0.45.1-1) ... 470s Setting up librust-unicode-segmentation-dev:amd64 (1.11.0-1) ... 470s Setting up librust-typemap-dev:amd64 (0.3.3-2) ... 470s Setting up librust-compiler-builtins-dev:amd64 (0.1.101-1) ... 470s Setting up librust-weezl-dev:amd64 (0.1.5-1) ... 470s Setting up librust-utf8parse-dev:amd64 (0.2.1-1) ... 470s Setting up librust-crossbeam-epoch-dev:amd64 (0.9.18-1) ... 470s Setting up autotools-dev (20220109.1) ... 470s Setting up librust-tap-dev:amd64 (1.0.1-1) ... 470s Setting up python3-packaging (24.2-1) ... 470s Setting up librust-array-init-dev:amd64 (2.0.1-1) ... 470s Setting up libpkgconf3:amd64 (1.8.1-4) ... 470s Setting up libpfm4:amd64 (4.13.0+git83-g91970fe-1) ... 470s Setting up librust-oorandom-dev:amd64 (11.1.3-1) ... 470s Setting up libexpat1-dev:amd64 (2.6.4-1) ... 470s Setting up python3-pyproject-hooks (1.2.0-1) ... 471s Setting up librust-rustc-std-workspace-core-dev:amd64 (1.0.0-1) ... 471s Setting up librust-funty-dev:amd64 (2.0.0-1) ... 471s Setting up librust-futures-io-dev:amd64 (0.3.31-1) ... 471s Setting up librust-typenum-dev:amd64 (1.17.0-2) ... 471s Setting up uuid-dev:amd64 (2.40.2-1ubuntu1) ... 471s Setting up librust-core-maths-dev:amd64 (0.1.0-2) ... 471s Setting up librust-stable-deref-trait-dev:amd64 (1.2.0-1) ... 471s Setting up librust-critical-section-dev:amd64 (1.1.3-1) ... 471s Setting up libquadmath0:amd64 (14.2.0-8ubuntu1) ... 471s Setting up librust-scopeguard-dev:amd64 (1.2.0-1) ... 471s Setting up librust-iana-time-zone-dev:amd64 (0.1.60-1) ... 471s Setting up fonts-dejavu-mono (2.37-8) ... 471s Setting up libmpc3:amd64 (1.3.1-1build2) ... 471s Setting up librust-rand-core-dev:amd64 (0.6.4-2) ... 471s Setting up python3-semantic-version (2.10.0-2) ... 471s Setting up autopoint (0.22.5-2) ... 471s Setting up libjsoncpp25:amd64 (1.9.5-6build1) ... 471s Setting up fonts-dejavu-core (2.37-8) ... 471s Setting up librust-seahash-dev:amd64 (4.1.0-1) ... 471s Setting up pkgconf-bin (1.8.1-4) ... 471s Setting up librust-ab-glyph-rasterizer-dev:amd64 (0.1.7-1) ... 471s Setting up binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 471s Setting up librust-time-core-dev:amd64 (0.1.2-1) ... 471s Setting up python3-regex (0.1.20240724-1build1) ... 471s Setting up librust-crunchy-dev:amd64 (0.2.2-1) ... 471s Setting up python3-toml (0.10.2-1) ... 471s Setting up librust-unicase-dev:amd64 (2.7.0-1) ... 471s Setting up librust-unicode-width-dev:amd64 (0.1.14-1) ... 471s Setting up python3-installer (0.7.0+dfsg1-3) ... 471s Setting up autoconf (2.72-3) ... 471s Setting up python3-pluggy (1.5.0-1) ... 471s Setting up libwebp7:amd64 (1.4.0-0.1) ... 471s Setting up libubsan1:amd64 (14.2.0-8ubuntu1) ... 471s Setting up zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 471s Setting up librust-unicode-ident-dev:amd64 (1.0.13-1) ... 471s Setting up librust-equivalent-dev:amd64 (1.0.1-1) ... 471s Setting up dwz (0.15-1build6) ... 471s Setting up librust-bitflags-1-dev:amd64 (1.3.2-5) ... 471s Setting up librust-uncased-dev:amd64 (0.9.6-2) ... 471s Setting up librust-slog-dev:amd64 (2.7.0-1) ... 471s Setting up python3-tiktoken (0.8.0-1build1) ... 471s Setting up librust-pure-rust-locales-dev:amd64 (0.8.1-1) ... 471s Setting up libhwasan0:amd64 (14.2.0-8ubuntu1) ... 471s Setting up librhash0:amd64 (1.4.3-3build1) ... 471s Setting up libasan8:amd64 (14.2.0-8ubuntu1) ... 471s Setting up librust-ttf-parser-dev:amd64 (0.24.1-1) ... 471s Setting up librust-cfg-if-dev:amd64 (1.0.0-1) ... 471s Setting up debugedit (1:5.1-1) ... 471s Setting up librust-color-quant-dev:amd64 (1.1.0-1) ... 471s Setting up python3-dateutil (2.9.0-3) ... 471s Setting up librust-blobby-dev:amd64 (0.3.1-1) ... 471s Setting up cmake-data (3.30.3-1) ... 471s Setting up llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 471s Setting up librust-byteorder-dev:amd64 (1.5.0-1) ... 471s Setting up libtsan2:amd64 (14.2.0-8ubuntu1) ... 471s Setting up librust-static-assertions-dev:amd64 (1.1.0-1) ... 471s Setting up librust-compiler-builtins+core-dev:amd64 (0.1.101-1) ... 471s Setting up librust-float-ord-dev:amd64 (0.3.2-1) ... 471s Setting up librust-autocfg-dev:amd64 (1.1.0-1) ... 471s Setting up libisl23:amd64 (0.27-1) ... 471s Setting up librust-time-macros-dev:amd64 (0.2.16-1) ... 471s Setting up llvm-19-runtime (1:19.1.2-1ubuntu1) ... 471s Setting up librust-futures-sink-dev:amd64 (0.3.31-1) ... 471s Setting up python3-build (1.2.2-1) ... 472s Setting up libsharpyuv-dev:amd64 (1.4.0-0.1) ... 472s Setting up librust-cfg-if-0.1-dev:amd64 (0.1.10-2) ... 472s Setting up librust-tinyvec-dev:amd64 (1.6.0-2) ... 472s Setting up libwebpmux3:amd64 (1.4.0-0.1) ... 472s Setting up librust-plotters-backend-dev:amd64 (0.3.7-1) ... 472s Setting up librust-shlex-dev:amd64 (1.3.0-1) ... 472s Setting up librust-indenter-dev:amd64 (0.3.3-1) ... 472s Setting up librust-cpp-demangle-dev:amd64 (0.4.0-1) ... 472s Setting up librust-winapi-x86-64-pc-windows-gnu-dev:amd64 (0.4.0-1) ... 472s Setting up libcc1-0:amd64 (14.2.0-8ubuntu1) ... 472s Setting up libbrotli-dev:amd64 (1.1.0-2build3) ... 472s Setting up liblsan0:amd64 (14.2.0-8ubuntu1) ... 472s Setting up libitm1:amd64 (14.2.0-8ubuntu1) ... 472s Setting up librust-clap-lex-dev:amd64 (0.7.2-2) ... 472s Setting up libhttp-parser2.9:amd64 (2.9.4-6build1) ... 472s Setting up librust-unarray-dev:amd64 (0.1.4-1) ... 472s Setting up libstd-rust-1.80:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 472s Setting up librust-itertools-dev:amd64 (0.10.5-1) ... 472s Setting up librust-heck-dev:amd64 (0.4.1-1) ... 472s Setting up libbz2-dev:amd64 (1.0.8-6) ... 472s Setting up librust-num-conv-dev:amd64 (0.1.0-1) ... 472s Setting up automake (1:1.16.5-1.3ubuntu1) ... 472s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 472s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 472s Setting up librust-owned-ttf-parser-dev:amd64 (0.24.0-1) ... 472s Setting up librust-crossbeam-epoch+std-dev:amd64 (0.9.18-1) ... 472s Setting up librust-libc-dev:amd64 (0.2.161-1) ... 472s Setting up librust-is-terminal-dev:amd64 (0.4.13-1) ... 472s Setting up gettext (0.22.5-2) ... 472s Setting up librust-gif-dev:amd64 (0.11.3-1) ... 472s Setting up librust-crossbeam-deque-dev:amd64 (0.8.5-1) ... 472s Setting up librust-tiny-keccak-dev:amd64 (2.0.2-1) ... 472s Setting up librust-linux-raw-sys-dev:amd64 (0.4.14-1) ... 472s Setting up pybuild-plugin-pyproject (6.20241024) ... 472s Setting up fontconfig-config (2.15.0-1.1ubuntu2) ... 472s Setting up librust-getrandom-dev:amd64 (0.2.12-1) ... 472s Setting up python3-pytest (8.3.3-1) ... 472s Setting up librust-libloading-dev:amd64 (0.8.5-1) ... 472s Setting up librust-socket2-dev:amd64 (0.5.7-1) ... 472s Setting up librust-memmap2-dev:amd64 (0.9.3-1) ... 472s Setting up libwebpdemux2:amd64 (1.4.0-0.1) ... 472s Setting up python3-hypothesis (6.119.3-1) ... 472s Setting up librust-ab-glyph-rasterizer+libm-dev:amd64 (0.1.7-1) ... 472s Setting up libpng-dev:amd64 (1.6.44-2) ... 472s Setting up librust-tinyvec+tinyvec-macros-dev:amd64 (1.6.0-2) ... 472s Setting up librust-owning-ref-dev:amd64 (0.4.1-1) ... 472s Setting up librust-num-cpus-dev:amd64 (1.16.0-1) ... 472s Setting up librust-memoffset-dev:amd64 (0.8.0-1) ... 472s Setting up librust-cpufeatures-dev:amd64 (0.2.11-1) ... 472s Setting up libpython3.12-dev:amd64 (3.12.7-3) ... 472s Setting up librust-proc-macro2-dev:amd64 (1.0.86-1) ... 472s Setting up librust-compiler-builtins+rustc-dep-of-std-dev:amd64 (0.1.101-1) ... 472s Setting up librust-rayon-core-dev:amd64 (1.12.1-1) ... 472s Setting up librust-winapi-dev:amd64 (0.3.9-1) ... 472s Setting up pkgconf:amd64 (1.8.1-4) ... 472s Setting up librust-ab-glyph-dev:amd64 (0.2.28-1) ... 472s Setting up libstd-rust-1.80-dev:amd64 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 472s Setting up libfreetype-dev:amd64 (2.13.3+dfsg-1) ... 472s Setting up intltool-debian (0.35.0+20060710.6) ... 472s Setting up librust-rand-core+getrandom-dev:amd64 (0.6.4-2) ... 472s Setting up librust-rand-xorshift-dev:amd64 (0.3.0-2) ... 472s Setting up librust-signal-hook-registry-dev:amd64 (1.4.0-1) ... 472s Setting up libwebp-dev:amd64 (1.4.0-0.1) ... 472s Setting up librust-errno-dev:amd64 (0.3.8-1) ... 472s Setting up librust-anes-dev:amd64 (0.1.6-1) ... 472s Setting up llvm-runtime:amd64 (1:19.0-60~exp1) ... 472s Setting up python3.12-dev (3.12.7-3) ... 472s Setting up librust-jobserver-dev:amd64 (0.1.32-1) ... 472s Setting up pkg-config:amd64 (1.8.1-4) ... 472s Setting up cpp-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 472s Setting up cpp-14 (14.2.0-8ubuntu1) ... 472s Setting up dh-strip-nondeterminism (1.14.0-1) ... 472s Setting up librust-crc32fast-dev:amd64 (1.4.2-1) ... 472s Setting up librust-num-traits-dev:amd64 (0.2.19-2) ... 472s Setting up librust-winapi-util-dev:amd64 (0.1.6-1) ... 472s Setting up librust-wait-timeout-dev:amd64 (0.2.0-1) ... 472s Setting up cmake (3.30.3-1) ... 472s Setting up libgit2-1.7:amd64 (1.7.2+ds-1ubuntu3) ... 472s Setting up llvm-19 (1:19.1.2-1ubuntu1) ... 472s Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ... 472s Setting up libgcc-14-dev:amd64 (14.2.0-8ubuntu1) ... 472s Setting up librust-same-file-dev:amd64 (1.0.6-1) ... 472s Setting up librust-rayon-dev:amd64 (1.10.0-1) ... 472s Setting up librust-termcolor-dev:amd64 (1.4.1-1) ... 472s Setting up librust-pkg-config-dev:amd64 (0.3.27-1) ... 472s Setting up libstdc++-14-dev:amd64 (14.2.0-8ubuntu1) ... 472s Setting up librust-jpeg-decoder-dev:amd64 (0.3.0-1) ... 472s Setting up librust-dirs-sys-next-dev:amd64 (0.1.1-1) ... 472s Setting up cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 472s Setting up librust-num-integer-dev:amd64 (0.1.46-1) ... 472s Setting up librust-dirs-next-dev:amd64 (2.0.0-1) ... 472s Setting up librust-num-threads-dev:amd64 (0.1.7-1) ... 472s Setting up libpython3-dev:amd64 (3.12.6-0ubuntu1) ... 472s Setting up librust-dlib-dev:amd64 (0.5.2-2) ... 472s Setting up libfontconfig-dev:amd64 (2.15.0-1.1ubuntu2) ... 472s Setting up librust-libwebp-sys-dev:amd64 (0.9.5-1build1) ... 472s Setting up po-debconf (1.0.21+nmu1) ... 472s Setting up librust-quote-dev:amd64 (1.0.37-1) ... 472s Setting up librust-libz-sys-dev:amd64 (1.1.20-1) ... 472s Setting up librust-syn-dev:amd64 (2.0.85-1) ... 472s Setting up librust-rand-core+std-dev:amd64 (0.6.4-2) ... 472s Setting up librust-powerfmt-macros-dev:amd64 (0.1.0-1) ... 472s Setting up librust-powerfmt-dev:amd64 (0.2.0-1) ... 472s Setting up librust-sval-derive-dev:amd64 (2.6.1-2) ... 472s Setting up libpython3-all-dev:amd64 (3.12.6-0ubuntu1) ... 472s Setting up librust-cc-dev:amd64 (1.1.14-1) ... 472s Setting up librust-zeroize-derive-dev:amd64 (1.4.2-1) ... 472s Setting up llvm (1:19.0-60~exp1) ... 472s Setting up librust-postgres-derive-dev:amd64 (0.4.5-1) ... 472s Setting up librust-syn-1-dev:amd64 (1.0.109-2) ... 472s Setting up librust-clap-derive-dev:amd64 (4.5.13-2) ... 472s Setting up librust-bytecheck-derive-dev:amd64 (0.6.12-1) ... 472s Setting up librust-no-panic-dev:amd64 (0.1.13-1) ... 472s Setting up cpp (4:14.1.0-2ubuntu1) ... 472s Setting up librust-serde-derive-dev:amd64 (1.0.210-1) ... 472s Setting up librust-walkdir-dev:amd64 (2.5.0-1) ... 472s Setting up librust-zerocopy-derive-dev:amd64 (0.7.32-2) ... 472s Setting up librust-sha1-asm-dev:amd64 (0.5.1-2) ... 472s Setting up gcc-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 472s Setting up librust-valuable-derive-dev:amd64 (0.1.0-1) ... 472s Setting up librust-ghost-dev:amd64 (0.1.5-1) ... 472s Setting up librust-serde-dev:amd64 (1.0.210-2) ... 472s Setting up librust-bytemuck-derive-dev:amd64 (1.5.0-2) ... 472s Setting up librust-derive-arbitrary-dev:amd64 (1.3.2-1) ... 472s Setting up librust-allocator-api2-dev:amd64 (0.2.16-1) ... 472s Setting up librust-cmake-dev:amd64 (0.1.45-1) ... 472s Setting up librust-async-attributes-dev (1.1.2-6) ... 472s Setting up librust-rand-chacha-dev:amd64 (0.3.1-2) ... 472s Setting up librust-futures-macro-dev:amd64 (0.3.30-1) ... 472s Setting up librust-ctor-dev:amd64 (0.1.26-1) ... 472s Setting up librust-unicode-bidi-dev:amd64 (0.3.13-1) ... 472s Setting up librust-tracing-attributes-dev:amd64 (0.1.27-1) ... 472s Setting up librust-ptr-meta-derive-dev:amd64 (0.1.4-1) ... 472s Setting up gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 472s Setting up librust-serde-fmt-dev (1.0.3-3) ... 472s Setting up librust-sha2-asm-dev:amd64 (0.6.2-2) ... 472s Setting up librust-portable-atomic-dev:amd64 (1.9.0-4) ... 472s Setting up librust-tokio-macros-dev:amd64 (2.4.0-2) ... 472s Setting up librust-flate2-dev:amd64 (1.0.34-1) ... 472s Setting up librust-freetype-sys-dev:amd64 (0.13.1-1) ... 472s Setting up librust-lock-api-dev:amd64 (0.4.12-1) ... 472s Setting up librust-ptr-meta-dev:amd64 (0.1.4-1) ... 472s Setting up librust-inventory-dev:amd64 (0.3.2-1) ... 472s Setting up librust-sval-dev:amd64 (2.6.1-2) ... 472s Setting up librust-itoa-dev:amd64 (1.0.9-1) ... 472s Setting up gcc-14 (14.2.0-8ubuntu1) ... 472s Setting up librust-bytes-dev:amd64 (1.8.0-1) ... 472s Setting up librust-bumpalo-dev:amd64 (3.16.0-1) ... 472s Setting up librust-python3-dll-a-dev:amd64 (0.2.10-1) ... 472s Setting up librust-siphasher-dev:amd64 (0.3.10-1) ... 472s Setting up librust-rand-core+serde-dev:amd64 (0.6.4-2) ... 472s Setting up librust-sval-ref-dev:amd64 (2.6.1-1) ... 472s Setting up librust-rkyv-derive-dev:amd64 (0.7.44-1) ... 472s Setting up librust-zerocopy-dev:amd64 (0.7.32-1) ... 472s Setting up librust-md5-asm-dev:amd64 (0.5.0-2) ... 472s Setting up librust-semver-dev:amd64 (1.0.23-1) ... 472s Setting up librust-freetype-dev:amd64 (0.7.0-4) ... 472s Setting up librust-bytemuck-dev:amd64 (1.14.0-1) ... 472s Setting up librust-bit-vec-dev:amd64 (0.6.3-1) ... 472s Setting up librust-zeroize-dev:amd64 (1.8.1-1) ... 472s Setting up g++-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 472s Setting up librust-slab-dev:amd64 (0.4.9-1) ... 472s Setting up librust-arbitrary-dev:amd64 (1.3.2-1) ... 472s Setting up librust-valuable-dev:amd64 (0.1.0-4) ... 472s Setting up librust-target-lexicon-dev:amd64 (0.12.14-1) ... 472s Setting up librust-serde-test-dev:amd64 (1.0.171-1) ... 472s Setting up librust-bit-set-dev:amd64 (0.5.2-1) ... 472s Setting up g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 472s Setting up librust-concurrent-queue-dev:amd64 (2.5.0-4) ... 472s Setting up g++-14 (14.2.0-8ubuntu1) ... 472s Setting up librust-erased-serde-dev:amd64 (0.3.31-1) ... 472s Setting up librust-radium-dev:amd64 (1.1.0-1) ... 472s Setting up librust-bit-set+std-dev:amd64 (0.5.2-1) ... 472s Setting up librust-phf-shared-dev:amd64 (0.11.2-1) ... 472s Setting up librust-tiff-dev:amd64 (0.9.0-1) ... 472s Setting up librust-smol-str-dev:amd64 (0.2.0-1) ... 472s Setting up librust-atomic-dev:amd64 (0.6.0-1) ... 472s Setting up librust-generic-array-dev:amd64 (0.14.7-1) ... 472s Setting up librust-half-dev:amd64 (1.8.2-4) ... 472s Setting up librust-phf-dev:amd64 (0.11.2-1) ... 472s Setting up librust-spin-dev:amd64 (0.9.8-4) ... 472s Setting up librust-sval-dynamic-dev:amd64 (2.6.1-1) ... 472s Setting up librust-qoi-dev:amd64 (0.4.1-2) ... 472s Setting up librust-async-task-dev (4.7.1-3) ... 472s Setting up librust-crypto-common-dev:amd64 (0.1.6-1) ... 472s Setting up librust-ciborium-ll-dev:amd64 (0.2.2-1) ... 472s Setting up librust-futures-core-dev:amd64 (0.3.30-1) ... 472s Setting up librust-lazy-static-dev:amd64 (1.5.0-1) ... 472s Setting up libtool (2.4.7-8) ... 472s Setting up librust-sval-buffer-dev:amd64 (2.6.1-1) ... 472s Setting up librust-arrayvec-dev:amd64 (0.7.4-2) ... 472s Setting up librust-png-dev:amd64 (0.17.7-3) ... 472s Setting up librust-rustc-version-dev:amd64 (0.4.0-1) ... 472s Setting up librust-event-listener-dev (5.3.1-8) ... 472s Setting up librust-smallvec-dev:amd64 (1.13.2-1) ... 472s Setting up librust-sval-fmt-dev:amd64 (2.6.1-1) ... 472s Setting up librust-const-oid-dev:amd64 (0.9.3-1) ... 472s Setting up gcc (4:14.1.0-2ubuntu1) ... 472s Setting up librust-anstyle-parse-dev:amd64 (0.2.1-1) ... 472s Setting up rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 472s Setting up dh-autoreconf (20) ... 472s Setting up librust-ciborium-dev:amd64 (0.2.2-2) ... 472s Setting up librust-block-buffer-dev:amd64 (0.10.2-2) ... 472s Setting up librust-pathfinder-simd-dev:amd64 (0.5.2-1) ... 472s Setting up librust-unicode-normalization-dev:amd64 (0.1.22-1) ... 472s Setting up librust-anstream-dev:amd64 (0.6.15-1) ... 472s Setting up librust-bitflags-dev:amd64 (2.6.0-1) ... 472s Setting up librust-regex-syntax-dev:amd64 (0.8.2-1) ... 472s Setting up g++ (4:14.1.0-2ubuntu1) ... 472s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 472s Setting up rustc (1.80.1ubuntu2) ... 472s Setting up librust-parking-lot-core-dev:amd64 (0.9.10-1) ... 472s Setting up build-essential (12.10ubuntu1) ... 472s Setting up librust-futures-channel-dev:amd64 (0.3.30-1) ... 472s Setting up cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 472s Setting up librust-once-cell-dev:amd64 (1.20.2-1) ... 472s Setting up librust-pyo3-build-config-dev:amd64 (0.22.6-1) ... 472s Setting up librust-phf-shared+uncased-dev:amd64 (0.11.2-1) ... 472s Setting up librust-digest-dev:amd64 (0.10.7-2) ... 472s Setting up librust-md-5-dev:amd64 (0.10.6-1) ... 472s Setting up librust-sval-serde-dev:amd64 (2.6.1-1) ... 472s Setting up librust-parking-lot-dev:amd64 (0.12.3-1) ... 472s Setting up librust-event-listener-strategy-dev:amd64 (0.5.2-3) ... 472s Setting up librust-pyo3-macros-backend-dev:amd64 (0.22.6-1) ... 472s Setting up librust-pyo3-ffi-dev:amd64 (0.22.6-1build1) ... 472s Setting up librust-const-random-macro-dev:amd64 (0.1.16-2) ... 472s Setting up librust-const-random-dev:amd64 (0.1.17-2) ... 472s Setting up librust-pyo3-macros-dev:amd64 (0.22.6-1) ... 472s Setting up librust-sha1-dev:amd64 (0.10.6-1) ... 472s Setting up debhelper (13.20ubuntu1) ... 472s Setting up librust-ahash-dev (0.8.11-8) ... 472s Setting up librust-async-channel-dev (2.3.1-8) ... 472s Setting up librust-stringprep-dev:amd64 (0.1.2-1) ... 472s Setting up librust-tracing-core-dev:amd64 (0.1.32-1) ... 472s Setting up cargo (1.80.1ubuntu2) ... 472s Setting up librust-async-lock-dev (3.4.0-4) ... 472s Setting up python3-setuptools-rust (1.9.0+dfsg-2) ... 473s Setting up librust-eyre-dev:amd64 (0.6.12-1) ... 473s Setting up librust-yeslogic-fontconfig-sys-dev:amd64 (3.0.1-1) ... 473s Setting up librust-sha2-dev:amd64 (0.10.8-1) ... 473s Setting up librust-hmac-dev:amd64 (0.12.1-1) ... 473s Setting up librust-rustix-dev:amd64 (0.38.32-1) ... 473s Setting up librust-wyz-dev:amd64 (0.5.1-1) ... 473s Setting up librust-bitvec-dev:amd64 (1.0.1-1) ... 473s Setting up librust-phf+uncased-dev:amd64 (0.11.2-1) ... 473s Setting up librust-value-bag-sval2-dev:amd64 (1.9.0-1) ... 473s Setting up librust-tempfile-dev:amd64 (3.10.1-1) ... 473s Setting up librust-eyre+default-dev:amd64 (0.6.12-1) ... 473s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 473s Setting up librust-rusty-fork-dev:amd64 (0.3.0-1) ... 473s Setting up librust-hashbrown-dev:amd64 (0.14.5-5) ... 473s Setting up librust-rusty-fork+wait-timeout-dev:amd64 (0.3.0-1) ... 473s Setting up librust-terminal-size-dev:amd64 (0.3.0-2) ... 473s Setting up librust-indexmap-dev:amd64 (2.2.6-1) ... 473s Setting up librust-gimli-dev:amd64 (0.28.1-2) ... 473s Setting up librust-webp-dev:amd64 (0.2.6-1) ... 473s Setting up librust-memchr-dev:amd64 (2.7.4-1) ... 473s Setting up librust-futures-util-dev:amd64 (0.3.30-2) ... 473s Setting up librust-csv-core-dev:amd64 (0.1.11-1) ... 473s Setting up librust-futures-lite-dev:amd64 (2.3.0-2) ... 473s Setting up librust-csv-dev:amd64 (1.3.0-1) ... 473s Setting up librust-serde-json-dev:amd64 (1.0.128-1) ... 473s Setting up librust-async-executor-dev (1.13.1-1) ... 473s Setting up librust-futures-executor-dev:amd64 (0.3.30-1) ... 473s Setting up librust-value-bag-serde1-dev:amd64 (1.9.0-1) ... 473s Setting up librust-tinytemplate-dev:amd64 (1.2.1-1) ... 473s Setting up librust-futures-dev:amd64 (0.3.30-2) ... 473s Setting up librust-value-bag-dev:amd64 (1.9.0-1) ... 473s Setting up librust-log-dev:amd64 (0.4.22-1) ... 473s Setting up librust-kv-log-macro-dev (1.0.8-4) ... 473s Setting up librust-pathfinder-geometry-dev:amd64 (0.5.1-1) ... 473s Setting up librust-tracing-dev:amd64 (0.1.40-1) ... 473s Setting up librust-polling-dev:amd64 (3.4.0-1) ... 473s Setting up librust-aho-corasick-dev:amd64 (1.1.3-1) ... 473s Setting up librust-font-kit-dev:amd64 (0.11.0-2) ... 473s Setting up librust-async-io-dev:amd64 (2.3.3-4) ... 473s Setting up librust-blocking-dev (1.6.1-5) ... 473s Setting up librust-async-net-dev (2.0.0-4) ... 473s Setting up librust-rand-dev:amd64 (0.8.5-1) ... 473s Setting up librust-mio-dev:amd64 (1.0.2-2) ... 473s Setting up librust-wasm-bindgen-backend-dev:amd64 (0.2.87-1) ... 473s Setting up librust-twox-hash-dev:amd64 (1.6.3-1) ... 473s Setting up librust-proptest-dev:amd64 (1.5.0-2) ... 473s Setting up librust-wasm-bindgen-macro-support-dev:amd64 (0.2.87-1) ... 473s Setting up librust-regex-automata-dev:amd64 (0.4.7-1) ... 473s Setting up librust-wasm-bindgen-macro-support+spans-dev:amd64 (0.2.87-1) ... 473s Setting up librust-wasm-bindgen-macro-dev:amd64 (0.2.87-1) ... 473s Setting up librust-uuid-dev:amd64 (1.10.0-1) ... 473s Setting up librust-bstr-dev:amd64 (1.7.0-2build1) ... 473s Setting up librust-async-signal-dev:amd64 (0.2.10-1) ... 473s Setting up librust-bytecheck-dev:amd64 (0.6.12-1) ... 473s Setting up librust-postgres-protocol-dev:amd64 (0.6.6-2) ... 473s Setting up librust-async-fs-dev (2.1.2-4) ... 473s Setting up librust-wasm-bindgen-dev:amd64 (0.2.87-1) ... 473s Setting up librust-convert-case-dev:amd64 (0.6.0-2) ... 473s Setting up librust-regex-dev:amd64 (1.10.6-1) ... 473s Setting up librust-fancy-regex-dev:amd64 (0.11.0-2) ... 473s Setting up librust-async-process-dev (2.3.0-1) ... 473s Setting up librust-derive-more-dev:amd64 (0.99.17-1) ... 473s Setting up librust-wasm-bindgen-macro+spans-dev:amd64 (0.2.87-1) ... 473s Setting up librust-ruzstd-dev:amd64 (0.5.0-1) ... 473s Setting up librust-rend-dev:amd64 (0.4.0-1) ... 473s Setting up librust-env-logger-dev:amd64 (0.10.2-2) ... 473s Setting up librust-wasm-bindgen+spans-dev:amd64 (0.2.87-1) ... 473s Setting up librust-wasm-bindgen+default-dev:amd64 (0.2.87-1) ... 473s Setting up librust-rkyv-dev:amd64 (0.7.44-1) ... 473s Setting up librust-eui48-dev:amd64 (1.1.0-2) ... 473s Setting up librust-parse-zoneinfo-dev:amd64 (0.3.0-1) ... 473s Setting up librust-smol-dev (2.0.2-1) ... 473s Setting up librust-js-sys-dev:amd64 (0.3.64-1) ... 473s Setting up librust-num-complex-dev:amd64 (0.4.6-2) ... 473s Setting up librust-object-dev:amd64 (0.32.2-1) ... 473s Setting up librust-approx-dev:amd64 (0.5.1-1) ... 473s Setting up librust-web-sys-dev:amd64 (0.3.64-2) ... 473s Setting up librust-quickcheck-dev:amd64 (1.0.3-3) ... 473s Setting up librust-geo-types-dev:amd64 (0.7.11-2) ... 473s Setting up librust-deranged-dev:amd64 (0.3.11-1) ... 473s Setting up librust-num-bigint-dev:amd64 (0.4.6-1) ... 473s Setting up librust-addr2line-dev:amd64 (0.21.0-2) ... 473s Setting up librust-num-rational-dev:amd64 (0.4.2-1) ... 473s Setting up librust-chrono-dev:amd64 (0.4.38-2) ... 473s Setting up librust-image-dev:amd64 (0.24.7-2) ... 473s Setting up librust-time-dev:amd64 (0.3.36-2) ... 473s Setting up librust-plotters-bitmap-dev:amd64 (0.3.3-3) ... 473s Setting up librust-backtrace-dev:amd64 (0.3.69-2) ... 473s Setting up librust-postgres-types-dev:amd64 (0.2.6-2) ... 473s Setting up librust-tokio-dev:amd64 (1.39.3-3) ... 473s Setting up librust-async-global-executor-dev:amd64 (2.4.1-5) ... 473s Setting up librust-plotters-svg-dev:amd64 (0.3.5-1) ... 473s Setting up librust-clap-builder-dev:amd64 (4.5.15-2) ... 473s Setting up librust-rust-decimal-dev:amd64 (1.36.0-1) ... 473s Setting up librust-clap-dev:amd64 (4.5.16-1) ... 473s Setting up librust-async-std-dev (1.13.0-1) ... 473s Setting up librust-anyhow-dev:amd64 (1.0.86-1) ... 473s Setting up librust-plotters-dev:amd64 (0.3.5-4) ... 473s Setting up librust-criterion-dev (0.5.1-6) ... 473s Setting up librust-phf-generator-dev:amd64 (0.11.2-2) ... 473s Setting up librust-phf-codegen-dev:amd64 (0.11.2-1) ... 473s Setting up librust-chrono-tz-build-dev:amd64 (0.2.1-1) ... 473s Setting up librust-chrono-tz-dev:amd64 (0.8.6-2) ... 473s Setting up librust-pyo3-dev:amd64 (0.22.6-1) ... 473s Setting up autopkgtest-satdep (0) ... 473s Processing triggers for libc-bin (2.40-1ubuntu3) ... 473s Processing triggers for systemd (256.5-2ubuntu4) ... 473s Processing triggers for man-db (2.13.0-1) ... 474s Processing triggers for install-info (7.1.1-1) ... 487s (Reading database ... 101394 files and directories currently installed.) 487s Removing autopkgtest-satdep (0) ... 488s autopkgtest [09:28:40]: test pybuild-autopkgtest: pybuild-autopkgtest 488s autopkgtest [09:28:40]: test pybuild-autopkgtest: [----------------------- 488s pybuild-autopkgtest 488s I: pybuild base:311: cd /tmp/autopkgtest.Ntntl8/autopkgtest_tmp/build; python3.12 -m pytest tests 489s ============================= test session starts ============================== 489s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 489s rootdir: /tmp/autopkgtest.Ntntl8/autopkgtest_tmp/build 489s configfile: pyproject.toml 489s plugins: typeguard-4.4.1, hypothesis-6.119.3 489s collected 30 items 489s 1073s tests/test_encoding.py FFFFFFFFFFFFFFFFFFFFFF [ 73%] 1074s tests/test_misc.py F. [ 80%] 1078s tests/test_offsets.py FF [ 86%] 1079s tests/test_pickle.py F [ 90%] 1080s tests/test_simple_public.py FF. [100%] 1080s 1080s =================================== FAILURES =================================== 1080s _________________________________ test_simple __________________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_simple(): 1080s > enc = tiktoken.get_encoding("gpt2") 1080s 1080s tests/test_encoding.py:15: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 1080s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 1080s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _____________________________ test_simple_repeated _____________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_simple_repeated(): 1080s > enc = tiktoken.get_encoding("gpt2") 1080s 1080s tests/test_encoding.py:32: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 1080s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 1080s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_simple_regex _______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_simple_regex(): 1080s > enc = tiktoken.get_encoding("cl100k_base") 1080s 1080s tests/test_encoding.py:53: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_basic_encode _______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_basic_encode(): 1080s > enc = tiktoken.get_encoding("r50k_base") 1080s 1080s tests/test_encoding.py:62: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_encode_empty _______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_encode_empty(): 1080s > enc = tiktoken.get_encoding("r50k_base") 1080s 1080s tests/test_encoding.py:74: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_encode_bytes _______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_encode_bytes(): 1080s > enc = tiktoken.get_encoding("cl100k_base") 1080s 1080s tests/test_encoding.py:79: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _________________________ test_encode_surrogate_pairs __________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_encode_surrogate_pairs(): 1080s > enc = tiktoken.get_encoding("cl100k_base") 1080s 1080s tests/test_encoding.py:84: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _________________ test_catastrophically_repetitive[r50k_base] __________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:96: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ________________ test_catastrophically_repetitive[cl100k_base] _________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _sE: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.Ntntl8/autopkgtest_tmp/build; python3.12 -m pytest tests 1080s tacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:96: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _______________________ test_basic_roundtrip[r50k_base] ________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_basic_roundtrip(make_enc): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:115: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 1080s reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________ test_basic_roundtrip[cl100k_base] _______________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_basic_roundtrip(make_enc): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:115: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ________________________ test_hyp_roundtrip[r50k_base] _________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(text=st.text()) 1080s 1080s tests/test_encoding.py:131: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:134: in test_hyp_roundtrip 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_roundtrip( 1080s E make_enc=functools.partial(get_encoding, 'r50k_base'), 1080s E text='', # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _______________________ test_hyp_roundtrip[cl100k_base] ________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(text=st.text()) 1080s 1080s tests/test_encoding.py:131: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:134: in test_hyp_roundtrip 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_roundtrip( 1080s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 1080s E text='', # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ____________________ test_single_token_roundtrip[r50k_base] ____________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:141: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ___________________ test_single_token_roundtrip[cl100k_base] ___________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s make: *** [/tmp/HxU4wnao0y/run:4: pybuild-autopkgtest] Error 25 1080s pybuild-autopkgtest: error: /tmp/HxU4wnao0y/run pybuild-autopkgtest returned exit code 2 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:141: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_special_token ______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_special_token(): 1080s > enc = tiktoken.get_encoding("cl100k_base") 1080s 1080s tests/test_encoding.py:157: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _____________________ test_hyp_special_ordinary[r50k_base] _____________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(text=st.text()) 1080s 1080s tests/test_encoding.py:208: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:211: in test_hyp_special_ordinary 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_special_ordinary( 1080s E make_enc=functools.partial(get_encoding, 'r50k_base'), 1080s E text='', # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ____________________ test_hyp_special_ordinary[cl100k_base] ____________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(text=st.text()) 1080s 1080s tests/test_encoding.py:208: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:211: in test_hyp_special_ordinary 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_special_ordinary( 1080s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 1080s E text='', # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _________________________ test_batch_encode[r50k_base] _________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:222: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ________________________ test_batch_encode[cl100k_base] ________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 1080s > enc = make_enc() 1080s 1080s tests/test_encoding.py:222: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _____________________ test_hyp_batch_roundtrip[r50k_base] ______________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'r50k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(batch=st.lists(st.text())) 1080s 1080s tests/test_encoding.py:237: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_batch_roundtrip( 1080s E make_enc=functools.partial(get_encoding, 'r50k_base'), 1080s E batch=[], # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ____________________ test_hyp_batch_roundtrip[cl100k_base] _____________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 1080s > @hypothesis.given(batch=st.lists(st.text())) 1080s 1080s tests/test_encoding.py:237: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_batch_roundtrip( 1080s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 1080s E batch=[], # or any other generated value 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ___________________________ test_encoding_for_model ____________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_encoding_for_model(): 1080s > enc = tiktoken.encoding_for_model("gpt2") 1080s 1080s tests/test_misc.py:8: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 1080s return get_encoding(encoding_name_for_model(model_name)) 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 1080s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 1080s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ________________________ test_hyp_offsets[cl100k_base] _________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s make_enc = functools.partial(, 'cl100k_base') 1080s 1080s @pytest.mark.parametrize("make_enc", SOME_ENCODING_FACTORIES) 1080s > @hypothesis.given(data=st.data()) 1080s 1080s tests/test_offsets.py:29: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s tests/test_offsets.py:32: in test_hyp_offsets 1080s enc = make_enc() 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s E Falsifying example: test_hyp_offsets( 1080s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 1080s E data=data(...), 1080s E ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ______________________________ test_basic_offsets ______________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_basic_offsets(): 1080s > enc = tiktoken.get_encoding("cl100k_base") 1080s 1080s tests/test_offsets.py:50: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _________________________________ test_pickle __________________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_pickle(): 1080s import pickle 1080s 1080s > enc_old = tiktoken.get_encoding("r50k_base") 1080s 1080s tests/test_pickle.py:7: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 1080s mergeable_ranks = load_tiktoken_bpe( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 1080s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s _________________________________ test_simple __________________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_simple(): 1080s # Note that there are more actual tests, they're just not currently public :-) 1080s > enc = tiktoken.get_encoding("gpt2") 1080s 1080s tests/test_simple_public.py:9: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 1080s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 1080s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s ___________________________ test_encoding_for_model ____________________________ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s > sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 1080s raise err 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 1080s source_address = None, socket_options = [(6, 1, 1)] 1080s 1080s def create_connection( 1080s address: tuple[str, int], 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s source_address: tuple[str, int] | None = None, 1080s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 1080s ) -> socket.socket: 1080s """Connect to *address* and return the socket object. 1080s 1080s Convenience function. Connect to *address* (a 2-tuple ``(host, 1080s port)``) and return the socket object. Passing the optional 1080s *timeout* parameter will set the timeout on the socket instance 1080s before attempting to connect. If no *timeout* is supplied, the 1080s global default timeout setting returned by :func:`socket.getdefaulttimeout` 1080s is used. If *source_address* is set it must be a tuple of (host, port) 1080s for the socket to bind as a source address before making the connection. 1080s An host of '' or port 0 tells the OS to use the default. 1080s """ 1080s 1080s host, port = address 1080s if host.startswith("["): 1080s host = host.strip("[]") 1080s err = None 1080s 1080s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 1080s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 1080s # The original create_connection function always returns all records. 1080s family = allowed_gai_family() 1080s 1080s try: 1080s host.encode("idna") 1080s except UnicodeError: 1080s raise LocationParseError(f"'{host}', label empty or too long") from None 1080s 1080s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 1080s af, socktype, proto, canonname, sa = res 1080s sock = None 1080s try: 1080s sock = socket.socket(af, socktype, proto) 1080s 1080s # If provided, set socket level options before connecting. 1080s _set_socket_options(sock, socket_options) 1080s 1080s if timeout is not _DEFAULT_TIMEOUT: 1080s sock.settimeout(timeout) 1080s if source_address: 1080s sock.bind(source_address) 1080s > sock.connect(sa) 1080s E ConnectionRefusedError: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 1080s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 1080s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s redirect = False, assert_same_host = False 1080s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 1080s release_conn = False, chunked = False, body_pos = None, preload_content = False 1080s decode_content = False, response_kw = {} 1080s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 1080s destination_scheme = None, conn = None, release_this_conn = True 1080s http_tunnel_required = False, err = None, clean_exit = False 1080s 1080s def urlopen( # type: ignore[override] 1080s self, 1080s method: str, 1080s url: str, 1080s body: _TYPE_BODY | None = None, 1080s headers: typing.Mapping[str, str] | None = None, 1080s retries: Retry | bool | int | None = None, 1080s redirect: bool = True, 1080s assert_same_host: bool = True, 1080s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 1080s pool_timeout: int | None = None, 1080s release_conn: bool | None = None, 1080s chunked: bool = False, 1080s body_pos: _TYPE_BODY_POSITION | None = None, 1080s preload_content: bool = True, 1080s decode_content: bool = True, 1080s **response_kw: typing.Any, 1080s ) -> BaseHTTPResponse: 1080s """ 1080s Get a connection from the pool and perform an HTTP request. This is the 1080s lowest level call for making a request, so you'll need to specify all 1080s the raw details. 1080s 1080s .. note:: 1080s 1080s More commonly, it's appropriate to use a convenience method 1080s such as :meth:`request`. 1080s 1080s .. note:: 1080s 1080s `release_conn` will only behave as expected if 1080s `preload_content=False` because we want to make 1080s `preload_content=False` the default behaviour someday soon without 1080s breaking backwards compatibility. 1080s 1080s :param method: 1080s HTTP request method (such as GET, POST, PUT, etc.) 1080s 1080s :param url: 1080s The URL to perform the request on. 1080s 1080s :param body: 1080s Data to send in the request body, either :class:`str`, :class:`bytes`, 1080s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 1080s 1080s :param headers: 1080s Dictionary of custom headers to send, such as User-Agent, 1080s If-None-Match, etc. If None, pool headers are used. If provided, 1080s these headers completely replace any pool-specific headers. 1080s 1080s :param retries: 1080s Configure the number of retries to allow before raising a 1080s :class:`~urllib3.exceptions.MaxRetryError` exception. 1080s 1080s Pass ``None`` to retry until you receive a response. Pass a 1080s :class:`~urllib3.util.retry.Retry` object for fine-grained control 1080s over different types of retries. 1080s Pass an integer number to retry connection errors that many times, 1080s but no other types of errors. Pass zero to never retry. 1080s 1080s If ``False``, then retries are disabled and any exception is raised 1080s immediately. Also, instead of raising a MaxRetryError on redirects, 1080s the redirect response will be returned. 1080s 1080s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 1080s 1080s :param redirect: 1080s If True, automatically handle redirects (status codes 301, 302, 1080s 303, 307, 308). Each redirect counts as a retry. Disabling retries 1080s will disable redirect, too. 1080s 1080s :param assert_same_host: 1080s If ``True``, will make sure that the host of the pool requests is 1080s consistent else will raise HostChangedError. When ``False``, you can 1080s use the pool on an HTTP proxy and request foreign hosts. 1080s 1080s :param timeout: 1080s If specified, overrides the default timeout for this one 1080s request. It may be a float (in seconds) or an instance of 1080s :class:`urllib3.util.Timeout`. 1080s 1080s :param pool_timeout: 1080s If set and the pool is set to block=True, then this method will 1080s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 1080s connection is available within the time period. 1080s 1080s :param bool preload_content: 1080s If True, the response's body will be preloaded into memory. 1080s 1080s :param bool decode_content: 1080s If True, will attempt to decode the body based on the 1080s 'content-encoding' header. 1080s 1080s :param release_conn: 1080s If False, then the urlopen call will not release the connection 1080s back into the pool once a response is received (but will release if 1080s you read the entire contents of the response such as when 1080s `preload_content=True`). This is useful if you're not preloading 1080s the response's content immediately. You will need to call 1080s ``r.release_conn()`` on the response ``r`` to return the connection 1080s back into the pool. If None, it takes the value of ``preload_content`` 1080s which defaults to ``True``. 1080s 1080s :param bool chunked: 1080s If True, urllib3 will send the body using chunked transfer 1080s encoding. Otherwise, urllib3 will send the body using the standard 1080s content-length form. Defaults to False. 1080s 1080s :param int body_pos: 1080s Position to seek to in file-like body in the event of a retry or 1080s redirect. Typically this won't need to be set because urllib3 will 1080s auto-populate the value when needed. 1080s """ 1080s parsed_url = parse_url(url) 1080s destination_scheme = parsed_url.scheme 1080s 1080s if headers is None: 1080s headers = self.headers 1080s 1080s if not isinstance(retries, Retry): 1080s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 1080s 1080s if release_conn is None: 1080s release_conn = preload_content 1080s 1080s # Check host 1080s if assert_same_host and not self.is_same_host(url): 1080s raise HostChangedError(self, url, retries) 1080s 1080s # Ensure that the URL we're connecting to is properly encoded 1080s if url.startswith("/"): 1080s url = to_str(_encode_target(url)) 1080s else: 1080s url = to_str(parsed_url.url) 1080s 1080s conn = None 1080s 1080s # Track whether `conn` needs to be released before 1080s # returning/raising/recursing. Update this variable if necessary, and 1080s # leave `release_conn` constant throughout the function. That way, if 1080s # the function recurses, the original value of `release_conn` will be 1080s # passed down into the recursive call, and its value will be respected. 1080s # 1080s # See issue #651 [1] for details. 1080s # 1080s # [1] 1080s release_this_conn = release_conn 1080s 1080s http_tunnel_required = connection_requires_http_tunnel( 1080s self.proxy, self.proxy_config, destination_scheme 1080s ) 1080s 1080s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 1080s # have to copy the headers dict so we can safely change it without those 1080s # changes being reflected in anyone else's copy. 1080s if not http_tunnel_required: 1080s headers = headers.copy() # type: ignore[attr-defined] 1080s headers.update(self.proxy_headers) # type: ignore[union-attr] 1080s 1080s # Must keep the exception bound to a separate variable or else Python 3 1080s # complains about UnboundLocalError. 1080s err = None 1080s 1080s # Keep track of whether we cleanly exited the except block. This 1080s # ensures we do proper cleanup in finally. 1080s clean_exit = False 1080s 1080s # Rewind body position, if needed. Record current position 1080s # for future rewinds in the event of a redirect/retry. 1080s body_pos = set_file_position(body, body_pos) 1080s 1080s try: 1080s # Request a connection from the queue. 1080s timeout_obj = self._get_timeout(timeout) 1080s conn = self._get_conn(timeout=pool_timeout) 1080s 1080s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 1080s 1080s # Is this a closed/new connection that requires CONNECT tunnelling? 1080s if self.proxy is not None and http_tunnel_required and conn.is_closed: 1080s try: 1080s self._prepare_proxy(conn) 1080s except (BaseSSLError, OSError, SocketTimeout) as e: 1080s self._raise_timeout( 1080s err=e, url=self.proxy.url, timeout_value=conn.timeout 1080s ) 1080s raise 1080s 1080s # If we're going to release the connection in ``finally:``, then 1080s # the response doesn't need to know about the connection. Otherwise 1080s # it will also try to release it and we'll have a double-release 1080s # mess. 1080s response_conn = conn if not release_conn else None 1080s 1080s # Make the request on the HTTPConnection object 1080s > response = self._make_request( 1080s conn, 1080s method, 1080s url, 1080s timeout=timeout_obj, 1080s body=body, 1080s headers=headers, 1080s chunked=chunked, 1080s retries=retries, 1080s response_conn=response_conn, 1080s preload_content=preload_content, 1080s decode_content=decode_content, 1080s **response_kw, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 1080s raise new_e 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 1080s self._validate_conn(conn) 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 1080s conn.connect() 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 1080s self.sock = sock = self._new_conn() 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s 1080s def _new_conn(self) -> socket.socket: 1080s """Establish a socket connection and set nodelay settings on it. 1080s 1080s :return: New socket connection. 1080s """ 1080s try: 1080s sock = connection.create_connection( 1080s (self._dns_host, self.port), 1080s self.timeout, 1080s source_address=self.source_address, 1080s socket_options=self.socket_options, 1080s ) 1080s except socket.gaierror as e: 1080s raise NameResolutionError(self.host, self, e) from e 1080s except SocketTimeout as e: 1080s raise ConnectTimeoutError( 1080s self, 1080s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 1080s ) from e 1080s 1080s except OSError as e: 1080s > raise NewConnectionError( 1080s self, f"Failed to establish a new connection: {e}" 1080s ) from e 1080s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 1080s 1080s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 1080s 1080s The above exception was the direct cause of the following exception: 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s > resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:667: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 1080s retries = retries.increment( 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 1080s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 1080s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 1080s _pool = 1080s _stacktrace = 1080s 1080s def increment( 1080s self, 1080s method: str | None = None, 1080s url: str | None = None, 1080s response: BaseHTTPResponse | None = None, 1080s error: Exception | None = None, 1080s _pool: ConnectionPool | None = None, 1080s _stacktrace: TracebackType | None = None, 1080s ) -> Retry: 1080s """Return a new Retry object with incremented retry counters. 1080s 1080s :param response: A response object, or None, if the server did not 1080s return a response. 1080s :type response: :class:`~urllib3.response.BaseHTTPResponse` 1080s :param Exception error: An error encountered during the request, or 1080s None if the response was received successfully. 1080s 1080s :return: A new ``Retry`` object. 1080s """ 1080s if self.total is False and error: 1080s # Disabled, indicate to re-raise the error. 1080s raise reraise(type(error), error, _stacktrace) 1080s 1080s total = self.total 1080s if total is not None: 1080s total -= 1 1080s 1080s connect = self.connect 1080s read = self.read 1080s redirect = self.redirect 1080s status_count = self.status 1080s other = self.other 1080s cause = "unknown" 1080s status = None 1080s redirect_location = None 1080s 1080s if error and self._is_connection_error(error): 1080s # Connect retry? 1080s if connect is False: 1080s raise reraise(type(error), error, _stacktrace) 1080s elif connect is not None: 1080s connect -= 1 1080s 1080s elif error and self._is_read_error(error): 1080s # Read retry? 1080s if read is False or method is None or not self._is_method_retryable(method): 1080s raise reraise(type(error), error, _stacktrace) 1080s elif read is not None: 1080s read -= 1 1080s 1080s elif error: 1080s # Other retry? 1080s if other is not None: 1080s other -= 1 1080s 1080s elif response and response.get_redirect_location(): 1080s # Redirect retry? 1080s if redirect is not None: 1080s redirect -= 1 1080s cause = "too many redirects" 1080s response_redirect_location = response.get_redirect_location() 1080s if response_redirect_location: 1080s redirect_location = response_redirect_location 1080s status = response.status 1080s 1080s else: 1080s # Incrementing because of a server error like a 500 in 1080s # status_forcelist and the given method is in the allowed_methods 1080s cause = ResponseError.GENERIC_ERROR 1080s if response and response.status: 1080s if status_count is not None: 1080s status_count -= 1 1080s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 1080s status = response.status 1080s 1080s history = self.history + ( 1080s RequestHistory(method, url, error, status, redirect_location), 1080s ) 1080s 1080s new_retry = self.new( 1080s total=total, 1080s connect=connect, 1080s read=read, 1080s redirect=redirect, 1080s status=status_count, 1080s other=other, 1080s history=history, 1080s ) 1080s 1080s if new_retry.is_exhausted(): 1080s reason = error or ResponseError(cause) 1080s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 1080s 1080s During handling of the above exception, another exception occurred: 1080s 1080s def test_encoding_for_model(): 1080s > enc = tiktoken.encoding_for_model("gpt2") 1080s 1080s tests/test_simple_public.py:26: 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 1080s return get_encoding(encoding_name_for_model(model_name)) 1080s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 1080s enc = Encoding(**constructor()) 1080s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 1080s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 1080s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 1080s contents = read_file(blobpath) 1080s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 1080s resp = requests.get(blobpath) 1080s /usr/lib/python3/dist-packages/requests/api.py:73: in get 1080s return request("get", url, params=params, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/api.py:59: in request 1080s return session.request(method=method, url=url, **kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 1080s resp = self.send(prep, **send_kwargs) 1080s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 1080s r = adapter.send(request, **kwargs) 1080s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1080s 1080s self = 1080s request = , stream = False 1080s timeout = Timeout(connect=None, read=None, total=None), verify = True 1080s cert = None, proxies = OrderedDict() 1080s 1080s def send( 1080s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 1080s ): 1080s """Sends PreparedRequest object. Returns Response object. 1080s 1080s :param request: The :class:`PreparedRequest ` being sent. 1080s :param stream: (optional) Whether to stream the request content. 1080s :param timeout: (optional) How long to wait for the server to send 1080s data before giving up, as a float, or a :ref:`(connect timeout, 1080s read timeout) ` tuple. 1080s :type timeout: float or tuple or urllib3 Timeout object 1080s :param verify: (optional) Either a boolean, in which case it controls whether 1080s we verify the server's TLS certificate, or a string, in which case it 1080s must be a path to a CA bundle to use 1080s :param cert: (optional) Any user-provided SSL certificate to be trusted. 1080s :param proxies: (optional) The proxies dictionary to apply to the request. 1080s :rtype: requests.Response 1080s """ 1080s 1080s try: 1080s conn = self.get_connection_with_tls_context( 1080s request, verify, proxies=proxies, cert=cert 1080s ) 1080s except LocationValueError as e: 1080s raise InvalidURL(e, request=request) 1080s 1080s self.cert_verify(conn, request.url, verify, cert) 1080s url = self.request_url(request, proxies) 1080s self.add_headers( 1080s request, 1080s stream=stream, 1080s timeout=timeout, 1080s verify=verify, 1080s cert=cert, 1080s proxies=proxies, 1080s ) 1080s 1080s chunked = not (request.body is None or "Content-Length" in request.headers) 1080s 1080s if isinstance(timeout, tuple): 1080s try: 1080s connect, read = timeout 1080s timeout = TimeoutSauce(connect=connect, read=read) 1080s except ValueError: 1080s raise ValueError( 1080s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 1080s f"or a single float to set both timeouts to the same value." 1080s ) 1080s elif isinstance(timeout, TimeoutSauce): 1080s pass 1080s else: 1080s timeout = TimeoutSauce(connect=timeout, read=timeout) 1080s 1080s try: 1080s resp = conn.urlopen( 1080s method=request.method, 1080s url=url, 1080s body=request.body, 1080s headers=request.headers, 1080s redirect=False, 1080s assert_same_host=False, 1080s preload_content=False, 1080s decode_content=False, 1080s retries=self.max_retries, 1080s timeout=timeout, 1080s chunked=chunked, 1080s ) 1080s 1080s except (ProtocolError, OSError) as err: 1080s raise ConnectionError(err, request=request) 1080s 1080s except MaxRetryError as e: 1080s if isinstance(e.reason, ConnectTimeoutError): 1080s # TODO: Remove this in 3.0.0: see #2811 1080s if not isinstance(e.reason, NewConnectionError): 1080s raise ConnectTimeout(e, request=request) 1080s 1080s if isinstance(e.reason, ResponseError): 1080s raise RetryError(e, request=request) 1080s 1080s if isinstance(e.reason, _ProxyError): 1080s raise ProxyError(e, request=request) 1080s 1080s if isinstance(e.reason, _SSLError): 1080s # This branch is for urllib3 v1.22 and later. 1080s raise SSLError(e, request=request) 1080s 1080s > raise ConnectionError(e, request=request) 1080s 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')) 1080s 1080s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 1080s =========================== short test summary info ============================ 1080s FAILED tests/test_encoding.py::test_simple - requests.exceptions.ConnectionEr... 1080s FAILED tests/test_encoding.py::test_simple_repeated - requests.exceptions.Con... 1080s FAILED tests/test_encoding.py::test_simple_regex - requests.exceptions.Connec... 1080s FAILED tests/test_encoding.py::test_basic_encode - requests.exceptions.Connec... 1080s FAILED tests/test_encoding.py::test_encode_empty - requests.exceptions.Connec... 1080s FAILED tests/test_encoding.py::test_encode_bytes - requests.exceptions.Connec... 1080s FAILED tests/test_encoding.py::test_encode_surrogate_pairs - requests.excepti... 1080s FAILED tests/test_encoding.py::test_catastrophically_repetitive[r50k_base] - ... 1080s FAILED tests/test_encoding.py::test_catastrophically_repetitive[cl100k_base] 1080s FAILED tests/test_encoding.py::test_basic_roundtrip[r50k_base] - requests.exc... 1080s FAILED tests/test_encoding.py::test_basic_roundtrip[cl100k_base] - requests.e... 1080s FAILED tests/test_encoding.py::test_hyp_roundtrip[r50k_base] - requests.excep... 1080s FAILED tests/test_encoding.py::test_hyp_roundtrip[cl100k_base] - requests.exc... 1080s FAILED tests/test_encoding.py::test_single_token_roundtrip[r50k_base] - reque... 1080s FAILED tests/test_encoding.py::test_single_token_roundtrip[cl100k_base] - req... 1080s FAILED tests/test_encoding.py::test_special_token - requests.exceptions.Conne... 1080s FAILED tests/test_encoding.py::test_hyp_special_ordinary[r50k_base] - request... 1080s FAILED tests/test_encoding.py::test_hyp_special_ordinary[cl100k_base] - reque... 1080s FAILED tests/test_encoding.py::test_batch_encode[r50k_base] - requests.except... 1080s FAILED tests/test_encoding.py::test_batch_encode[cl100k_base] - requests.exce... 1080s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[r50k_base] - requests... 1080s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[cl100k_base] - reques... 1080s FAILED tests/test_misc.py::test_encoding_for_model - requests.exceptions.Conn... 1080s FAILED tests/test_offsets.py::test_hyp_offsets[cl100k_base] - requests.except... 1080s FAILED tests/test_offsets.py::test_basic_offsets - requests.exceptions.Connec... 1080s FAILED tests/test_pickle.py::test_pickle - requests.exceptions.ConnectionErro... 1080s FAILED tests/test_simple_public.py::test_simple - requests.exceptions.Connect... 1080s FAILED tests/test_simple_public.py::test_encoding_for_model - requests.except... 1080s =================== 28 failed, 2 passed in 591.71s (0:09:51) =================== 1081s autopkgtest [09:38:33]: test pybuild-autopkgtest: -----------------------] 1082s autopkgtest [09:38:34]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1082s pybuild-autopkgtest FAIL non-zero exit status 25 1082s autopkgtest [09:38:34]: @@@@@@@@@@@@@@@@@@@@ summary 1082s pybuild-autopkgtest FAIL non-zero exit status 25 1088s nova [W] Skipping flock for amd64 1088s Creating nova instance adt-plucky-amd64-tiktoken-20241125-092031-juju-7f2275-prod-proposed-migration-environment-15-43f3fa1d-a716-4e7f-ba4e-d00f2fdf199a from image adt/ubuntu-plucky-amd64-server-20241119.img (UUID 2e5306de-7efa-448c-bc27-5518979e66f0)... 1088s nova [W] nova quota exceeded (attempt #0)