0s autopkgtest [09:40:51]: starting date and time: 2024-11-25 09:40:51+0000 0s autopkgtest [09:40:51]: git checkout: 6408f825 Correct logic in old-systemd fallback code 0s autopkgtest [09:40:51]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.q88j9423/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_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\n" >> /etc/environment' --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 -- lxd -r lxd-armhf-10.145.243.51 lxd-armhf-10.145.243.51:autopkgtest/ubuntu/plucky/armhf 57s autopkgtest [09:41:48]: testbed dpkg architecture: armhf 59s autopkgtest [09:41:50]: testbed apt version: 2.9.8 59s autopkgtest [09:41:50]: @@@@@@@@@@@@@@@@@@@@ test bed setup 69s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 70s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [14.2 kB] 70s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [797 kB] 70s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [49.6 kB] 70s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 70s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf Packages [56.8 kB] 70s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted armhf Packages [756 B] 70s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe armhf Packages [563 kB] 70s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse armhf Packages [5924 B] 70s Fetched 1571 kB in 1s (1689 kB/s) 70s Reading package lists... 92s tee: /proc/self/fd/2: Permission denied 115s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 115s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 115s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 115s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 116s Reading package lists... 116s Reading package lists... 117s Building dependency tree... 117s Reading state information... 118s Calculating upgrade... 118s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 118s Reading package lists... 119s Building dependency tree... 119s Reading state information... 120s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 124s autopkgtest [09:42:55]: rebooting testbed after setup commands that affected boot 191s autopkgtest [09:44:02]: testbed running kernel: Linux 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 18:12:14 UTC 2 217s autopkgtest [09:44:28]: @@@@@@@@@@@@@@@@@@@@ apt-source tiktoken 226s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (dsc) [2247 B] 226s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (tar) [31.6 kB] 226s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1build1 (diff) [3908 B] 227s gpgv: Signature made Mon Nov 18 15:38:19 2024 UTC 227s gpgv: using RSA key 25E3FF2D7F469DBE7D0D4E50AFCFEC8E669CE1C2 227s gpgv: Can't check signature: No public key 227s dpkg-source: warning: cannot verify inline signature for ./tiktoken_0.8.0-1build1.dsc: no acceptable signature found 227s autopkgtest [09:44:38]: testing package tiktoken version 0.8.0-1build1 229s autopkgtest [09:44:40]: build not needed 231s autopkgtest [09:44:42]: test pybuild-autopkgtest: preparing testbed 240s Reading package lists... 241s Building dependency tree... 241s Reading state information... 241s Starting pkgProblemResolver with broken count: 0 241s Starting 2 pkgProblemResolver with broken count: 0 241s Done 242s The following additional packages will be installed: 242s autoconf automake autopoint autotools-dev binutils-mingw-w64-i686 242s binutils-mingw-w64-x86-64 build-essential cargo cargo-1.80 cmake cmake-data 242s cpp cpp-14 cpp-14-arm-linux-gnueabihf cpp-arm-linux-gnueabihf debhelper 242s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz 242s fontconfig-config fonts-dejavu-core fonts-dejavu-mono g++ g++-14 242s g++-14-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc gcc-14 242s gcc-14-arm-linux-gnueabihf gcc-arm-linux-gnueabihf gettext intltool-debian 242s libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev libc-dev-bin libc6-dev 242s libcc1-0 libcrypt-dev libdebhelper-perl libexpat1-dev 242s libfile-stripnondeterminism-perl libfontconfig-dev libfontconfig1 242s libfreetype-dev libfreetype6 libgcc-14-dev libgit2-1.7 libgomp1 242s libhttp-parser2.9 libisl23 libjsoncpp25 libllvm18 libllvm19 libmpc3 libpfm4 242s libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev libpython3.12-dev 242s libpython3.12t64 librhash0 librust-ab-glyph-dev 242s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 242s librust-addr2line-dev librust-adler-dev librust-ahash-dev 242s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 242s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 242s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 242s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 242s librust-async-attributes-dev librust-async-channel-dev 242s librust-async-executor-dev librust-async-fs-dev 242s librust-async-global-executor-dev librust-async-io-dev 242s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 242s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 242s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 242s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 242s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 242s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 242s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 242s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 242s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 242s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 242s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 242s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 242s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 242s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 242s librust-color-quant-dev librust-colorchoice-dev 242s librust-compiler-builtins+core-dev 242s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 242s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 242s librust-const-random-dev librust-const-random-macro-dev 242s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 242s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 242s librust-critical-section-dev librust-crossbeam-deque-dev 242s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 242s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 242s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 242s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 242s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 242s librust-either-dev librust-env-logger-dev librust-equivalent-dev 242s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 242s librust-event-listener-dev librust-event-listener-strategy-dev 242s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 242s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 242s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 242s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 242s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 242s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 242s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 242s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 242s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 242s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 242s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 242s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 242s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 242s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 242s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 242s librust-libc-dev librust-libloading-dev librust-libm-dev 242s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 242s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 242s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 242s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 242s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 242s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 242s librust-num-threads-dev librust-num-traits-dev librust-object-dev 242s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 242s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 242s librust-parking-lot-dev librust-parse-zoneinfo-dev 242s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 242s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 242s librust-phf-generator-dev librust-phf-shared+uncased-dev 242s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 242s librust-pkg-config-dev librust-plotters-backend-dev 242s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 242s librust-png-dev librust-polling-dev librust-portable-atomic-dev 242s librust-postgres-derive-dev librust-postgres-protocol-dev 242s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 242s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 242s librust-ptr-meta-derive-dev librust-ptr-meta-dev 242s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 242s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 242s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 242s librust-quickcheck-dev librust-quote-dev librust-radium-dev 242s librust-rand-chacha-dev librust-rand-core+getrandom-dev 242s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 242s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 242s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 242s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 242s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 242s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 242s librust-rustc-version-dev librust-rustix-dev 242s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 242s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 242s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 242s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 242s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 242s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 242s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 242s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 242s librust-smol-str-dev librust-socket2-dev librust-spin-dev 242s librust-stable-deref-trait-dev librust-static-assertions-dev 242s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 242s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 242s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 242s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 242s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 242s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 242s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 242s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 242s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 242s librust-tokio-macros-dev librust-tracing-attributes-dev 242s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 242s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 242s librust-typenum-dev librust-unarray-dev librust-uncased-dev 242s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 242s librust-unicode-normalization-dev librust-unicode-segmentation-dev 242s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 242s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 242s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 242s librust-value-bag-sval2-dev librust-version-check-dev 242s librust-wait-timeout-dev librust-walkdir-dev 242s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 242s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 242s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 242s librust-wasm-bindgen-macro-support+spans-dev 242s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 242s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 242s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 242s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 242s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 242s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 242s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 242s libstdc++-14-dev libtool libubsan1 libwebp-dev libwebp7 libwebpdecoder3 242s libwebpdemux2 libwebpmux3 linux-libc-dev llvm llvm-19 llvm-19-linker-tools 242s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 242s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 242s python3-build python3-dateutil python3-hypothesis python3-iniconfig 242s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 242s python3-pytest python3-regex python3-semantic-version 242s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 242s python3-toml python3-wheel python3.12-dev rpcsvc-proto rustc rustc-1.80 242s uuid-dev zlib1g-dev 242s Suggested packages: 242s autoconf-archive gnu-standards autoconf-doc cargo-1.80-doc cmake-doc 242s cmake-format elpa-cmake-mode ninja-build cpp-doc gcc-14-locales cpp-14-doc 242s dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb gcc-doc 242s gdb-arm-linux-gnueabihf gettext-doc libasprintf-dev libgettextpo-dev 242s libc-devtools glibc-doc freetype2-doc librust-adler+compiler-builtins-dev 242s librust-adler+core-dev librust-adler+rustc-dep-of-std-dev 242s librust-backtrace+cpp-demangle-dev librust-backtrace+rustc-serialize-dev 242s librust-backtrace+serde-dev librust-backtrace+verify-winapi-dev 242s librust-backtrace+winapi-dev librust-cfg-if-0.1+core-dev 242s librust-cfg-if+core-dev librust-compiler-builtins+c-dev gnuplot-nox 242s librust-csv-core+libc-dev librust-either+serde-dev 242s librust-getrandom+compiler-builtins-dev librust-getrandom+core-dev 242s librust-getrandom+rustc-dep-of-std-dev librust-phf+phf-macros-dev 242s librust-phf+serde-dev librust-phf+unicase-dev librust-phf-shared+unicase-dev 242s librust-rand-xorshift+serde-dev librust-rustc-demangle+compiler-builtins-dev 242s librust-rustc-demangle+core-dev librust-rustc-demangle+rustc-dep-of-std-dev 242s librust-ryu+no-panic-dev librust-slog+erased-serde-dev 242s librust-tinyvec+arbitrary-dev librust-tinyvec+serde-dev 242s librust-uncased+serde-dev librust-uncased+with-serde-alloc-dev 242s librust-wasm-bindgen-backend+extra-traits-dev librust-wasm-bindgen+serde-dev 242s librust-wasm-bindgen+serde-serialize-dev librust-wasm-bindgen+serde-json-dev 242s librust-wasm-bindgen+strict-macro-dev 242s librust-wasm-bindgen+xxx-debug-only-print-generated-code-dev 242s librust-wasm-bindgen-macro+strict-macro-dev 242s librust-wasm-bindgen-macro-support+extra-traits-dev librust-weezl+async-dev 242s librust-weezl+futures-dev libstdc++-14-doc libtool-doc gfortran 242s | fortran95-compiler gcj-jdk llvm-19-doc m4-doc libmail-box-perl python3-pip 242s python3-venv python-build-doc python-hypothesis-doc python-installer-doc 242s python-semantic-version-doc python-sortedcontainers-doc llvm-18 lld-18 242s clang-18 242s Recommended packages: 242s bzip2-doc manpages manpages-dev libarchive-cpio-perl libpng-tools libssl3 242s librust-phf+std-dev librust-subtle+default-dev libltdl-dev llvm-19-dev 242s libmail-sendmail-perl python3-click 243s The following NEW packages will be installed: 243s autoconf automake autopkgtest-satdep autopoint autotools-dev 243s binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 build-essential cargo 243s cargo-1.80 cmake cmake-data cpp cpp-14 cpp-14-arm-linux-gnueabihf 243s cpp-arm-linux-gnueabihf debhelper debugedit dh-autoreconf dh-python 243s dh-strip-nondeterminism dwz fontconfig-config fonts-dejavu-core 243s fonts-dejavu-mono g++ g++-14 g++-14-arm-linux-gnueabihf 243s g++-arm-linux-gnueabihf gcc gcc-14 gcc-14-arm-linux-gnueabihf 243s gcc-arm-linux-gnueabihf gettext intltool-debian libarchive-zip-perl libasan8 243s libbrotli-dev libbz2-dev libc-dev-bin libc6-dev libcc1-0 libcrypt-dev 243s libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 243s libfontconfig-dev libfontconfig1 libfreetype-dev libfreetype6 libgcc-14-dev 243s libgit2-1.7 libgomp1 libhttp-parser2.9 libisl23 libjsoncpp25 libllvm18 243s libllvm19 libmpc3 libpfm4 libpkgconf3 libpng-dev libpython3-all-dev 243s libpython3-dev libpython3.12-dev libpython3.12t64 librhash0 243s librust-ab-glyph-dev librust-ab-glyph-rasterizer+libm-dev 243s librust-ab-glyph-rasterizer-dev librust-addr2line-dev librust-adler-dev 243s librust-ahash-dev librust-aho-corasick-dev librust-allocator-api2-dev 243s librust-anes-dev librust-anstream-dev librust-anstyle-dev 243s librust-anstyle-parse-dev librust-anstyle-query-dev librust-anyhow-dev 243s librust-approx-dev librust-arbitrary-dev librust-array-init-dev 243s librust-arrayvec-dev librust-async-attributes-dev librust-async-channel-dev 243s librust-async-executor-dev librust-async-fs-dev 243s librust-async-global-executor-dev librust-async-io-dev 243s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 243s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 243s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 243s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 243s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 243s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 243s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 243s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 243s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 243s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 243s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 243s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 243s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 243s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 243s librust-color-quant-dev librust-colorchoice-dev 243s librust-compiler-builtins+core-dev 243s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 243s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 243s librust-const-random-dev librust-const-random-macro-dev 243s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 243s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 243s librust-critical-section-dev librust-crossbeam-deque-dev 243s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 243s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 243s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 243s librust-derive-arbitrary-dev librust-derive-more-dev librust-digest-dev 243s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 243s librust-either-dev librust-env-logger-dev librust-equivalent-dev 243s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 243s librust-event-listener-dev librust-event-listener-strategy-dev 243s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 243s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 243s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 243s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 243s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 243s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 243s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 243s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 243s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 243s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 243s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 243s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 243s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 243s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 243s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 243s librust-libc-dev librust-libloading-dev librust-libm-dev 243s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 243s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 243s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 243s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 243s librust-num-bigint-dev librust-num-complex-dev librust-num-conv-dev 243s librust-num-cpus-dev librust-num-integer-dev librust-num-rational-dev 243s librust-num-threads-dev librust-num-traits-dev librust-object-dev 243s librust-once-cell-dev librust-oorandom-dev librust-owned-ttf-parser-dev 243s librust-owning-ref-dev librust-parking-dev librust-parking-lot-core-dev 243s librust-parking-lot-dev librust-parse-zoneinfo-dev 243s librust-pathfinder-geometry-dev librust-pathfinder-simd-dev 243s librust-phf+uncased-dev librust-phf-codegen-dev librust-phf-dev 243s librust-phf-generator-dev librust-phf-shared+uncased-dev 243s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 243s librust-pkg-config-dev librust-plotters-backend-dev 243s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 243s librust-png-dev librust-polling-dev librust-portable-atomic-dev 243s librust-postgres-derive-dev librust-postgres-protocol-dev 243s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 243s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 243s librust-ptr-meta-derive-dev librust-ptr-meta-dev 243s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 243s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 243s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 243s librust-quickcheck-dev librust-quote-dev librust-radium-dev 243s librust-rand-chacha-dev librust-rand-core+getrandom-dev 243s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 243s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 243s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 243s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 243s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 243s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 243s librust-rustc-version-dev librust-rustix-dev 243s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 243s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 243s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 243s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 243s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 243s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 243s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 243s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 243s librust-smol-str-dev librust-socket2-dev librust-spin-dev 243s librust-stable-deref-trait-dev librust-static-assertions-dev 243s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 243s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 243s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 243s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 243s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 243s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 243s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 243s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 243s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 243s librust-tokio-macros-dev librust-tracing-attributes-dev 243s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 243s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 243s librust-typenum-dev librust-unarray-dev librust-uncased-dev 243s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 243s librust-unicode-normalization-dev librust-unicode-segmentation-dev 243s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 243s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 243s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 243s librust-value-bag-sval2-dev librust-version-check-dev 243s librust-wait-timeout-dev librust-walkdir-dev 243s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 243s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 243s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 243s librust-wasm-bindgen-macro-support+spans-dev 243s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 243s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 243s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 243s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 243s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 243s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 243s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 243s libstdc++-14-dev libtool libubsan1 libwebp-dev libwebp7 libwebpdecoder3 243s libwebpdemux2 libwebpmux3 linux-libc-dev llvm llvm-19 llvm-19-linker-tools 243s llvm-19-runtime llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 243s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 243s python3-build python3-dateutil python3-hypothesis python3-iniconfig 243s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 243s python3-pytest python3-regex python3-semantic-version 243s python3-setuptools-rust python3-sortedcontainers python3-tiktoken 243s python3-toml python3-wheel python3.12-dev rpcsvc-proto rustc rustc-1.80 243s uuid-dev zlib1g-dev 243s 0 upgraded, 472 newly installed, 0 to remove and 0 not upgraded. 243s Need to get 247 MB/247 MB of archives. 243s After this operation, 960 MB of additional disk space will be used. 243s Get:1 /tmp/autopkgtest.EH2Jmp/1-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [860 B] 243s Get:2 http://ftpmaster.internal/ubuntu plucky/main armhf m4 armhf 1.4.19-4build1 [235 kB] 243s Get:3 http://ftpmaster.internal/ubuntu plucky/main armhf autoconf all 2.72-3 [382 kB] 243s Get:4 http://ftpmaster.internal/ubuntu plucky/main armhf autotools-dev all 20220109.1 [44.9 kB] 243s Get:5 http://ftpmaster.internal/ubuntu plucky/main armhf automake all 1:1.16.5-1.3ubuntu1 [558 kB] 243s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf autopoint all 0.22.5-2 [616 kB] 243s Get:7 http://ftpmaster.internal/ubuntu plucky/main armhf libc-dev-bin armhf 2.40-1ubuntu3 [19.2 kB] 243s Get:8 http://ftpmaster.internal/ubuntu plucky/main armhf linux-libc-dev armhf 6.11.0-8.8 [1628 kB] 244s Get:9 http://ftpmaster.internal/ubuntu plucky/main armhf libcrypt-dev armhf 1:4.4.36-5 [119 kB] 244s Get:10 http://ftpmaster.internal/ubuntu plucky/main armhf rpcsvc-proto armhf 1.4.2-0ubuntu7 [62.2 kB] 244s Get:11 http://ftpmaster.internal/ubuntu plucky/main armhf libc6-dev armhf 2.40-1ubuntu3 [1370 kB] 244s Get:12 http://ftpmaster.internal/ubuntu plucky/main armhf libisl23 armhf 0.27-1 [546 kB] 244s Get:13 http://ftpmaster.internal/ubuntu plucky/main armhf libmpc3 armhf 1.3.1-1build2 [47.1 kB] 244s Get:14 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-14-arm-linux-gnueabihf armhf 14.2.0-8ubuntu1 [9219 kB] 244s Get:15 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-14 armhf 14.2.0-8ubuntu1 [1032 B] 244s Get:16 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-arm-linux-gnueabihf armhf 4:14.1.0-2ubuntu1 [5464 B] 244s Get:17 http://ftpmaster.internal/ubuntu plucky/main armhf cpp armhf 4:14.1.0-2ubuntu1 [22.4 kB] 244s Get:18 http://ftpmaster.internal/ubuntu plucky/main armhf libcc1-0 armhf 14.2.0-8ubuntu1 [43.3 kB] 244s Get:19 http://ftpmaster.internal/ubuntu plucky/main armhf libgomp1 armhf 14.2.0-8ubuntu1 [125 kB] 244s Get:20 http://ftpmaster.internal/ubuntu plucky/main armhf libasan8 armhf 14.2.0-8ubuntu1 [2901 kB] 244s Get:21 http://ftpmaster.internal/ubuntu plucky/main armhf libubsan1 armhf 14.2.0-8ubuntu1 [1150 kB] 244s Get:22 http://ftpmaster.internal/ubuntu plucky/main armhf libgcc-14-dev armhf 14.2.0-8ubuntu1 [897 kB] 244s Get:23 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-14-arm-linux-gnueabihf armhf 14.2.0-8ubuntu1 [18.0 MB] 244s Get:24 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-14 armhf 14.2.0-8ubuntu1 [498 kB] 244s Get:25 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-arm-linux-gnueabihf armhf 4:14.1.0-2ubuntu1 [1222 B] 244s Get:26 http://ftpmaster.internal/ubuntu plucky/main armhf gcc armhf 4:14.1.0-2ubuntu1 [5002 B] 244s Get:27 http://ftpmaster.internal/ubuntu plucky/main armhf libstdc++-14-dev armhf 14.2.0-8ubuntu1 [2569 kB] 245s Get:28 http://ftpmaster.internal/ubuntu plucky/main armhf g++-14-arm-linux-gnueabihf armhf 14.2.0-8ubuntu1 [10.5 MB] 245s Get:29 http://ftpmaster.internal/ubuntu plucky/main armhf g++-14 armhf 14.2.0-8ubuntu1 [19.9 kB] 245s Get:30 http://ftpmaster.internal/ubuntu plucky/main armhf g++-arm-linux-gnueabihf armhf 4:14.1.0-2ubuntu1 [968 B] 245s Get:31 http://ftpmaster.internal/ubuntu plucky/main armhf g++ armhf 4:14.1.0-2ubuntu1 [1084 B] 245s Get:32 http://ftpmaster.internal/ubuntu plucky/main armhf build-essential armhf 12.10ubuntu1 [4928 B] 245s Get:33 http://ftpmaster.internal/ubuntu plucky/main armhf libhttp-parser2.9 armhf 2.9.4-6build1 [21.1 kB] 245s Get:34 http://ftpmaster.internal/ubuntu plucky/main armhf libgit2-1.7 armhf 1.7.2+ds-1ubuntu3 [444 kB] 245s Get:35 http://ftpmaster.internal/ubuntu plucky/main armhf libllvm18 armhf 1:18.1.8-12 [26.6 MB] 245s Get:36 http://ftpmaster.internal/ubuntu plucky/main armhf libstd-rust-1.80 armhf 1.80.1+dfsg0ubuntu1-0ubuntu1 [19.7 MB] 246s Get:37 http://ftpmaster.internal/ubuntu plucky/main armhf libstd-rust-1.80-dev armhf 1.80.1+dfsg0ubuntu1-0ubuntu1 [39.9 MB] 247s Get:38 http://ftpmaster.internal/ubuntu plucky/main armhf rustc-1.80 armhf 1.80.1+dfsg0ubuntu1-0ubuntu1 [3081 kB] 247s Get:39 http://ftpmaster.internal/ubuntu plucky/main armhf cargo-1.80 armhf 1.80.1+dfsg0ubuntu1-0ubuntu1 [5646 kB] 247s Get:40 http://ftpmaster.internal/ubuntu plucky/main armhf libjsoncpp25 armhf 1.9.5-6build1 [75.3 kB] 247s Get:41 http://ftpmaster.internal/ubuntu plucky/main armhf librhash0 armhf 1.4.3-3build1 [143 kB] 247s Get:42 http://ftpmaster.internal/ubuntu plucky/main armhf cmake-data all 3.30.3-1 [2246 kB] 247s Get:43 http://ftpmaster.internal/ubuntu plucky/main armhf cmake armhf 3.30.3-1 [6319 kB] 247s Get:44 http://ftpmaster.internal/ubuntu plucky/main armhf libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 247s Get:45 http://ftpmaster.internal/ubuntu plucky/main armhf libtool all 2.4.7-8 [166 kB] 247s Get:46 http://ftpmaster.internal/ubuntu plucky/main armhf dh-autoreconf all 20 [16.1 kB] 247s Get:47 http://ftpmaster.internal/ubuntu plucky/main armhf libarchive-zip-perl all 1.68-1 [90.2 kB] 247s Get:48 http://ftpmaster.internal/ubuntu plucky/main armhf libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 247s Get:49 http://ftpmaster.internal/ubuntu plucky/main armhf dh-strip-nondeterminism all 1.14.0-1 [5058 B] 247s Get:50 http://ftpmaster.internal/ubuntu plucky/main armhf debugedit armhf 1:5.1-1 [46.5 kB] 247s Get:51 http://ftpmaster.internal/ubuntu plucky/main armhf dwz armhf 0.15-1build6 [116 kB] 247s Get:52 http://ftpmaster.internal/ubuntu plucky/main armhf gettext armhf 0.22.5-2 [995 kB] 247s Get:53 http://ftpmaster.internal/ubuntu plucky/main armhf intltool-debian all 0.35.0+20060710.6 [23.2 kB] 247s Get:54 http://ftpmaster.internal/ubuntu plucky/main armhf po-debconf all 1.0.21+nmu1 [233 kB] 247s Get:55 http://ftpmaster.internal/ubuntu plucky/main armhf debhelper all 13.20ubuntu1 [893 kB] 247s Get:56 http://ftpmaster.internal/ubuntu plucky/universe armhf dh-python all 6.20241024 [112 kB] 247s Get:57 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-dejavu-mono all 2.37-8 [502 kB] 247s Get:58 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-dejavu-core all 2.37-8 [835 kB] 247s Get:59 http://ftpmaster.internal/ubuntu plucky/main armhf fontconfig-config armhf 2.15.0-1.1ubuntu2 [37.4 kB] 247s Get:60 http://ftpmaster.internal/ubuntu plucky/main armhf libbrotli-dev armhf 1.1.0-2build3 [337 kB] 247s Get:61 http://ftpmaster.internal/ubuntu plucky/main armhf libbz2-dev armhf 1.0.8-6 [30.9 kB] 247s Get:62 http://ftpmaster.internal/ubuntu plucky/main armhf libexpat1-dev armhf 2.6.4-1 [121 kB] 247s Get:63 http://ftpmaster.internal/ubuntu plucky/main armhf libfreetype6 armhf 2.13.3+dfsg-1 [330 kB] 247s Get:64 http://ftpmaster.internal/ubuntu plucky/main armhf libfontconfig1 armhf 2.15.0-1.1ubuntu2 [113 kB] 247s Get:65 http://ftpmaster.internal/ubuntu plucky/main armhf zlib1g-dev armhf 1:1.3.dfsg+really1.3.1-1ubuntu1 [880 kB] 247s Get:66 http://ftpmaster.internal/ubuntu plucky/main armhf libpng-dev armhf 1.6.44-2 [252 kB] 247s Get:67 http://ftpmaster.internal/ubuntu plucky/main armhf libfreetype-dev armhf 2.13.3+dfsg-1 [509 kB] 247s Get:68 http://ftpmaster.internal/ubuntu plucky/main armhf uuid-dev armhf 2.40.2-1ubuntu1 [51.0 kB] 247s Get:69 http://ftpmaster.internal/ubuntu plucky/main armhf libpkgconf3 armhf 1.8.1-4 [26.6 kB] 247s Get:70 http://ftpmaster.internal/ubuntu plucky/main armhf pkgconf-bin armhf 1.8.1-4 [21.2 kB] 247s Get:71 http://ftpmaster.internal/ubuntu plucky/main armhf pkgconf armhf 1.8.1-4 [16.8 kB] 247s Get:72 http://ftpmaster.internal/ubuntu plucky/main armhf libfontconfig-dev armhf 2.15.0-1.1ubuntu2 [143 kB] 248s Get:73 http://ftpmaster.internal/ubuntu plucky/main armhf libllvm19 armhf 1:19.1.2-1ubuntu1 [27.8 MB] 248s Get:74 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3.12t64 armhf 3.12.7-3 [2075 kB] 248s Get:75 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3.12-dev armhf 3.12.7-3 [4344 kB] 248s Get:76 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3-dev armhf 3.12.6-0ubuntu1 [10.2 kB] 248s Get:77 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3-all-dev armhf 3.12.6-0ubuntu1 [914 B] 248s Get:78 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ab-glyph-rasterizer-dev armhf 0.1.7-1 [12.2 kB] 248s Get:79 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-libm-dev armhf 0.2.8-1 [101 kB] 248s Get:80 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ab-glyph-rasterizer+libm-dev armhf 0.1.7-1 [1062 B] 248s Get:81 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-core-maths-dev armhf 0.1.0-2 [7944 B] 248s Get:82 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ttf-parser-dev armhf 0.24.1-1 [148 kB] 248s Get:83 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-owned-ttf-parser-dev armhf 0.24.0-1 [129 kB] 248s Get:84 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ab-glyph-dev armhf 0.2.28-1 [20.7 kB] 248s Get:85 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cfg-if-dev armhf 1.0.0-1 [10.5 kB] 248s Get:86 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cpp-demangle-dev armhf 0.4.0-1 [66.1 kB] 248s Get:87 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-fallible-iterator-dev armhf 0.3.0-2 [20.3 kB] 248s Get:88 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicode-ident-dev armhf 1.0.13-1 [38.5 kB] 248s Get:89 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-proc-macro2-dev armhf 1.0.86-1 [44.8 kB] 248s Get:90 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-quote-dev armhf 1.0.37-1 [29.5 kB] 248s Get:91 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-syn-dev armhf 2.0.85-1 [219 kB] 248s Get:92 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-derive-arbitrary-dev armhf 1.3.2-1 [12.3 kB] 248s Get:93 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-arbitrary-dev armhf 1.3.2-1 [31.4 kB] 248s Get:94 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-equivalent-dev armhf 1.0.1-1 [8240 B] 248s Get:95 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-critical-section-dev armhf 1.1.3-1 [20.5 kB] 248s Get:96 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-serde-derive-dev armhf 1.0.210-1 [50.1 kB] 248s Get:97 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-serde-dev armhf 1.0.210-2 [66.4 kB] 248s Get:98 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-portable-atomic-dev armhf 1.9.0-4 [124 kB] 248s Get:99 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rustc-std-workspace-core-dev armhf 1.0.0-1 [3020 B] 248s Get:100 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-libc-dev armhf 0.2.161-1 [379 kB] 248s Get:101 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-getrandom-dev armhf 0.2.12-1 [36.4 kB] 248s Get:102 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-smallvec-dev armhf 1.13.2-1 [35.5 kB] 249s Get:103 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-parking-lot-core-dev armhf 0.9.10-1 [32.6 kB] 249s Get:104 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-once-cell-dev armhf 1.20.2-1 [31.9 kB] 249s Get:105 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crunchy-dev armhf 0.2.2-1 [5336 B] 249s Get:106 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tiny-keccak-dev armhf 2.0.2-1 [20.9 kB] 249s Get:107 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-const-random-macro-dev armhf 0.1.16-2 [10.5 kB] 249s Get:108 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-const-random-dev armhf 0.1.17-2 [8588 B] 249s Get:109 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-version-check-dev armhf 0.9.5-1 [16.9 kB] 249s Get:110 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-byteorder-dev armhf 1.5.0-1 [22.4 kB] 249s Get:111 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-zerocopy-derive-dev armhf 0.7.32-2 [29.7 kB] 249s Get:112 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-zerocopy-dev armhf 0.7.32-1 [116 kB] 249s Get:113 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ahash-dev all 0.8.11-8 [37.9 kB] 249s Get:114 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-allocator-api2-dev armhf 0.2.16-1 [54.8 kB] 249s Get:115 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-compiler-builtins-dev armhf 0.1.101-1 [156 kB] 249s Get:116 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-either-dev armhf 1.13.0-1 [20.2 kB] 249s Get:117 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crossbeam-utils-dev armhf 0.8.19-1 [41.1 kB] 249s Get:118 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crossbeam-epoch-dev armhf 0.9.18-1 [42.3 kB] 249s Get:119 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crossbeam-epoch+std-dev armhf 0.9.18-1 [1128 B] 249s Get:120 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crossbeam-deque-dev armhf 0.8.5-1 [22.4 kB] 249s Get:121 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rayon-core-dev armhf 1.12.1-1 [63.7 kB] 249s Get:122 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rayon-dev armhf 1.10.0-1 [149 kB] 249s Get:123 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-hashbrown-dev armhf 0.14.5-5 [110 kB] 249s Get:124 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-indexmap-dev armhf 2.2.6-1 [66.7 kB] 249s Get:125 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-stable-deref-trait-dev armhf 1.2.0-1 [9794 B] 249s Get:126 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-gimli-dev armhf 0.28.1-2 [209 kB] 249s Get:127 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-memmap2-dev armhf 0.9.3-1 [30.8 kB] 249s Get:128 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crc32fast-dev armhf 1.4.2-1 [39.8 kB] 249s Get:129 http://ftpmaster.internal/ubuntu plucky/main armhf pkg-config armhf 1.8.1-4 [7362 B] 249s Get:130 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pkg-config-dev armhf 0.3.27-1 [21.5 kB] 249s Get:131 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-libz-sys-dev armhf 1.1.20-1 [19.8 kB] 249s Get:132 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-adler-dev armhf 1.0.2-2 [15.3 kB] 249s Get:133 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-miniz-oxide-dev armhf 0.7.1-1 [51.5 kB] 249s Get:134 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-flate2-dev armhf 1.0.34-1 [94.5 kB] 249s Get:135 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-derive-dev armhf 2.6.1-2 [11.0 kB] 249s Get:136 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-dev armhf 2.6.1-2 [28.0 kB] 249s Get:137 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-ref-dev armhf 2.6.1-1 [8936 B] 249s Get:138 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-erased-serde-dev armhf 0.3.31-1 [22.7 kB] 249s Get:139 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-serde-fmt-dev all 1.0.3-3 [6956 B] 249s Get:140 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-syn-1-dev armhf 1.0.109-2 [188 kB] 249s Get:141 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-no-panic-dev armhf 0.1.13-1 [11.3 kB] 249s Get:142 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-itoa-dev armhf 1.0.9-1 [13.1 kB] 249s Get:143 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ryu-dev armhf 1.0.15-1 [41.7 kB] 249s Get:144 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-serde-json-dev armhf 1.0.128-1 [128 kB] 249s Get:145 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-serde-test-dev armhf 1.0.171-1 [20.6 kB] 249s Get:146 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-value-bag-serde1-dev armhf 1.9.0-1 [7820 B] 249s Get:147 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-buffer-dev armhf 2.6.1-1 [16.8 kB] 249s Get:148 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-dynamic-dev armhf 2.6.1-1 [9542 B] 249s Get:149 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-fmt-dev armhf 2.6.1-1 [12.0 kB] 249s Get:150 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sval-serde-dev armhf 2.6.1-1 [13.2 kB] 249s Get:151 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-value-bag-sval2-dev armhf 1.9.0-1 [7862 B] 249s Get:152 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-value-bag-dev armhf 1.9.0-1 [37.6 kB] 249s Get:153 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-log-dev armhf 0.4.22-1 [43.0 kB] 249s Get:154 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-memchr-dev armhf 2.7.4-1 [71.8 kB] 249s Get:155 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ppv-lite86-dev armhf 0.2.16-1 [21.9 kB] 249s Get:156 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-core-dev armhf 0.6.4-2 [23.8 kB] 249s Get:157 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-chacha-dev armhf 0.3.1-2 [16.9 kB] 249s Get:158 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-core+getrandom-dev armhf 0.6.4-2 [1052 B] 249s Get:159 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-core+serde-dev armhf 0.6.4-2 [1108 B] 249s Get:160 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-core+std-dev armhf 0.6.4-2 [1052 B] 249s Get:161 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-dev armhf 0.8.5-1 [77.5 kB] 249s Get:162 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicode-segmentation-dev armhf 1.11.0-1 [74.2 kB] 250s Get:163 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-convert-case-dev armhf 0.6.0-2 [19.4 kB] 250s Get:164 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-semver-dev armhf 1.0.23-1 [30.6 kB] 250s Get:165 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rustc-version-dev armhf 0.4.0-1 [13.8 kB] 250s Get:166 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-derive-more-dev armhf 0.99.17-1 [50.0 kB] 250s Get:167 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cfg-if-0.1-dev armhf 0.1.10-2 [10.2 kB] 250s Get:168 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-blobby-dev armhf 0.3.1-1 [11.3 kB] 250s Get:169 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-typenum-dev armhf 1.17.0-2 [41.2 kB] 250s Get:170 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-zeroize-derive-dev armhf 1.4.2-1 [12.7 kB] 250s Get:171 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-zeroize-dev armhf 1.8.1-1 [21.6 kB] 250s Get:172 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-generic-array-dev armhf 0.14.7-1 [16.9 kB] 250s Get:173 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-block-buffer-dev armhf 0.10.2-2 [12.2 kB] 250s Get:174 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-const-oid-dev armhf 0.9.3-1 [40.9 kB] 250s Get:175 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-crypto-common-dev armhf 0.1.6-1 [10.5 kB] 250s Get:176 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-subtle-dev armhf 2.6.1-1 [16.1 kB] 250s Get:177 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-digest-dev armhf 0.10.7-2 [20.9 kB] 250s Get:178 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-static-assertions-dev armhf 1.1.0-1 [19.0 kB] 250s Get:179 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-twox-hash-dev armhf 1.6.3-1 [21.6 kB] 250s Get:180 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ruzstd-dev armhf 0.5.0-1 [44.6 kB] 250s Get:181 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-object-dev armhf 0.32.2-1 [228 kB] 250s Get:182 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rustc-demangle-dev armhf 0.1.21-1 [27.7 kB] 250s Get:183 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-addr2line-dev armhf 0.21.0-2 [36.4 kB] 250s Get:184 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-aho-corasick-dev armhf 1.1.3-1 [146 kB] 250s Get:185 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bitflags-1-dev armhf 1.3.2-5 [25.3 kB] 250s Get:186 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anes-dev armhf 0.1.6-1 [21.1 kB] 250s Get:187 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anstyle-dev armhf 1.0.8-1 [16.7 kB] 250s Get:188 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-arrayvec-dev armhf 0.7.4-2 [29.9 kB] 250s Get:189 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-utf8parse-dev armhf 0.2.1-1 [15.0 kB] 250s Get:190 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anstyle-parse-dev armhf 0.2.1-1 [17.1 kB] 250s Get:191 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anstyle-query-dev armhf 1.0.0-1 [9768 B] 250s Get:192 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-colorchoice-dev armhf 1.0.0-1 [8336 B] 250s Get:193 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anstream-dev armhf 0.6.15-1 [25.7 kB] 250s Get:194 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-jobserver-dev armhf 0.1.32-1 [29.1 kB] 250s Get:195 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-shlex-dev armhf 1.3.0-1 [20.1 kB] 250s Get:196 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cc-dev armhf 1.1.14-1 [73.6 kB] 250s Get:197 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-backtrace-dev armhf 0.3.69-2 [69.9 kB] 250s Get:198 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-anyhow-dev armhf 1.0.86-1 [44.3 kB] 250s Get:199 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bytecheck-derive-dev armhf 0.6.12-1 [7086 B] 250s Get:200 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ptr-meta-derive-dev armhf 0.1.4-1 [3964 B] 250s Get:201 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ptr-meta-dev armhf 0.1.4-1 [7342 B] 250s Get:202 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-simdutf8-dev armhf 0.1.4-4 [27.2 kB] 250s Get:203 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bytemuck-derive-dev armhf 1.5.0-2 [18.7 kB] 250s Get:204 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bytemuck-dev armhf 1.14.0-1 [42.7 kB] 250s Get:205 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-atomic-dev armhf 0.6.0-1 [15.5 kB] 250s Get:206 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-md5-asm-dev armhf 0.5.0-2 [7512 B] 250s Get:207 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-md-5-dev armhf 0.10.6-1 [17.5 kB] 250s Get:208 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cpufeatures-dev armhf 0.2.11-1 [14.9 kB] 251s Get:209 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sha1-asm-dev armhf 0.5.1-2 [8058 B] 251s Get:210 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sha1-dev armhf 0.10.6-1 [16.0 kB] 251s Get:211 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-slog-dev armhf 2.7.0-1 [44.0 kB] 251s Get:212 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-uuid-dev armhf 1.10.0-1 [44.2 kB] 251s Get:213 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bytecheck-dev armhf 0.6.12-1 [10.2 kB] 251s Get:214 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-autocfg-dev armhf 1.1.0-1 [15.1 kB] 251s Get:215 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-traits-dev armhf 0.2.19-2 [46.2 kB] 251s Get:216 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-funty-dev armhf 2.0.0-1 [13.8 kB] 251s Get:217 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-radium-dev armhf 1.1.0-1 [14.9 kB] 251s Get:218 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tap-dev armhf 1.0.1-1 [12.7 kB] 251s Get:219 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-traitobject-dev armhf 0.1.0-1 [4540 B] 251s Get:220 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unsafe-any-dev armhf 0.4.2-2 [4622 B] 251s Get:221 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-typemap-dev armhf 0.3.3-2 [6724 B] 251s Get:222 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wyz-dev armhf 0.5.1-1 [19.7 kB] 251s Get:223 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bitvec-dev armhf 1.0.1-1 [179 kB] 251s Get:224 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bytes-dev armhf 1.8.0-1 [56.9 kB] 251s Get:225 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rend-dev armhf 0.4.0-1 [10.3 kB] 251s Get:226 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rkyv-derive-dev armhf 0.7.44-1 [17.5 kB] 251s Get:227 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-seahash-dev armhf 4.1.0-1 [25.1 kB] 251s Get:228 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-smol-str-dev armhf 0.2.0-1 [15.2 kB] 251s Get:229 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tinyvec-dev armhf 1.6.0-2 [37.7 kB] 251s Get:230 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tinyvec-macros-dev armhf 0.1.0-1 [3852 B] 251s Get:231 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tinyvec+tinyvec-macros-dev armhf 1.6.0-2 [1124 B] 251s Get:232 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rkyv-dev armhf 0.7.44-1 [94.4 kB] 251s Get:233 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-complex-dev armhf 0.4.6-2 [30.8 kB] 251s Get:234 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-approx-dev armhf 0.5.1-1 [16.0 kB] 251s Get:235 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-array-init-dev armhf 2.0.1-1 [12.3 kB] 251s Get:236 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-attributes-dev all 1.1.2-6 [6756 B] 251s Get:237 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-concurrent-queue-dev armhf 2.5.0-4 [23.9 kB] 251s Get:238 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-parking-dev armhf 2.2.0-1 [11.6 kB] 251s Get:239 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pin-project-lite-dev armhf 0.2.13-1 [30.2 kB] 251s Get:240 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-event-listener-dev all 5.3.1-8 [29.6 kB] 251s Get:241 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-event-listener-strategy-dev armhf 0.5.2-3 [12.6 kB] 251s Get:242 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-core-dev armhf 0.3.30-1 [16.7 kB] 251s Get:243 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-channel-dev all 2.3.1-8 [13.1 kB] 251s Get:244 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-task-dev all 4.7.1-3 [29.4 kB] 251s Get:245 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-fastrand-dev armhf 2.1.1-1 [17.8 kB] 251s Get:246 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-io-dev armhf 0.3.31-1 [11.2 kB] 251s Get:247 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-lite-dev armhf 2.3.0-2 [38.6 kB] 251s Get:248 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-slab-dev armhf 0.4.9-1 [21.2 kB] 251s Get:249 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-executor-dev all 1.13.1-1 [18.7 kB] 251s Get:250 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-lock-dev all 3.4.0-4 [29.3 kB] 251s Get:251 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-atomic-waker-dev armhf 1.1.2-1 [14.3 kB] 251s Get:252 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tracing-attributes-dev armhf 0.1.27-1 [33.3 kB] 251s Get:253 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-valuable-derive-dev armhf 0.1.0-1 [5942 B] 251s Get:254 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-valuable-dev armhf 0.1.0-4 [23.5 kB] 251s Get:255 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tracing-core-dev armhf 0.1.32-1 [53.8 kB] 251s Get:256 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tracing-dev armhf 0.1.40-1 [69.5 kB] 251s Get:257 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-blocking-dev all 1.6.1-5 [17.5 kB] 251s Get:258 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-fs-dev all 2.1.2-4 [15.3 kB] 251s Get:259 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bitflags-dev armhf 2.6.0-1 [41.1 kB] 251s Get:260 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-compiler-builtins+core-dev armhf 0.1.101-1 [1090 B] 251s Get:261 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-compiler-builtins+rustc-dep-of-std-dev armhf 0.1.101-1 [1104 B] 251s Get:262 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-errno-dev armhf 0.3.8-1 [13.0 kB] 251s Get:263 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-linux-raw-sys-dev armhf 0.4.14-1 [138 kB] 251s Get:264 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rustix-dev armhf 0.38.32-1 [274 kB] 251s Get:265 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-polling-dev armhf 3.4.0-1 [47.8 kB] 251s Get:266 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-io-dev armhf 2.3.3-4 [41.0 kB] 251s Get:267 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-mio-dev armhf 1.0.2-2 [87.6 kB] 251s Get:268 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-owning-ref-dev armhf 0.4.1-1 [13.7 kB] 251s Get:269 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-scopeguard-dev armhf 1.2.0-1 [13.3 kB] 251s Get:270 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-lock-api-dev armhf 0.4.12-1 [22.9 kB] 251s Get:271 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-parking-lot-dev armhf 0.12.3-1 [38.7 kB] 251s Get:272 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-signal-hook-registry-dev armhf 1.4.0-1 [19.2 kB] 251s Get:273 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-socket2-dev armhf 0.5.7-1 [48.3 kB] 251s Get:274 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tokio-macros-dev armhf 2.4.0-2 [14.0 kB] 251s Get:275 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tokio-dev armhf 1.39.3-3 [561 kB] 252s Get:276 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-global-executor-dev armhf 2.4.1-5 [14.6 kB] 252s Get:277 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-net-dev all 2.0.0-4 [14.6 kB] 252s Get:278 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-signal-dev armhf 0.2.10-1 [16.0 kB] 252s Get:279 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-process-dev all 2.3.0-1 [21.2 kB] 252s Get:280 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-kv-log-macro-dev all 1.0.8-4 [7290 B] 252s Get:281 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pin-utils-dev armhf 0.1.0-1 [9340 B] 252s Get:282 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-async-std-dev all 1.13.0-1 [170 kB] 252s Get:283 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-base64-dev armhf 0.21.7-1 [65.1 kB] 252s Get:284 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bit-vec-dev armhf 0.6.3-1 [21.1 kB] 252s Get:285 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bit-set-dev armhf 0.5.2-1 [15.7 kB] 252s Get:286 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bit-set+std-dev armhf 0.5.2-1 [1084 B] 252s Get:287 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-regex-syntax-dev armhf 0.8.2-1 [200 kB] 252s Get:288 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-regex-automata-dev armhf 0.4.7-1 [424 kB] 252s Get:289 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bstr-dev armhf 1.7.0-2build1 [271 kB] 252s Get:290 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-bumpalo-dev armhf 3.16.0-1 [75.7 kB] 252s Get:291 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cast-dev armhf 0.3.0-1 [13.1 kB] 252s Get:292 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-iana-time-zone-dev armhf 0.1.60-1 [25.1 kB] 252s Get:293 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-shared-dev armhf 0.2.87-1 [9090 B] 252s Get:294 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-backend-dev armhf 0.2.87-1 [27.0 kB] 252s Get:295 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-macro-support-dev armhf 0.2.87-1 [21.2 kB] 252s Get:296 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-macro-dev armhf 0.2.87-1 [16.6 kB] 252s Get:297 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-dev armhf 0.2.87-1 [157 kB] 252s Get:298 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-macro-support+spans-dev armhf 0.2.87-1 [1074 B] 252s Get:299 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen-macro+spans-dev armhf 0.2.87-1 [1058 B] 252s Get:300 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen+spans-dev armhf 0.2.87-1 [1038 B] 252s Get:301 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wasm-bindgen+default-dev armhf 0.2.87-1 [1046 B] 252s Get:302 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-js-sys-dev armhf 0.3.64-1 [71.9 kB] 252s Get:303 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pure-rust-locales-dev armhf 0.8.1-1 [112 kB] 252s Get:304 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-chrono-dev armhf 0.4.38-2 [172 kB] 252s Get:305 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-regex-dev armhf 1.10.6-1 [199 kB] 252s Get:306 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-parse-zoneinfo-dev armhf 0.3.0-1 [71.0 kB] 252s Get:307 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-siphasher-dev armhf 0.3.10-1 [12.0 kB] 252s Get:308 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf-shared-dev armhf 0.11.2-1 [15.6 kB] 252s Get:309 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf-dev armhf 0.11.2-1 [21.6 kB] 252s Get:310 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-uncased-dev armhf 0.9.6-2 [12.2 kB] 252s Get:311 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf-shared+uncased-dev armhf 0.11.2-1 [1028 B] 252s Get:312 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf+uncased-dev armhf 0.11.2-1 [1028 B] 252s Get:313 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ciborium-io-dev armhf 0.2.2-1 [8178 B] 252s Get:314 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-half-dev armhf 1.8.2-4 [34.8 kB] 252s Get:315 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ciborium-ll-dev armhf 0.2.2-1 [15.8 kB] 252s Get:316 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ciborium-dev armhf 0.2.2-2 [32.6 kB] 252s Get:317 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-clap-lex-dev armhf 0.7.2-2 [14.3 kB] 252s Get:318 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-strsim-dev armhf 0.11.1-1 [15.9 kB] 252s Get:319 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-terminal-size-dev armhf 0.3.0-2 [12.6 kB] 252s Get:320 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicase-dev armhf 2.7.0-1 [19.4 kB] 252s Get:321 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicode-width-dev armhf 0.1.14-1 [196 kB] 252s Get:322 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-clap-builder-dev armhf 4.5.15-2 [135 kB] 252s Get:323 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-heck-dev armhf 0.4.1-1 [13.3 kB] 252s Get:324 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-clap-derive-dev armhf 4.5.13-2 [29.3 kB] 253s Get:325 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-clap-dev armhf 4.5.16-1 [52.3 kB] 253s Get:326 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-csv-core-dev armhf 0.1.11-1 [25.9 kB] 253s Get:327 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-csv-dev armhf 1.3.0-1 [729 kB] 253s Get:328 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-sink-dev armhf 0.3.31-1 [10.1 kB] 253s Get:329 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-channel-dev armhf 0.3.30-1 [31.8 kB] 253s Get:330 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-task-dev armhf 0.3.30-1 [13.5 kB] 253s Get:331 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-macro-dev armhf 0.3.30-1 [13.3 kB] 253s Get:332 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-util-dev armhf 0.3.30-2 [127 kB] 253s Get:333 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-cpus-dev armhf 1.16.0-1 [18.1 kB] 253s Get:334 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-executor-dev armhf 0.3.30-1 [19.8 kB] 253s Get:335 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-futures-dev armhf 0.3.30-2 [53.2 kB] 253s Get:336 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-is-terminal-dev armhf 0.4.13-1 [8264 B] 253s Get:337 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-itertools-dev armhf 0.10.5-1 [101 kB] 253s Get:338 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-oorandom-dev armhf 11.1.3-1 [11.3 kB] 253s Get:339 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-winapi-i686-pc-windows-gnu-dev armhf 0.4.0-1 [3652 B] 253s Get:340 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-winapi-x86-64-pc-windows-gnu-dev armhf 0.4.0-1 [3660 B] 253s Get:341 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-winapi-dev armhf 0.3.9-1 [953 kB] 253s Get:342 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-dirs-sys-next-dev armhf 0.1.1-1 [12.1 kB] 253s Get:343 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-dirs-next-dev armhf 2.0.0-1 [13.1 kB] 253s Get:344 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-float-ord-dev armhf 0.3.2-1 [9400 B] 253s Get:345 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-cmake-dev armhf 0.1.45-1 [16.0 kB] 253s Get:346 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-freetype-sys-dev armhf 0.13.1-1 [11.8 kB] 253s Get:347 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-freetype-dev armhf 0.7.0-4 [20.4 kB] 253s Get:348 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-spin-dev armhf 0.9.8-4 [33.4 kB] 253s Get:349 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-lazy-static-dev armhf 1.5.0-1 [14.2 kB] 253s Get:350 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pathfinder-simd-dev armhf 0.5.2-1 [20.1 kB] 253s Get:351 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pathfinder-geometry-dev armhf 0.5.1-1 [13.2 kB] 253s Get:352 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-winapi-util-dev armhf 0.1.6-1 [14.0 kB] 253s Get:353 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-same-file-dev armhf 1.0.6-1 [11.5 kB] 253s Get:354 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-walkdir-dev armhf 2.5.0-1 [24.5 kB] 253s Get:355 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-const-cstr-dev armhf 0.3.0-1 [9070 B] 253s Get:356 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-libloading-dev armhf 0.8.5-1 [29.2 kB] 253s Get:357 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-dlib-dev armhf 0.5.2-2 [7970 B] 253s Get:358 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-yeslogic-fontconfig-sys-dev armhf 3.0.1-1 [8110 B] 253s Get:359 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-font-kit-dev armhf 0.11.0-2 [56.2 kB] 253s Get:360 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-color-quant-dev armhf 1.1.0-1 [8462 B] 253s Get:361 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-weezl-dev armhf 0.1.5-1 [30.3 kB] 253s Get:362 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-gif-dev armhf 0.11.3-1 [31.9 kB] 253s Get:363 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-jpeg-decoder-dev armhf 0.3.0-1 [717 kB] 253s Get:364 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-integer-dev armhf 0.1.46-1 [22.6 kB] 253s Get:365 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-humantime-dev armhf 2.1.0-1 [18.2 kB] 253s Get:366 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-termcolor-dev armhf 1.4.1-1 [19.7 kB] 253s Get:367 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-env-logger-dev armhf 0.10.2-2 [34.4 kB] 253s Get:368 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-quickcheck-dev armhf 1.0.3-3 [27.9 kB] 253s Get:369 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-bigint-dev armhf 0.4.6-1 [84.9 kB] 253s Get:370 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-rational-dev armhf 0.4.2-1 [28.7 kB] 253s Get:371 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-png-dev armhf 0.17.7-3 [63.4 kB] 253s Get:372 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-qoi-dev armhf 0.4.1-2 [56.7 kB] 253s Get:373 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tiff-dev armhf 0.9.0-1 [1413 kB] 253s Get:374 http://ftpmaster.internal/ubuntu plucky/main armhf libsharpyuv0 armhf 1.4.0-0.1 [16.3 kB] 253s Get:375 http://ftpmaster.internal/ubuntu plucky/main armhf libwebp7 armhf 1.4.0-0.1 [184 kB] 253s Get:376 http://ftpmaster.internal/ubuntu plucky/main armhf libwebpdemux2 armhf 1.4.0-0.1 [11.8 kB] 253s Get:377 http://ftpmaster.internal/ubuntu plucky/main armhf libwebpmux3 armhf 1.4.0-0.1 [22.5 kB] 253s Get:378 http://ftpmaster.internal/ubuntu plucky/main armhf libwebpdecoder3 armhf 1.4.0-0.1 [93.8 kB] 253s Get:379 http://ftpmaster.internal/ubuntu plucky/main armhf libsharpyuv-dev armhf 1.4.0-0.1 [16.8 kB] 253s Get:380 http://ftpmaster.internal/ubuntu plucky/main armhf libwebp-dev armhf 1.4.0-0.1 [316 kB] 253s Get:381 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-libwebp-sys-dev armhf 0.9.5-1build1 [1357 kB] 253s Get:382 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-webp-dev armhf 0.2.6-1 [1846 kB] 253s Get:383 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-image-dev armhf 0.24.7-2 [229 kB] 253s Get:384 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-plotters-backend-dev armhf 0.3.7-1 [15.7 kB] 253s Get:385 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-plotters-bitmap-dev armhf 0.3.3-3 [17.1 kB] 253s Get:386 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-plotters-svg-dev armhf 0.3.5-1 [9258 B] 253s Get:387 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-web-sys-dev armhf 0.3.64-2 [581 kB] 253s Get:388 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-plotters-dev armhf 0.3.5-4 [118 kB] 253s Get:389 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-smol-dev all 2.0.2-1 [205 kB] 253s Get:390 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tinytemplate-dev armhf 1.2.1-1 [26.8 kB] 253s Get:391 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-criterion-dev all 0.5.1-6 [104 kB] 254s Get:392 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf-generator-dev armhf 0.11.2-2 [12.3 kB] 254s Get:393 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-phf-codegen-dev armhf 0.11.2-1 [14.3 kB] 254s Get:394 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-chrono-tz-build-dev armhf 0.2.1-1 [12.1 kB] 254s Get:395 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-chrono-tz-dev armhf 0.8.6-2 [513 kB] 254s Get:396 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ctor-dev armhf 0.1.26-1 [12.0 kB] 254s Get:397 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-powerfmt-macros-dev armhf 0.1.0-1 [10.5 kB] 254s Get:398 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-powerfmt-dev armhf 0.2.0-1 [16.5 kB] 254s Get:399 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-deranged-dev armhf 0.3.11-1 [18.4 kB] 254s Get:400 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-eui48-dev armhf 1.1.0-2 [16.1 kB] 254s Get:401 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-indenter-dev armhf 0.3.3-1 [8646 B] 254s Get:402 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-eyre-dev armhf 0.6.12-1 [38.0 kB] 254s Get:403 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-eyre+default-dev armhf 0.6.12-1 [1050 B] 254s Get:404 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-fancy-regex-dev armhf 0.11.0-2 [54.7 kB] 254s Get:405 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-fnv-dev armhf 1.0.7-1 [12.8 kB] 254s Get:406 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-geo-types-dev armhf 0.7.11-2 [32.8 kB] 254s Get:407 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-ghost-dev armhf 0.1.5-1 [16.1 kB] 254s Get:408 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-hmac-dev armhf 0.12.1-1 [43.9 kB] 254s Get:409 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-indoc-dev armhf 2.0.5-1 [16.7 kB] 254s Get:410 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-inventory-dev armhf 0.3.2-1 [13.5 kB] 254s Get:411 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-memoffset-dev armhf 0.8.0-1 [10.9 kB] 254s Get:412 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-conv-dev armhf 0.1.0-1 [8990 B] 254s Get:413 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-num-threads-dev armhf 0.1.7-1 [9152 B] 254s Get:414 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-postgres-derive-dev armhf 0.4.5-1 [13.4 kB] 254s Get:415 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sha2-asm-dev armhf 0.6.2-2 [14.4 kB] 254s Get:416 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-sha2-dev armhf 0.10.8-1 [25.6 kB] 254s Get:417 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicode-bidi-dev armhf 0.3.13-1 [39.8 kB] 254s Get:418 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unicode-normalization-dev armhf 0.1.22-1 [104 kB] 254s Get:419 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-stringprep-dev armhf 0.1.2-1 [16.5 kB] 254s Get:420 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-postgres-protocol-dev armhf 0.6.6-2 [25.9 kB] 254s Get:421 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-time-core-dev armhf 0.1.2-1 [9134 B] 254s Get:422 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-time-macros-dev armhf 0.2.16-1 [25.1 kB] 254s Get:423 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-time-dev armhf 0.3.36-2 [99.4 kB] 254s Get:424 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-postgres-types-dev armhf 0.2.6-2 [30.1 kB] 254s Get:425 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rand-xorshift-dev armhf 0.3.0-2 [10.9 kB] 254s Get:426 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-quick-error-dev armhf 2.0.1-1 [15.6 kB] 254s Get:427 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-tempfile-dev armhf 3.10.1-1 [33.7 kB] 254s Get:428 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rusty-fork-dev armhf 0.3.0-1 [20.4 kB] 254s Get:429 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-wait-timeout-dev armhf 0.2.0-1 [14.2 kB] 254s Get:430 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rusty-fork+wait-timeout-dev armhf 0.3.0-1 [1132 B] 254s Get:431 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unarray-dev armhf 0.1.4-1 [14.6 kB] 254s Get:432 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-proptest-dev armhf 1.5.0-2 [171 kB] 254s Get:433 http://ftpmaster.internal/ubuntu plucky/universe armhf llvm-19-runtime armhf 1:19.1.2-1ubuntu1 [530 kB] 254s Get:434 http://ftpmaster.internal/ubuntu plucky/universe armhf llvm-runtime armhf 1:19.0-60~exp1 [5608 B] 254s Get:435 http://ftpmaster.internal/ubuntu plucky/universe armhf llvm-19-linker-tools armhf 1:19.1.2-1ubuntu1 [1160 kB] 254s Get:436 http://ftpmaster.internal/ubuntu plucky/universe armhf libpfm4 armhf 4.13.0+git83-g91970fe-1 [62.8 kB] 254s Get:437 http://ftpmaster.internal/ubuntu plucky/universe armhf llvm-19 armhf 1:19.1.2-1ubuntu1 [17.3 MB] 255s Get:438 http://ftpmaster.internal/ubuntu plucky/universe armhf llvm armhf 1:19.0-60~exp1 [4146 B] 255s Get:439 http://ftpmaster.internal/ubuntu plucky/universe armhf binutils-mingw-w64-x86-64 armhf 2.43.1-4ubuntu1+12 [2771 kB] 255s Get:440 http://ftpmaster.internal/ubuntu plucky/universe armhf binutils-mingw-w64-i686 armhf 2.43.1-4ubuntu1+12 [2446 kB] 255s Get:441 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-python3-dll-a-dev armhf 0.2.10-1 [31.6 kB] 255s Get:442 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-target-lexicon-dev armhf 0.12.14-1 [25.1 kB] 255s Get:443 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pyo3-build-config-dev armhf 0.22.6-1 [30.8 kB] 255s Get:444 http://ftpmaster.internal/ubuntu plucky/main armhf python3.12-dev armhf 3.12.7-3 [505 kB] 255s Get:445 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pyo3-ffi-dev armhf 0.22.6-1build1 [62.6 kB] 255s Get:446 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pyo3-macros-backend-dev armhf 0.22.6-1 [58.5 kB] 255s Get:447 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pyo3-macros-dev armhf 0.22.6-1 [10.4 kB] 255s Get:448 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rust-decimal-dev armhf 1.36.0-1 [114 kB] 255s Get:449 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-unindent-dev armhf 0.2.3-1 [9188 B] 255s Get:450 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-pyo3-dev armhf 0.22.6-1 [415 kB] 255s Get:451 http://ftpmaster.internal/ubuntu plucky/universe armhf librust-rustc-hash-dev armhf 1.1.0-1 [10.8 kB] 255s Get:452 http://ftpmaster.internal/ubuntu plucky/universe armhf pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 255s Get:453 http://ftpmaster.internal/ubuntu plucky/main armhf python3-packaging all 24.2-1 [51.5 kB] 255s Get:454 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 255s Get:455 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-toml all 0.10.2-1 [16.5 kB] 255s Get:456 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-wheel all 0.45.1-1 [57.7 kB] 255s Get:457 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-build all 1.2.2-1 [31.0 kB] 255s Get:458 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 255s Get:459 http://ftpmaster.internal/ubuntu plucky/universe armhf pybuild-plugin-pyproject all 6.20241024 [1728 B] 255s Get:460 http://ftpmaster.internal/ubuntu plucky/main armhf python3-all armhf 3.12.6-0ubuntu1 [886 B] 255s Get:461 http://ftpmaster.internal/ubuntu plucky/main armhf python3-dateutil all 2.9.0-3 [80.2 kB] 255s Get:462 http://ftpmaster.internal/ubuntu plucky/main armhf python3-sortedcontainers all 2.4.0-2 [27.6 kB] 255s Get:463 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-hypothesis all 6.119.3-1 [329 kB] 255s Get:464 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 255s Get:465 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pluggy all 1.5.0-1 [21.0 kB] 255s Get:466 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pytest all 8.3.3-1 [251 kB] 255s Get:467 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-regex armhf 0.1.20240724-1build1 [274 kB] 255s Get:468 http://ftpmaster.internal/ubuntu plucky/main armhf python3-semantic-version all 2.10.0-2 [15.1 kB] 256s Get:469 http://ftpmaster.internal/ubuntu plucky/main armhf rustc armhf 1.80.1ubuntu2 [2754 B] 256s Get:470 http://ftpmaster.internal/ubuntu plucky/main armhf cargo armhf 1.80.1ubuntu2 [2242 B] 256s Get:471 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-setuptools-rust all 1.9.0+dfsg-2 [23.1 kB] 256s Get:472 http://ftpmaster.internal/ubuntu plucky-proposed/universe armhf python3-tiktoken armhf 0.8.0-1build1 [706 kB] 258s Fetched 247 MB in 13s (18.6 MB/s) 258s Selecting previously unselected package m4. 258s (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 ... 59615 files and directories currently installed.) 258s Preparing to unpack .../000-m4_1.4.19-4build1_armhf.deb ... 258s Unpacking m4 (1.4.19-4build1) ... 258s Selecting previously unselected package autoconf. 258s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 258s Unpacking autoconf (2.72-3) ... 258s Selecting previously unselected package autotools-dev. 258s Preparing to unpack .../002-autotools-dev_20220109.1_all.deb ... 258s Unpacking autotools-dev (20220109.1) ... 258s Selecting previously unselected package automake. 258s Preparing to unpack .../003-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 258s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 258s Selecting previously unselected package autopoint. 258s Preparing to unpack .../004-autopoint_0.22.5-2_all.deb ... 258s Unpacking autopoint (0.22.5-2) ... 258s Selecting previously unselected package libc-dev-bin. 258s Preparing to unpack .../005-libc-dev-bin_2.40-1ubuntu3_armhf.deb ... 258s Unpacking libc-dev-bin (2.40-1ubuntu3) ... 258s Selecting previously unselected package linux-libc-dev:armhf. 258s Preparing to unpack .../006-linux-libc-dev_6.11.0-8.8_armhf.deb ... 258s Unpacking linux-libc-dev:armhf (6.11.0-8.8) ... 258s Selecting previously unselected package libcrypt-dev:armhf. 258s Preparing to unpack .../007-libcrypt-dev_1%3a4.4.36-5_armhf.deb ... 258s Unpacking libcrypt-dev:armhf (1:4.4.36-5) ... 258s Selecting previously unselected package rpcsvc-proto. 258s Preparing to unpack .../008-rpcsvc-proto_1.4.2-0ubuntu7_armhf.deb ... 258s Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ... 258s Selecting previously unselected package libc6-dev:armhf. 259s Preparing to unpack .../009-libc6-dev_2.40-1ubuntu3_armhf.deb ... 259s Unpacking libc6-dev:armhf (2.40-1ubuntu3) ... 259s Selecting previously unselected package libisl23:armhf. 259s Preparing to unpack .../010-libisl23_0.27-1_armhf.deb ... 259s Unpacking libisl23:armhf (0.27-1) ... 259s Selecting previously unselected package libmpc3:armhf. 259s Preparing to unpack .../011-libmpc3_1.3.1-1build2_armhf.deb ... 259s Unpacking libmpc3:armhf (1.3.1-1build2) ... 259s Selecting previously unselected package cpp-14-arm-linux-gnueabihf. 259s Preparing to unpack .../012-cpp-14-arm-linux-gnueabihf_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking cpp-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 259s Selecting previously unselected package cpp-14. 259s Preparing to unpack .../013-cpp-14_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 259s Selecting previously unselected package cpp-arm-linux-gnueabihf. 259s Preparing to unpack .../014-cpp-arm-linux-gnueabihf_4%3a14.1.0-2ubuntu1_armhf.deb ... 259s Unpacking cpp-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 259s Selecting previously unselected package cpp. 259s Preparing to unpack .../015-cpp_4%3a14.1.0-2ubuntu1_armhf.deb ... 259s Unpacking cpp (4:14.1.0-2ubuntu1) ... 259s Selecting previously unselected package libcc1-0:armhf. 259s Preparing to unpack .../016-libcc1-0_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking libcc1-0:armhf (14.2.0-8ubuntu1) ... 259s Selecting previously unselected package libgomp1:armhf. 259s Preparing to unpack .../017-libgomp1_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking libgomp1:armhf (14.2.0-8ubuntu1) ... 259s Selecting previously unselected package libasan8:armhf. 259s Preparing to unpack .../018-libasan8_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking libasan8:armhf (14.2.0-8ubuntu1) ... 259s Selecting previously unselected package libubsan1:armhf. 259s Preparing to unpack .../019-libubsan1_14.2.0-8ubuntu1_armhf.deb ... 259s Unpacking libubsan1:armhf (14.2.0-8ubuntu1) ... 260s Selecting previously unselected package libgcc-14-dev:armhf. 260s Preparing to unpack .../020-libgcc-14-dev_14.2.0-8ubuntu1_armhf.deb ... 260s Unpacking libgcc-14-dev:armhf (14.2.0-8ubuntu1) ... 260s Selecting previously unselected package gcc-14-arm-linux-gnueabihf. 260s Preparing to unpack .../021-gcc-14-arm-linux-gnueabihf_14.2.0-8ubuntu1_armhf.deb ... 260s Unpacking gcc-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 260s Selecting previously unselected package gcc-14. 260s Preparing to unpack .../022-gcc-14_14.2.0-8ubuntu1_armhf.deb ... 260s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 260s Selecting previously unselected package gcc-arm-linux-gnueabihf. 260s Preparing to unpack .../023-gcc-arm-linux-gnueabihf_4%3a14.1.0-2ubuntu1_armhf.deb ... 260s Unpacking gcc-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 260s Selecting previously unselected package gcc. 260s Preparing to unpack .../024-gcc_4%3a14.1.0-2ubuntu1_armhf.deb ... 260s Unpacking gcc (4:14.1.0-2ubuntu1) ... 260s Selecting previously unselected package libstdc++-14-dev:armhf. 260s Preparing to unpack .../025-libstdc++-14-dev_14.2.0-8ubuntu1_armhf.deb ... 260s Unpacking libstdc++-14-dev:armhf (14.2.0-8ubuntu1) ... 261s Selecting previously unselected package g++-14-arm-linux-gnueabihf. 261s Preparing to unpack .../026-g++-14-arm-linux-gnueabihf_14.2.0-8ubuntu1_armhf.deb ... 261s Unpacking g++-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 261s Selecting previously unselected package g++-14. 261s Preparing to unpack .../027-g++-14_14.2.0-8ubuntu1_armhf.deb ... 261s Unpacking g++-14 (14.2.0-8ubuntu1) ... 261s Selecting previously unselected package g++-arm-linux-gnueabihf. 261s Preparing to unpack .../028-g++-arm-linux-gnueabihf_4%3a14.1.0-2ubuntu1_armhf.deb ... 261s Unpacking g++-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 261s Selecting previously unselected package g++. 261s Preparing to unpack .../029-g++_4%3a14.1.0-2ubuntu1_armhf.deb ... 261s Unpacking g++ (4:14.1.0-2ubuntu1) ... 261s Selecting previously unselected package build-essential. 261s Preparing to unpack .../030-build-essential_12.10ubuntu1_armhf.deb ... 261s Unpacking build-essential (12.10ubuntu1) ... 261s Selecting previously unselected package libhttp-parser2.9:armhf. 261s Preparing to unpack .../031-libhttp-parser2.9_2.9.4-6build1_armhf.deb ... 261s Unpacking libhttp-parser2.9:armhf (2.9.4-6build1) ... 261s Selecting previously unselected package libgit2-1.7:armhf. 261s Preparing to unpack .../032-libgit2-1.7_1.7.2+ds-1ubuntu3_armhf.deb ... 261s Unpacking libgit2-1.7:armhf (1.7.2+ds-1ubuntu3) ... 261s Selecting previously unselected package libllvm18:armhf. 261s Preparing to unpack .../033-libllvm18_1%3a18.1.8-12_armhf.deb ... 261s Unpacking libllvm18:armhf (1:18.1.8-12) ... 262s Selecting previously unselected package libstd-rust-1.80:armhf. 262s Preparing to unpack .../034-libstd-rust-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_armhf.deb ... 262s Unpacking libstd-rust-1.80:armhf (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 263s Selecting previously unselected package libstd-rust-1.80-dev:armhf. 263s Preparing to unpack .../035-libstd-rust-1.80-dev_1.80.1+dfsg0ubuntu1-0ubuntu1_armhf.deb ... 263s Unpacking libstd-rust-1.80-dev:armhf (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 264s Selecting previously unselected package rustc-1.80. 264s Preparing to unpack .../036-rustc-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_armhf.deb ... 264s Unpacking rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 264s Selecting previously unselected package cargo-1.80. 264s Preparing to unpack .../037-cargo-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_armhf.deb ... 264s Unpacking cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 264s Selecting previously unselected package libjsoncpp25:armhf. 264s Preparing to unpack .../038-libjsoncpp25_1.9.5-6build1_armhf.deb ... 264s Unpacking libjsoncpp25:armhf (1.9.5-6build1) ... 264s Selecting previously unselected package librhash0:armhf. 264s Preparing to unpack .../039-librhash0_1.4.3-3build1_armhf.deb ... 264s Unpacking librhash0:armhf (1.4.3-3build1) ... 265s Selecting previously unselected package cmake-data. 265s Preparing to unpack .../040-cmake-data_3.30.3-1_all.deb ... 265s Unpacking cmake-data (3.30.3-1) ... 265s Selecting previously unselected package cmake. 265s Preparing to unpack .../041-cmake_3.30.3-1_armhf.deb ... 265s Unpacking cmake (3.30.3-1) ... 266s Selecting previously unselected package libdebhelper-perl. 266s Preparing to unpack .../042-libdebhelper-perl_13.20ubuntu1_all.deb ... 266s Unpacking libdebhelper-perl (13.20ubuntu1) ... 266s Selecting previously unselected package libtool. 266s Preparing to unpack .../043-libtool_2.4.7-8_all.deb ... 266s Unpacking libtool (2.4.7-8) ... 266s Selecting previously unselected package dh-autoreconf. 266s Preparing to unpack .../044-dh-autoreconf_20_all.deb ... 266s Unpacking dh-autoreconf (20) ... 266s Selecting previously unselected package libarchive-zip-perl. 266s Preparing to unpack .../045-libarchive-zip-perl_1.68-1_all.deb ... 266s Unpacking libarchive-zip-perl (1.68-1) ... 266s Selecting previously unselected package libfile-stripnondeterminism-perl. 266s Preparing to unpack .../046-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 266s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 266s Selecting previously unselected package dh-strip-nondeterminism. 266s Preparing to unpack .../047-dh-strip-nondeterminism_1.14.0-1_all.deb ... 266s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 266s Selecting previously unselected package debugedit. 266s Preparing to unpack .../048-debugedit_1%3a5.1-1_armhf.deb ... 266s Unpacking debugedit (1:5.1-1) ... 266s Selecting previously unselected package dwz. 266s Preparing to unpack .../049-dwz_0.15-1build6_armhf.deb ... 266s Unpacking dwz (0.15-1build6) ... 266s Selecting previously unselected package gettext. 266s Preparing to unpack .../050-gettext_0.22.5-2_armhf.deb ... 266s Unpacking gettext (0.22.5-2) ... 266s Selecting previously unselected package intltool-debian. 266s Preparing to unpack .../051-intltool-debian_0.35.0+20060710.6_all.deb ... 266s Unpacking intltool-debian (0.35.0+20060710.6) ... 266s Selecting previously unselected package po-debconf. 266s Preparing to unpack .../052-po-debconf_1.0.21+nmu1_all.deb ... 266s Unpacking po-debconf (1.0.21+nmu1) ... 266s Selecting previously unselected package debhelper. 266s Preparing to unpack .../053-debhelper_13.20ubuntu1_all.deb ... 266s Unpacking debhelper (13.20ubuntu1) ... 266s Selecting previously unselected package dh-python. 266s Preparing to unpack .../054-dh-python_6.20241024_all.deb ... 266s Unpacking dh-python (6.20241024) ... 266s Selecting previously unselected package fonts-dejavu-mono. 266s Preparing to unpack .../055-fonts-dejavu-mono_2.37-8_all.deb ... 266s Unpacking fonts-dejavu-mono (2.37-8) ... 266s Selecting previously unselected package fonts-dejavu-core. 266s Preparing to unpack .../056-fonts-dejavu-core_2.37-8_all.deb ... 266s Unpacking fonts-dejavu-core (2.37-8) ... 266s Selecting previously unselected package fontconfig-config. 266s Preparing to unpack .../057-fontconfig-config_2.15.0-1.1ubuntu2_armhf.deb ... 267s Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ... 267s Selecting previously unselected package libbrotli-dev:armhf. 267s Preparing to unpack .../058-libbrotli-dev_1.1.0-2build3_armhf.deb ... 267s Unpacking libbrotli-dev:armhf (1.1.0-2build3) ... 267s Selecting previously unselected package libbz2-dev:armhf. 267s Preparing to unpack .../059-libbz2-dev_1.0.8-6_armhf.deb ... 267s Unpacking libbz2-dev:armhf (1.0.8-6) ... 267s Selecting previously unselected package libexpat1-dev:armhf. 267s Preparing to unpack .../060-libexpat1-dev_2.6.4-1_armhf.deb ... 267s Unpacking libexpat1-dev:armhf (2.6.4-1) ... 267s Selecting previously unselected package libfreetype6:armhf. 267s Preparing to unpack .../061-libfreetype6_2.13.3+dfsg-1_armhf.deb ... 267s Unpacking libfreetype6:armhf (2.13.3+dfsg-1) ... 267s Selecting previously unselected package libfontconfig1:armhf. 267s Preparing to unpack .../062-libfontconfig1_2.15.0-1.1ubuntu2_armhf.deb ... 267s Unpacking libfontconfig1:armhf (2.15.0-1.1ubuntu2) ... 267s Selecting previously unselected package zlib1g-dev:armhf. 267s Preparing to unpack .../063-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_armhf.deb ... 267s Unpacking zlib1g-dev:armhf (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 267s Selecting previously unselected package libpng-dev:armhf. 267s Preparing to unpack .../064-libpng-dev_1.6.44-2_armhf.deb ... 267s Unpacking libpng-dev:armhf (1.6.44-2) ... 267s Selecting previously unselected package libfreetype-dev:armhf. 267s Preparing to unpack .../065-libfreetype-dev_2.13.3+dfsg-1_armhf.deb ... 267s Unpacking libfreetype-dev:armhf (2.13.3+dfsg-1) ... 267s Selecting previously unselected package uuid-dev:armhf. 267s Preparing to unpack .../066-uuid-dev_2.40.2-1ubuntu1_armhf.deb ... 267s Unpacking uuid-dev:armhf (2.40.2-1ubuntu1) ... 267s Selecting previously unselected package libpkgconf3:armhf. 267s Preparing to unpack .../067-libpkgconf3_1.8.1-4_armhf.deb ... 267s Unpacking libpkgconf3:armhf (1.8.1-4) ... 267s Selecting previously unselected package pkgconf-bin. 267s Preparing to unpack .../068-pkgconf-bin_1.8.1-4_armhf.deb ... 267s Unpacking pkgconf-bin (1.8.1-4) ... 267s Selecting previously unselected package pkgconf:armhf. 267s Preparing to unpack .../069-pkgconf_1.8.1-4_armhf.deb ... 267s Unpacking pkgconf:armhf (1.8.1-4) ... 267s Selecting previously unselected package libfontconfig-dev:armhf. 267s Preparing to unpack .../070-libfontconfig-dev_2.15.0-1.1ubuntu2_armhf.deb ... 267s Unpacking libfontconfig-dev:armhf (2.15.0-1.1ubuntu2) ... 267s Selecting previously unselected package libllvm19:armhf. 268s Preparing to unpack .../071-libllvm19_1%3a19.1.2-1ubuntu1_armhf.deb ... 268s Unpacking libllvm19:armhf (1:19.1.2-1ubuntu1) ... 269s Selecting previously unselected package libpython3.12t64:armhf. 269s Preparing to unpack .../072-libpython3.12t64_3.12.7-3_armhf.deb ... 269s Unpacking libpython3.12t64:armhf (3.12.7-3) ... 269s Selecting previously unselected package libpython3.12-dev:armhf. 269s Preparing to unpack .../073-libpython3.12-dev_3.12.7-3_armhf.deb ... 269s Unpacking libpython3.12-dev:armhf (3.12.7-3) ... 269s Selecting previously unselected package libpython3-dev:armhf. 269s Preparing to unpack .../074-libpython3-dev_3.12.6-0ubuntu1_armhf.deb ... 269s Unpacking libpython3-dev:armhf (3.12.6-0ubuntu1) ... 269s Selecting previously unselected package libpython3-all-dev:armhf. 269s Preparing to unpack .../075-libpython3-all-dev_3.12.6-0ubuntu1_armhf.deb ... 269s Unpacking libpython3-all-dev:armhf (3.12.6-0ubuntu1) ... 269s Selecting previously unselected package librust-ab-glyph-rasterizer-dev:armhf. 269s Preparing to unpack .../076-librust-ab-glyph-rasterizer-dev_0.1.7-1_armhf.deb ... 269s Unpacking librust-ab-glyph-rasterizer-dev:armhf (0.1.7-1) ... 269s Selecting previously unselected package librust-libm-dev:armhf. 269s Preparing to unpack .../077-librust-libm-dev_0.2.8-1_armhf.deb ... 269s Unpacking librust-libm-dev:armhf (0.2.8-1) ... 269s Selecting previously unselected package librust-ab-glyph-rasterizer+libm-dev:armhf. 269s Preparing to unpack .../078-librust-ab-glyph-rasterizer+libm-dev_0.1.7-1_armhf.deb ... 269s Unpacking librust-ab-glyph-rasterizer+libm-dev:armhf (0.1.7-1) ... 269s Selecting previously unselected package librust-core-maths-dev:armhf. 269s Preparing to unpack .../079-librust-core-maths-dev_0.1.0-2_armhf.deb ... 269s Unpacking librust-core-maths-dev:armhf (0.1.0-2) ... 269s Selecting previously unselected package librust-ttf-parser-dev:armhf. 269s Preparing to unpack .../080-librust-ttf-parser-dev_0.24.1-1_armhf.deb ... 269s Unpacking librust-ttf-parser-dev:armhf (0.24.1-1) ... 269s Selecting previously unselected package librust-owned-ttf-parser-dev:armhf. 269s Preparing to unpack .../081-librust-owned-ttf-parser-dev_0.24.0-1_armhf.deb ... 269s Unpacking librust-owned-ttf-parser-dev:armhf (0.24.0-1) ... 270s Selecting previously unselected package librust-ab-glyph-dev:armhf. 270s Preparing to unpack .../082-librust-ab-glyph-dev_0.2.28-1_armhf.deb ... 270s Unpacking librust-ab-glyph-dev:armhf (0.2.28-1) ... 270s Selecting previously unselected package librust-cfg-if-dev:armhf. 270s Preparing to unpack .../083-librust-cfg-if-dev_1.0.0-1_armhf.deb ... 270s Unpacking librust-cfg-if-dev:armhf (1.0.0-1) ... 270s Selecting previously unselected package librust-cpp-demangle-dev:armhf. 270s Preparing to unpack .../084-librust-cpp-demangle-dev_0.4.0-1_armhf.deb ... 270s Unpacking librust-cpp-demangle-dev:armhf (0.4.0-1) ... 270s Selecting previously unselected package librust-fallible-iterator-dev:armhf. 270s Preparing to unpack .../085-librust-fallible-iterator-dev_0.3.0-2_armhf.deb ... 270s Unpacking librust-fallible-iterator-dev:armhf (0.3.0-2) ... 270s Selecting previously unselected package librust-unicode-ident-dev:armhf. 270s Preparing to unpack .../086-librust-unicode-ident-dev_1.0.13-1_armhf.deb ... 270s Unpacking librust-unicode-ident-dev:armhf (1.0.13-1) ... 270s Selecting previously unselected package librust-proc-macro2-dev:armhf. 270s Preparing to unpack .../087-librust-proc-macro2-dev_1.0.86-1_armhf.deb ... 270s Unpacking librust-proc-macro2-dev:armhf (1.0.86-1) ... 270s Selecting previously unselected package librust-quote-dev:armhf. 270s Preparing to unpack .../088-librust-quote-dev_1.0.37-1_armhf.deb ... 270s Unpacking librust-quote-dev:armhf (1.0.37-1) ... 270s Selecting previously unselected package librust-syn-dev:armhf. 270s Preparing to unpack .../089-librust-syn-dev_2.0.85-1_armhf.deb ... 270s Unpacking librust-syn-dev:armhf (2.0.85-1) ... 270s Selecting previously unselected package librust-derive-arbitrary-dev:armhf. 270s Preparing to unpack .../090-librust-derive-arbitrary-dev_1.3.2-1_armhf.deb ... 270s Unpacking librust-derive-arbitrary-dev:armhf (1.3.2-1) ... 270s Selecting previously unselected package librust-arbitrary-dev:armhf. 270s Preparing to unpack .../091-librust-arbitrary-dev_1.3.2-1_armhf.deb ... 270s Unpacking librust-arbitrary-dev:armhf (1.3.2-1) ... 270s Selecting previously unselected package librust-equivalent-dev:armhf. 270s Preparing to unpack .../092-librust-equivalent-dev_1.0.1-1_armhf.deb ... 270s Unpacking librust-equivalent-dev:armhf (1.0.1-1) ... 270s Selecting previously unselected package librust-critical-section-dev:armhf. 270s Preparing to unpack .../093-librust-critical-section-dev_1.1.3-1_armhf.deb ... 270s Unpacking librust-critical-section-dev:armhf (1.1.3-1) ... 270s Selecting previously unselected package librust-serde-derive-dev:armhf. 270s Preparing to unpack .../094-librust-serde-derive-dev_1.0.210-1_armhf.deb ... 270s Unpacking librust-serde-derive-dev:armhf (1.0.210-1) ... 270s Selecting previously unselected package librust-serde-dev:armhf. 270s Preparing to unpack .../095-librust-serde-dev_1.0.210-2_armhf.deb ... 270s Unpacking librust-serde-dev:armhf (1.0.210-2) ... 270s Selecting previously unselected package librust-portable-atomic-dev:armhf. 270s Preparing to unpack .../096-librust-portable-atomic-dev_1.9.0-4_armhf.deb ... 270s Unpacking librust-portable-atomic-dev:armhf (1.9.0-4) ... 270s Selecting previously unselected package librust-rustc-std-workspace-core-dev:armhf. 270s Preparing to unpack .../097-librust-rustc-std-workspace-core-dev_1.0.0-1_armhf.deb ... 270s Unpacking librust-rustc-std-workspace-core-dev:armhf (1.0.0-1) ... 271s Selecting previously unselected package librust-libc-dev:armhf. 271s Preparing to unpack .../098-librust-libc-dev_0.2.161-1_armhf.deb ... 271s Unpacking librust-libc-dev:armhf (0.2.161-1) ... 271s Selecting previously unselected package librust-getrandom-dev:armhf. 271s Preparing to unpack .../099-librust-getrandom-dev_0.2.12-1_armhf.deb ... 271s Unpacking librust-getrandom-dev:armhf (0.2.12-1) ... 271s Selecting previously unselected package librust-smallvec-dev:armhf. 271s Preparing to unpack .../100-librust-smallvec-dev_1.13.2-1_armhf.deb ... 271s Unpacking librust-smallvec-dev:armhf (1.13.2-1) ... 271s Selecting previously unselected package librust-parking-lot-core-dev:armhf. 271s Preparing to unpack .../101-librust-parking-lot-core-dev_0.9.10-1_armhf.deb ... 271s Unpacking librust-parking-lot-core-dev:armhf (0.9.10-1) ... 271s Selecting previously unselected package librust-once-cell-dev:armhf. 271s Preparing to unpack .../102-librust-once-cell-dev_1.20.2-1_armhf.deb ... 271s Unpacking librust-once-cell-dev:armhf (1.20.2-1) ... 271s Selecting previously unselected package librust-crunchy-dev:armhf. 271s Preparing to unpack .../103-librust-crunchy-dev_0.2.2-1_armhf.deb ... 271s Unpacking librust-crunchy-dev:armhf (0.2.2-1) ... 271s Selecting previously unselected package librust-tiny-keccak-dev:armhf. 271s Preparing to unpack .../104-librust-tiny-keccak-dev_2.0.2-1_armhf.deb ... 271s Unpacking librust-tiny-keccak-dev:armhf (2.0.2-1) ... 271s Selecting previously unselected package librust-const-random-macro-dev:armhf. 271s Preparing to unpack .../105-librust-const-random-macro-dev_0.1.16-2_armhf.deb ... 271s Unpacking librust-const-random-macro-dev:armhf (0.1.16-2) ... 271s Selecting previously unselected package librust-const-random-dev:armhf. 271s Preparing to unpack .../106-librust-const-random-dev_0.1.17-2_armhf.deb ... 271s Unpacking librust-const-random-dev:armhf (0.1.17-2) ... 271s Selecting previously unselected package librust-version-check-dev:armhf. 271s Preparing to unpack .../107-librust-version-check-dev_0.9.5-1_armhf.deb ... 271s Unpacking librust-version-check-dev:armhf (0.9.5-1) ... 271s Selecting previously unselected package librust-byteorder-dev:armhf. 271s Preparing to unpack .../108-librust-byteorder-dev_1.5.0-1_armhf.deb ... 271s Unpacking librust-byteorder-dev:armhf (1.5.0-1) ... 271s Selecting previously unselected package librust-zerocopy-derive-dev:armhf. 271s Preparing to unpack .../109-librust-zerocopy-derive-dev_0.7.32-2_armhf.deb ... 271s Unpacking librust-zerocopy-derive-dev:armhf (0.7.32-2) ... 271s Selecting previously unselected package librust-zerocopy-dev:armhf. 271s Preparing to unpack .../110-librust-zerocopy-dev_0.7.32-1_armhf.deb ... 271s Unpacking librust-zerocopy-dev:armhf (0.7.32-1) ... 271s Selecting previously unselected package librust-ahash-dev. 271s Preparing to unpack .../111-librust-ahash-dev_0.8.11-8_all.deb ... 271s Unpacking librust-ahash-dev (0.8.11-8) ... 271s Selecting previously unselected package librust-allocator-api2-dev:armhf. 271s Preparing to unpack .../112-librust-allocator-api2-dev_0.2.16-1_armhf.deb ... 271s Unpacking librust-allocator-api2-dev:armhf (0.2.16-1) ... 271s Selecting previously unselected package librust-compiler-builtins-dev:armhf. 271s Preparing to unpack .../113-librust-compiler-builtins-dev_0.1.101-1_armhf.deb ... 271s Unpacking librust-compiler-builtins-dev:armhf (0.1.101-1) ... 272s Selecting previously unselected package librust-either-dev:armhf. 272s Preparing to unpack .../114-librust-either-dev_1.13.0-1_armhf.deb ... 272s Unpacking librust-either-dev:armhf (1.13.0-1) ... 272s Selecting previously unselected package librust-crossbeam-utils-dev:armhf. 272s Preparing to unpack .../115-librust-crossbeam-utils-dev_0.8.19-1_armhf.deb ... 272s Unpacking librust-crossbeam-utils-dev:armhf (0.8.19-1) ... 272s Selecting previously unselected package librust-crossbeam-epoch-dev:armhf. 272s Preparing to unpack .../116-librust-crossbeam-epoch-dev_0.9.18-1_armhf.deb ... 272s Unpacking librust-crossbeam-epoch-dev:armhf (0.9.18-1) ... 272s Selecting previously unselected package librust-crossbeam-epoch+std-dev:armhf. 272s Preparing to unpack .../117-librust-crossbeam-epoch+std-dev_0.9.18-1_armhf.deb ... 272s Unpacking librust-crossbeam-epoch+std-dev:armhf (0.9.18-1) ... 272s Selecting previously unselected package librust-crossbeam-deque-dev:armhf. 272s Preparing to unpack .../118-librust-crossbeam-deque-dev_0.8.5-1_armhf.deb ... 272s Unpacking librust-crossbeam-deque-dev:armhf (0.8.5-1) ... 272s Selecting previously unselected package librust-rayon-core-dev:armhf. 272s Preparing to unpack .../119-librust-rayon-core-dev_1.12.1-1_armhf.deb ... 272s Unpacking librust-rayon-core-dev:armhf (1.12.1-1) ... 272s Selecting previously unselected package librust-rayon-dev:armhf. 272s Preparing to unpack .../120-librust-rayon-dev_1.10.0-1_armhf.deb ... 272s Unpacking librust-rayon-dev:armhf (1.10.0-1) ... 272s Selecting previously unselected package librust-hashbrown-dev:armhf. 272s Preparing to unpack .../121-librust-hashbrown-dev_0.14.5-5_armhf.deb ... 272s Unpacking librust-hashbrown-dev:armhf (0.14.5-5) ... 272s Selecting previously unselected package librust-indexmap-dev:armhf. 272s Preparing to unpack .../122-librust-indexmap-dev_2.2.6-1_armhf.deb ... 272s Unpacking librust-indexmap-dev:armhf (2.2.6-1) ... 272s Selecting previously unselected package librust-stable-deref-trait-dev:armhf. 272s Preparing to unpack .../123-librust-stable-deref-trait-dev_1.2.0-1_armhf.deb ... 272s Unpacking librust-stable-deref-trait-dev:armhf (1.2.0-1) ... 272s Selecting previously unselected package librust-gimli-dev:armhf. 272s Preparing to unpack .../124-librust-gimli-dev_0.28.1-2_armhf.deb ... 272s Unpacking librust-gimli-dev:armhf (0.28.1-2) ... 272s Selecting previously unselected package librust-memmap2-dev:armhf. 272s Preparing to unpack .../125-librust-memmap2-dev_0.9.3-1_armhf.deb ... 272s Unpacking librust-memmap2-dev:armhf (0.9.3-1) ... 272s Selecting previously unselected package librust-crc32fast-dev:armhf. 272s Preparing to unpack .../126-librust-crc32fast-dev_1.4.2-1_armhf.deb ... 272s Unpacking librust-crc32fast-dev:armhf (1.4.2-1) ... 272s Selecting previously unselected package pkg-config:armhf. 272s Preparing to unpack .../127-pkg-config_1.8.1-4_armhf.deb ... 272s Unpacking pkg-config:armhf (1.8.1-4) ... 272s Selecting previously unselected package librust-pkg-config-dev:armhf. 272s Preparing to unpack .../128-librust-pkg-config-dev_0.3.27-1_armhf.deb ... 272s Unpacking librust-pkg-config-dev:armhf (0.3.27-1) ... 272s Selecting previously unselected package librust-libz-sys-dev:armhf. 272s Preparing to unpack .../129-librust-libz-sys-dev_1.1.20-1_armhf.deb ... 272s Unpacking librust-libz-sys-dev:armhf (1.1.20-1) ... 272s Selecting previously unselected package librust-adler-dev:armhf. 273s Preparing to unpack .../130-librust-adler-dev_1.0.2-2_armhf.deb ... 273s Unpacking librust-adler-dev:armhf (1.0.2-2) ... 273s Selecting previously unselected package librust-miniz-oxide-dev:armhf. 273s Preparing to unpack .../131-librust-miniz-oxide-dev_0.7.1-1_armhf.deb ... 273s Unpacking librust-miniz-oxide-dev:armhf (0.7.1-1) ... 273s Selecting previously unselected package librust-flate2-dev:armhf. 273s Preparing to unpack .../132-librust-flate2-dev_1.0.34-1_armhf.deb ... 273s Unpacking librust-flate2-dev:armhf (1.0.34-1) ... 273s Selecting previously unselected package librust-sval-derive-dev:armhf. 273s Preparing to unpack .../133-librust-sval-derive-dev_2.6.1-2_armhf.deb ... 273s Unpacking librust-sval-derive-dev:armhf (2.6.1-2) ... 273s Selecting previously unselected package librust-sval-dev:armhf. 273s Preparing to unpack .../134-librust-sval-dev_2.6.1-2_armhf.deb ... 273s Unpacking librust-sval-dev:armhf (2.6.1-2) ... 273s Selecting previously unselected package librust-sval-ref-dev:armhf. 273s Preparing to unpack .../135-librust-sval-ref-dev_2.6.1-1_armhf.deb ... 273s Unpacking librust-sval-ref-dev:armhf (2.6.1-1) ... 273s Selecting previously unselected package librust-erased-serde-dev:armhf. 273s Preparing to unpack .../136-librust-erased-serde-dev_0.3.31-1_armhf.deb ... 273s Unpacking librust-erased-serde-dev:armhf (0.3.31-1) ... 273s Selecting previously unselected package librust-serde-fmt-dev. 273s Preparing to unpack .../137-librust-serde-fmt-dev_1.0.3-3_all.deb ... 273s Unpacking librust-serde-fmt-dev (1.0.3-3) ... 273s Selecting previously unselected package librust-syn-1-dev:armhf. 273s Preparing to unpack .../138-librust-syn-1-dev_1.0.109-2_armhf.deb ... 273s Unpacking librust-syn-1-dev:armhf (1.0.109-2) ... 273s Selecting previously unselected package librust-no-panic-dev:armhf. 273s Preparing to unpack .../139-librust-no-panic-dev_0.1.13-1_armhf.deb ... 273s Unpacking librust-no-panic-dev:armhf (0.1.13-1) ... 273s Selecting previously unselected package librust-itoa-dev:armhf. 273s Preparing to unpack .../140-librust-itoa-dev_1.0.9-1_armhf.deb ... 273s Unpacking librust-itoa-dev:armhf (1.0.9-1) ... 273s Selecting previously unselected package librust-ryu-dev:armhf. 273s Preparing to unpack .../141-librust-ryu-dev_1.0.15-1_armhf.deb ... 273s Unpacking librust-ryu-dev:armhf (1.0.15-1) ... 273s Selecting previously unselected package librust-serde-json-dev:armhf. 273s Preparing to unpack .../142-librust-serde-json-dev_1.0.128-1_armhf.deb ... 273s Unpacking librust-serde-json-dev:armhf (1.0.128-1) ... 273s Selecting previously unselected package librust-serde-test-dev:armhf. 273s Preparing to unpack .../143-librust-serde-test-dev_1.0.171-1_armhf.deb ... 273s Unpacking librust-serde-test-dev:armhf (1.0.171-1) ... 273s Selecting previously unselected package librust-value-bag-serde1-dev:armhf. 273s Preparing to unpack .../144-librust-value-bag-serde1-dev_1.9.0-1_armhf.deb ... 273s Unpacking librust-value-bag-serde1-dev:armhf (1.9.0-1) ... 273s Selecting previously unselected package librust-sval-buffer-dev:armhf. 273s Preparing to unpack .../145-librust-sval-buffer-dev_2.6.1-1_armhf.deb ... 273s Unpacking librust-sval-buffer-dev:armhf (2.6.1-1) ... 273s Selecting previously unselected package librust-sval-dynamic-dev:armhf. 273s Preparing to unpack .../146-librust-sval-dynamic-dev_2.6.1-1_armhf.deb ... 273s Unpacking librust-sval-dynamic-dev:armhf (2.6.1-1) ... 273s Selecting previously unselected package librust-sval-fmt-dev:armhf. 273s Preparing to unpack .../147-librust-sval-fmt-dev_2.6.1-1_armhf.deb ... 273s Unpacking librust-sval-fmt-dev:armhf (2.6.1-1) ... 274s Selecting previously unselected package librust-sval-serde-dev:armhf. 274s Preparing to unpack .../148-librust-sval-serde-dev_2.6.1-1_armhf.deb ... 274s Unpacking librust-sval-serde-dev:armhf (2.6.1-1) ... 274s Selecting previously unselected package librust-value-bag-sval2-dev:armhf. 274s Preparing to unpack .../149-librust-value-bag-sval2-dev_1.9.0-1_armhf.deb ... 274s Unpacking librust-value-bag-sval2-dev:armhf (1.9.0-1) ... 274s Selecting previously unselected package librust-value-bag-dev:armhf. 274s Preparing to unpack .../150-librust-value-bag-dev_1.9.0-1_armhf.deb ... 274s Unpacking librust-value-bag-dev:armhf (1.9.0-1) ... 274s Selecting previously unselected package librust-log-dev:armhf. 274s Preparing to unpack .../151-librust-log-dev_0.4.22-1_armhf.deb ... 274s Unpacking librust-log-dev:armhf (0.4.22-1) ... 274s Selecting previously unselected package librust-memchr-dev:armhf. 274s Preparing to unpack .../152-librust-memchr-dev_2.7.4-1_armhf.deb ... 274s Unpacking librust-memchr-dev:armhf (2.7.4-1) ... 274s Selecting previously unselected package librust-ppv-lite86-dev:armhf. 274s Preparing to unpack .../153-librust-ppv-lite86-dev_0.2.16-1_armhf.deb ... 274s Unpacking librust-ppv-lite86-dev:armhf (0.2.16-1) ... 274s Selecting previously unselected package librust-rand-core-dev:armhf. 274s Preparing to unpack .../154-librust-rand-core-dev_0.6.4-2_armhf.deb ... 274s Unpacking librust-rand-core-dev:armhf (0.6.4-2) ... 274s Selecting previously unselected package librust-rand-chacha-dev:armhf. 274s Preparing to unpack .../155-librust-rand-chacha-dev_0.3.1-2_armhf.deb ... 274s Unpacking librust-rand-chacha-dev:armhf (0.3.1-2) ... 274s Selecting previously unselected package librust-rand-core+getrandom-dev:armhf. 274s Preparing to unpack .../156-librust-rand-core+getrandom-dev_0.6.4-2_armhf.deb ... 274s Unpacking librust-rand-core+getrandom-dev:armhf (0.6.4-2) ... 274s Selecting previously unselected package librust-rand-core+serde-dev:armhf. 274s Preparing to unpack .../157-librust-rand-core+serde-dev_0.6.4-2_armhf.deb ... 274s Unpacking librust-rand-core+serde-dev:armhf (0.6.4-2) ... 274s Selecting previously unselected package librust-rand-core+std-dev:armhf. 274s Preparing to unpack .../158-librust-rand-core+std-dev_0.6.4-2_armhf.deb ... 274s Unpacking librust-rand-core+std-dev:armhf (0.6.4-2) ... 274s Selecting previously unselected package librust-rand-dev:armhf. 274s Preparing to unpack .../159-librust-rand-dev_0.8.5-1_armhf.deb ... 274s Unpacking librust-rand-dev:armhf (0.8.5-1) ... 274s Selecting previously unselected package librust-unicode-segmentation-dev:armhf. 274s Preparing to unpack .../160-librust-unicode-segmentation-dev_1.11.0-1_armhf.deb ... 274s Unpacking librust-unicode-segmentation-dev:armhf (1.11.0-1) ... 274s Selecting previously unselected package librust-convert-case-dev:armhf. 274s Preparing to unpack .../161-librust-convert-case-dev_0.6.0-2_armhf.deb ... 274s Unpacking librust-convert-case-dev:armhf (0.6.0-2) ... 274s Selecting previously unselected package librust-semver-dev:armhf. 274s Preparing to unpack .../162-librust-semver-dev_1.0.23-1_armhf.deb ... 274s Unpacking librust-semver-dev:armhf (1.0.23-1) ... 274s Selecting previously unselected package librust-rustc-version-dev:armhf. 274s Preparing to unpack .../163-librust-rustc-version-dev_0.4.0-1_armhf.deb ... 274s Unpacking librust-rustc-version-dev:armhf (0.4.0-1) ... 274s Selecting previously unselected package librust-derive-more-dev:armhf. 274s Preparing to unpack .../164-librust-derive-more-dev_0.99.17-1_armhf.deb ... 274s Unpacking librust-derive-more-dev:armhf (0.99.17-1) ... 274s Selecting previously unselected package librust-cfg-if-0.1-dev:armhf. 275s Preparing to unpack .../165-librust-cfg-if-0.1-dev_0.1.10-2_armhf.deb ... 275s Unpacking librust-cfg-if-0.1-dev:armhf (0.1.10-2) ... 275s Selecting previously unselected package librust-blobby-dev:armhf. 275s Preparing to unpack .../166-librust-blobby-dev_0.3.1-1_armhf.deb ... 275s Unpacking librust-blobby-dev:armhf (0.3.1-1) ... 275s Selecting previously unselected package librust-typenum-dev:armhf. 275s Preparing to unpack .../167-librust-typenum-dev_1.17.0-2_armhf.deb ... 275s Unpacking librust-typenum-dev:armhf (1.17.0-2) ... 275s Selecting previously unselected package librust-zeroize-derive-dev:armhf. 275s Preparing to unpack .../168-librust-zeroize-derive-dev_1.4.2-1_armhf.deb ... 275s Unpacking librust-zeroize-derive-dev:armhf (1.4.2-1) ... 275s Selecting previously unselected package librust-zeroize-dev:armhf. 275s Preparing to unpack .../169-librust-zeroize-dev_1.8.1-1_armhf.deb ... 275s Unpacking librust-zeroize-dev:armhf (1.8.1-1) ... 275s Selecting previously unselected package librust-generic-array-dev:armhf. 275s Preparing to unpack .../170-librust-generic-array-dev_0.14.7-1_armhf.deb ... 275s Unpacking librust-generic-array-dev:armhf (0.14.7-1) ... 275s Selecting previously unselected package librust-block-buffer-dev:armhf. 275s Preparing to unpack .../171-librust-block-buffer-dev_0.10.2-2_armhf.deb ... 275s Unpacking librust-block-buffer-dev:armhf (0.10.2-2) ... 275s Selecting previously unselected package librust-const-oid-dev:armhf. 275s Preparing to unpack .../172-librust-const-oid-dev_0.9.3-1_armhf.deb ... 275s Unpacking librust-const-oid-dev:armhf (0.9.3-1) ... 275s Selecting previously unselected package librust-crypto-common-dev:armhf. 275s Preparing to unpack .../173-librust-crypto-common-dev_0.1.6-1_armhf.deb ... 275s Unpacking librust-crypto-common-dev:armhf (0.1.6-1) ... 275s Selecting previously unselected package librust-subtle-dev:armhf. 275s Preparing to unpack .../174-librust-subtle-dev_2.6.1-1_armhf.deb ... 275s Unpacking librust-subtle-dev:armhf (2.6.1-1) ... 275s Selecting previously unselected package librust-digest-dev:armhf. 275s Preparing to unpack .../175-librust-digest-dev_0.10.7-2_armhf.deb ... 275s Unpacking librust-digest-dev:armhf (0.10.7-2) ... 275s Selecting previously unselected package librust-static-assertions-dev:armhf. 275s Preparing to unpack .../176-librust-static-assertions-dev_1.1.0-1_armhf.deb ... 275s Unpacking librust-static-assertions-dev:armhf (1.1.0-1) ... 275s Selecting previously unselected package librust-twox-hash-dev:armhf. 275s Preparing to unpack .../177-librust-twox-hash-dev_1.6.3-1_armhf.deb ... 275s Unpacking librust-twox-hash-dev:armhf (1.6.3-1) ... 275s Selecting previously unselected package librust-ruzstd-dev:armhf. 275s Preparing to unpack .../178-librust-ruzstd-dev_0.5.0-1_armhf.deb ... 275s Unpacking librust-ruzstd-dev:armhf (0.5.0-1) ... 275s Selecting previously unselected package librust-object-dev:armhf. 275s Preparing to unpack .../179-librust-object-dev_0.32.2-1_armhf.deb ... 275s Unpacking librust-object-dev:armhf (0.32.2-1) ... 275s Selecting previously unselected package librust-rustc-demangle-dev:armhf. 275s Preparing to unpack .../180-librust-rustc-demangle-dev_0.1.21-1_armhf.deb ... 275s Unpacking librust-rustc-demangle-dev:armhf (0.1.21-1) ... 275s Selecting previously unselected package librust-addr2line-dev:armhf. 275s Preparing to unpack .../181-librust-addr2line-dev_0.21.0-2_armhf.deb ... 275s Unpacking librust-addr2line-dev:armhf (0.21.0-2) ... 276s Selecting previously unselected package librust-aho-corasick-dev:armhf. 276s Preparing to unpack .../182-librust-aho-corasick-dev_1.1.3-1_armhf.deb ... 276s Unpacking librust-aho-corasick-dev:armhf (1.1.3-1) ... 276s Selecting previously unselected package librust-bitflags-1-dev:armhf. 276s Preparing to unpack .../183-librust-bitflags-1-dev_1.3.2-5_armhf.deb ... 276s Unpacking librust-bitflags-1-dev:armhf (1.3.2-5) ... 276s Selecting previously unselected package librust-anes-dev:armhf. 276s Preparing to unpack .../184-librust-anes-dev_0.1.6-1_armhf.deb ... 276s Unpacking librust-anes-dev:armhf (0.1.6-1) ... 276s Selecting previously unselected package librust-anstyle-dev:armhf. 276s Preparing to unpack .../185-librust-anstyle-dev_1.0.8-1_armhf.deb ... 276s Unpacking librust-anstyle-dev:armhf (1.0.8-1) ... 276s Selecting previously unselected package librust-arrayvec-dev:armhf. 276s Preparing to unpack .../186-librust-arrayvec-dev_0.7.4-2_armhf.deb ... 276s Unpacking librust-arrayvec-dev:armhf (0.7.4-2) ... 276s Selecting previously unselected package librust-utf8parse-dev:armhf. 276s Preparing to unpack .../187-librust-utf8parse-dev_0.2.1-1_armhf.deb ... 276s Unpacking librust-utf8parse-dev:armhf (0.2.1-1) ... 276s Selecting previously unselected package librust-anstyle-parse-dev:armhf. 276s Preparing to unpack .../188-librust-anstyle-parse-dev_0.2.1-1_armhf.deb ... 276s Unpacking librust-anstyle-parse-dev:armhf (0.2.1-1) ... 276s Selecting previously unselected package librust-anstyle-query-dev:armhf. 276s Preparing to unpack .../189-librust-anstyle-query-dev_1.0.0-1_armhf.deb ... 276s Unpacking librust-anstyle-query-dev:armhf (1.0.0-1) ... 276s Selecting previously unselected package librust-colorchoice-dev:armhf. 276s Preparing to unpack .../190-librust-colorchoice-dev_1.0.0-1_armhf.deb ... 276s Unpacking librust-colorchoice-dev:armhf (1.0.0-1) ... 276s Selecting previously unselected package librust-anstream-dev:armhf. 276s Preparing to unpack .../191-librust-anstream-dev_0.6.15-1_armhf.deb ... 276s Unpacking librust-anstream-dev:armhf (0.6.15-1) ... 276s Selecting previously unselected package librust-jobserver-dev:armhf. 276s Preparing to unpack .../192-librust-jobserver-dev_0.1.32-1_armhf.deb ... 276s Unpacking librust-jobserver-dev:armhf (0.1.32-1) ... 276s Selecting previously unselected package librust-shlex-dev:armhf. 276s Preparing to unpack .../193-librust-shlex-dev_1.3.0-1_armhf.deb ... 276s Unpacking librust-shlex-dev:armhf (1.3.0-1) ... 276s Selecting previously unselected package librust-cc-dev:armhf. 276s Preparing to unpack .../194-librust-cc-dev_1.1.14-1_armhf.deb ... 276s Unpacking librust-cc-dev:armhf (1.1.14-1) ... 276s Selecting previously unselected package librust-backtrace-dev:armhf. 276s Preparing to unpack .../195-librust-backtrace-dev_0.3.69-2_armhf.deb ... 276s Unpacking librust-backtrace-dev:armhf (0.3.69-2) ... 276s Selecting previously unselected package librust-anyhow-dev:armhf. 276s Preparing to unpack .../196-librust-anyhow-dev_1.0.86-1_armhf.deb ... 276s Unpacking librust-anyhow-dev:armhf (1.0.86-1) ... 276s Selecting previously unselected package librust-bytecheck-derive-dev:armhf. 276s Preparing to unpack .../197-librust-bytecheck-derive-dev_0.6.12-1_armhf.deb ... 276s Unpacking librust-bytecheck-derive-dev:armhf (0.6.12-1) ... 276s Selecting previously unselected package librust-ptr-meta-derive-dev:armhf. 276s Preparing to unpack .../198-librust-ptr-meta-derive-dev_0.1.4-1_armhf.deb ... 276s Unpacking librust-ptr-meta-derive-dev:armhf (0.1.4-1) ... 277s Selecting previously unselected package librust-ptr-meta-dev:armhf. 277s Preparing to unpack .../199-librust-ptr-meta-dev_0.1.4-1_armhf.deb ... 277s Unpacking librust-ptr-meta-dev:armhf (0.1.4-1) ... 277s Selecting previously unselected package librust-simdutf8-dev:armhf. 277s Preparing to unpack .../200-librust-simdutf8-dev_0.1.4-4_armhf.deb ... 277s Unpacking librust-simdutf8-dev:armhf (0.1.4-4) ... 277s Selecting previously unselected package librust-bytemuck-derive-dev:armhf. 277s Preparing to unpack .../201-librust-bytemuck-derive-dev_1.5.0-2_armhf.deb ... 277s Unpacking librust-bytemuck-derive-dev:armhf (1.5.0-2) ... 277s Selecting previously unselected package librust-bytemuck-dev:armhf. 277s Preparing to unpack .../202-librust-bytemuck-dev_1.14.0-1_armhf.deb ... 277s Unpacking librust-bytemuck-dev:armhf (1.14.0-1) ... 277s Selecting previously unselected package librust-atomic-dev:armhf. 277s Preparing to unpack .../203-librust-atomic-dev_0.6.0-1_armhf.deb ... 277s Unpacking librust-atomic-dev:armhf (0.6.0-1) ... 277s Selecting previously unselected package librust-md5-asm-dev:armhf. 277s Preparing to unpack .../204-librust-md5-asm-dev_0.5.0-2_armhf.deb ... 277s Unpacking librust-md5-asm-dev:armhf (0.5.0-2) ... 277s Selecting previously unselected package librust-md-5-dev:armhf. 277s Preparing to unpack .../205-librust-md-5-dev_0.10.6-1_armhf.deb ... 277s Unpacking librust-md-5-dev:armhf (0.10.6-1) ... 277s Selecting previously unselected package librust-cpufeatures-dev:armhf. 277s Preparing to unpack .../206-librust-cpufeatures-dev_0.2.11-1_armhf.deb ... 277s Unpacking librust-cpufeatures-dev:armhf (0.2.11-1) ... 277s Selecting previously unselected package librust-sha1-asm-dev:armhf. 277s Preparing to unpack .../207-librust-sha1-asm-dev_0.5.1-2_armhf.deb ... 277s Unpacking librust-sha1-asm-dev:armhf (0.5.1-2) ... 277s Selecting previously unselected package librust-sha1-dev:armhf. 277s Preparing to unpack .../208-librust-sha1-dev_0.10.6-1_armhf.deb ... 277s Unpacking librust-sha1-dev:armhf (0.10.6-1) ... 277s Selecting previously unselected package librust-slog-dev:armhf. 277s Preparing to unpack .../209-librust-slog-dev_2.7.0-1_armhf.deb ... 277s Unpacking librust-slog-dev:armhf (2.7.0-1) ... 277s Selecting previously unselected package librust-uuid-dev:armhf. 277s Preparing to unpack .../210-librust-uuid-dev_1.10.0-1_armhf.deb ... 277s Unpacking librust-uuid-dev:armhf (1.10.0-1) ... 277s Selecting previously unselected package librust-bytecheck-dev:armhf. 277s Preparing to unpack .../211-librust-bytecheck-dev_0.6.12-1_armhf.deb ... 277s Unpacking librust-bytecheck-dev:armhf (0.6.12-1) ... 277s Selecting previously unselected package librust-autocfg-dev:armhf. 277s Preparing to unpack .../212-librust-autocfg-dev_1.1.0-1_armhf.deb ... 277s Unpacking librust-autocfg-dev:armhf (1.1.0-1) ... 277s Selecting previously unselected package librust-num-traits-dev:armhf. 277s Preparing to unpack .../213-librust-num-traits-dev_0.2.19-2_armhf.deb ... 277s Unpacking librust-num-traits-dev:armhf (0.2.19-2) ... 277s Selecting previously unselected package librust-funty-dev:armhf. 277s Preparing to unpack .../214-librust-funty-dev_2.0.0-1_armhf.deb ... 277s Unpacking librust-funty-dev:armhf (2.0.0-1) ... 277s Selecting previously unselected package librust-radium-dev:armhf. 278s Preparing to unpack .../215-librust-radium-dev_1.1.0-1_armhf.deb ... 278s Unpacking librust-radium-dev:armhf (1.1.0-1) ... 278s Selecting previously unselected package librust-tap-dev:armhf. 278s Preparing to unpack .../216-librust-tap-dev_1.0.1-1_armhf.deb ... 278s Unpacking librust-tap-dev:armhf (1.0.1-1) ... 278s Selecting previously unselected package librust-traitobject-dev:armhf. 278s Preparing to unpack .../217-librust-traitobject-dev_0.1.0-1_armhf.deb ... 278s Unpacking librust-traitobject-dev:armhf (0.1.0-1) ... 278s Selecting previously unselected package librust-unsafe-any-dev:armhf. 278s Preparing to unpack .../218-librust-unsafe-any-dev_0.4.2-2_armhf.deb ... 278s Unpacking librust-unsafe-any-dev:armhf (0.4.2-2) ... 278s Selecting previously unselected package librust-typemap-dev:armhf. 278s Preparing to unpack .../219-librust-typemap-dev_0.3.3-2_armhf.deb ... 278s Unpacking librust-typemap-dev:armhf (0.3.3-2) ... 278s Selecting previously unselected package librust-wyz-dev:armhf. 278s Preparing to unpack .../220-librust-wyz-dev_0.5.1-1_armhf.deb ... 278s Unpacking librust-wyz-dev:armhf (0.5.1-1) ... 278s Selecting previously unselected package librust-bitvec-dev:armhf. 278s Preparing to unpack .../221-librust-bitvec-dev_1.0.1-1_armhf.deb ... 278s Unpacking librust-bitvec-dev:armhf (1.0.1-1) ... 278s Selecting previously unselected package librust-bytes-dev:armhf. 278s Preparing to unpack .../222-librust-bytes-dev_1.8.0-1_armhf.deb ... 278s Unpacking librust-bytes-dev:armhf (1.8.0-1) ... 278s Selecting previously unselected package librust-rend-dev:armhf. 278s Preparing to unpack .../223-librust-rend-dev_0.4.0-1_armhf.deb ... 278s Unpacking librust-rend-dev:armhf (0.4.0-1) ... 278s Selecting previously unselected package librust-rkyv-derive-dev:armhf. 278s Preparing to unpack .../224-librust-rkyv-derive-dev_0.7.44-1_armhf.deb ... 278s Unpacking librust-rkyv-derive-dev:armhf (0.7.44-1) ... 278s Selecting previously unselected package librust-seahash-dev:armhf. 278s Preparing to unpack .../225-librust-seahash-dev_4.1.0-1_armhf.deb ... 278s Unpacking librust-seahash-dev:armhf (4.1.0-1) ... 278s Selecting previously unselected package librust-smol-str-dev:armhf. 278s Preparing to unpack .../226-librust-smol-str-dev_0.2.0-1_armhf.deb ... 278s Unpacking librust-smol-str-dev:armhf (0.2.0-1) ... 278s Selecting previously unselected package librust-tinyvec-dev:armhf. 278s Preparing to unpack .../227-librust-tinyvec-dev_1.6.0-2_armhf.deb ... 278s Unpacking librust-tinyvec-dev:armhf (1.6.0-2) ... 278s Selecting previously unselected package librust-tinyvec-macros-dev:armhf. 278s Preparing to unpack .../228-librust-tinyvec-macros-dev_0.1.0-1_armhf.deb ... 278s Unpacking librust-tinyvec-macros-dev:armhf (0.1.0-1) ... 278s Selecting previously unselected package librust-tinyvec+tinyvec-macros-dev:armhf. 278s Preparing to unpack .../229-librust-tinyvec+tinyvec-macros-dev_1.6.0-2_armhf.deb ... 278s Unpacking librust-tinyvec+tinyvec-macros-dev:armhf (1.6.0-2) ... 278s Selecting previously unselected package librust-rkyv-dev:armhf. 278s Preparing to unpack .../230-librust-rkyv-dev_0.7.44-1_armhf.deb ... 278s Unpacking librust-rkyv-dev:armhf (0.7.44-1) ... 279s Selecting previously unselected package librust-num-complex-dev:armhf. 279s Preparing to unpack .../231-librust-num-complex-dev_0.4.6-2_armhf.deb ... 279s Unpacking librust-num-complex-dev:armhf (0.4.6-2) ... 279s Selecting previously unselected package librust-approx-dev:armhf. 279s Preparing to unpack .../232-librust-approx-dev_0.5.1-1_armhf.deb ... 279s Unpacking librust-approx-dev:armhf (0.5.1-1) ... 279s Selecting previously unselected package librust-array-init-dev:armhf. 279s Preparing to unpack .../233-librust-array-init-dev_2.0.1-1_armhf.deb ... 279s Unpacking librust-array-init-dev:armhf (2.0.1-1) ... 279s Selecting previously unselected package librust-async-attributes-dev. 279s Preparing to unpack .../234-librust-async-attributes-dev_1.1.2-6_all.deb ... 279s Unpacking librust-async-attributes-dev (1.1.2-6) ... 279s Selecting previously unselected package librust-concurrent-queue-dev:armhf. 279s Preparing to unpack .../235-librust-concurrent-queue-dev_2.5.0-4_armhf.deb ... 279s Unpacking librust-concurrent-queue-dev:armhf (2.5.0-4) ... 279s Selecting previously unselected package librust-parking-dev:armhf. 279s Preparing to unpack .../236-librust-parking-dev_2.2.0-1_armhf.deb ... 279s Unpacking librust-parking-dev:armhf (2.2.0-1) ... 279s Selecting previously unselected package librust-pin-project-lite-dev:armhf. 279s Preparing to unpack .../237-librust-pin-project-lite-dev_0.2.13-1_armhf.deb ... 279s Unpacking librust-pin-project-lite-dev:armhf (0.2.13-1) ... 279s Selecting previously unselected package librust-event-listener-dev. 279s Preparing to unpack .../238-librust-event-listener-dev_5.3.1-8_all.deb ... 279s Unpacking librust-event-listener-dev (5.3.1-8) ... 279s Selecting previously unselected package librust-event-listener-strategy-dev:armhf. 279s Preparing to unpack .../239-librust-event-listener-strategy-dev_0.5.2-3_armhf.deb ... 279s Unpacking librust-event-listener-strategy-dev:armhf (0.5.2-3) ... 279s Selecting previously unselected package librust-futures-core-dev:armhf. 279s Preparing to unpack .../240-librust-futures-core-dev_0.3.30-1_armhf.deb ... 279s Unpacking librust-futures-core-dev:armhf (0.3.30-1) ... 279s Selecting previously unselected package librust-async-channel-dev. 279s Preparing to unpack .../241-librust-async-channel-dev_2.3.1-8_all.deb ... 279s Unpacking librust-async-channel-dev (2.3.1-8) ... 279s Selecting previously unselected package librust-async-task-dev. 279s Preparing to unpack .../242-librust-async-task-dev_4.7.1-3_all.deb ... 279s Unpacking librust-async-task-dev (4.7.1-3) ... 279s Selecting previously unselected package librust-fastrand-dev:armhf. 279s Preparing to unpack .../243-librust-fastrand-dev_2.1.1-1_armhf.deb ... 279s Unpacking librust-fastrand-dev:armhf (2.1.1-1) ... 279s Selecting previously unselected package librust-futures-io-dev:armhf. 279s Preparing to unpack .../244-librust-futures-io-dev_0.3.31-1_armhf.deb ... 279s Unpacking librust-futures-io-dev:armhf (0.3.31-1) ... 279s Selecting previously unselected package librust-futures-lite-dev:armhf. 279s Preparing to unpack .../245-librust-futures-lite-dev_2.3.0-2_armhf.deb ... 279s Unpacking librust-futures-lite-dev:armhf (2.3.0-2) ... 279s Selecting previously unselected package librust-slab-dev:armhf. 279s Preparing to unpack .../246-librust-slab-dev_0.4.9-1_armhf.deb ... 279s Unpacking librust-slab-dev:armhf (0.4.9-1) ... 279s Selecting previously unselected package librust-async-executor-dev. 280s Preparing to unpack .../247-librust-async-executor-dev_1.13.1-1_all.deb ... 280s Unpacking librust-async-executor-dev (1.13.1-1) ... 280s Selecting previously unselected package librust-async-lock-dev. 280s Preparing to unpack .../248-librust-async-lock-dev_3.4.0-4_all.deb ... 280s Unpacking librust-async-lock-dev (3.4.0-4) ... 280s Selecting previously unselected package librust-atomic-waker-dev:armhf. 280s Preparing to unpack .../249-librust-atomic-waker-dev_1.1.2-1_armhf.deb ... 280s Unpacking librust-atomic-waker-dev:armhf (1.1.2-1) ... 280s Selecting previously unselected package librust-tracing-attributes-dev:armhf. 280s Preparing to unpack .../250-librust-tracing-attributes-dev_0.1.27-1_armhf.deb ... 280s Unpacking librust-tracing-attributes-dev:armhf (0.1.27-1) ... 280s Selecting previously unselected package librust-valuable-derive-dev:armhf. 280s Preparing to unpack .../251-librust-valuable-derive-dev_0.1.0-1_armhf.deb ... 280s Unpacking librust-valuable-derive-dev:armhf (0.1.0-1) ... 280s Selecting previously unselected package librust-valuable-dev:armhf. 280s Preparing to unpack .../252-librust-valuable-dev_0.1.0-4_armhf.deb ... 280s Unpacking librust-valuable-dev:armhf (0.1.0-4) ... 280s Selecting previously unselected package librust-tracing-core-dev:armhf. 280s Preparing to unpack .../253-librust-tracing-core-dev_0.1.32-1_armhf.deb ... 280s Unpacking librust-tracing-core-dev:armhf (0.1.32-1) ... 280s Selecting previously unselected package librust-tracing-dev:armhf. 280s Preparing to unpack .../254-librust-tracing-dev_0.1.40-1_armhf.deb ... 280s Unpacking librust-tracing-dev:armhf (0.1.40-1) ... 280s Selecting previously unselected package librust-blocking-dev. 280s Preparing to unpack .../255-librust-blocking-dev_1.6.1-5_all.deb ... 280s Unpacking librust-blocking-dev (1.6.1-5) ... 280s Selecting previously unselected package librust-async-fs-dev. 280s Preparing to unpack .../256-librust-async-fs-dev_2.1.2-4_all.deb ... 280s Unpacking librust-async-fs-dev (2.1.2-4) ... 280s Selecting previously unselected package librust-bitflags-dev:armhf. 280s Preparing to unpack .../257-librust-bitflags-dev_2.6.0-1_armhf.deb ... 280s Unpacking librust-bitflags-dev:armhf (2.6.0-1) ... 280s Selecting previously unselected package librust-compiler-builtins+core-dev:armhf. 280s Preparing to unpack .../258-librust-compiler-builtins+core-dev_0.1.101-1_armhf.deb ... 280s Unpacking librust-compiler-builtins+core-dev:armhf (0.1.101-1) ... 280s Selecting previously unselected package librust-compiler-builtins+rustc-dep-of-std-dev:armhf. 280s Preparing to unpack .../259-librust-compiler-builtins+rustc-dep-of-std-dev_0.1.101-1_armhf.deb ... 280s Unpacking librust-compiler-builtins+rustc-dep-of-std-dev:armhf (0.1.101-1) ... 280s Selecting previously unselected package librust-errno-dev:armhf. 280s Preparing to unpack .../260-librust-errno-dev_0.3.8-1_armhf.deb ... 280s Unpacking librust-errno-dev:armhf (0.3.8-1) ... 280s Selecting previously unselected package librust-linux-raw-sys-dev:armhf. 280s Preparing to unpack .../261-librust-linux-raw-sys-dev_0.4.14-1_armhf.deb ... 280s Unpacking librust-linux-raw-sys-dev:armhf (0.4.14-1) ... 280s Selecting previously unselected package librust-rustix-dev:armhf. 281s Preparing to unpack .../262-librust-rustix-dev_0.38.32-1_armhf.deb ... 281s Unpacking librust-rustix-dev:armhf (0.38.32-1) ... 281s Selecting previously unselected package librust-polling-dev:armhf. 281s Preparing to unpack .../263-librust-polling-dev_3.4.0-1_armhf.deb ... 281s Unpacking librust-polling-dev:armhf (3.4.0-1) ... 281s Selecting previously unselected package librust-async-io-dev:armhf. 281s Preparing to unpack .../264-librust-async-io-dev_2.3.3-4_armhf.deb ... 281s Unpacking librust-async-io-dev:armhf (2.3.3-4) ... 281s Selecting previously unselected package librust-mio-dev:armhf. 281s Preparing to unpack .../265-librust-mio-dev_1.0.2-2_armhf.deb ... 281s Unpacking librust-mio-dev:armhf (1.0.2-2) ... 281s Selecting previously unselected package librust-owning-ref-dev:armhf. 281s Preparing to unpack .../266-librust-owning-ref-dev_0.4.1-1_armhf.deb ... 281s Unpacking librust-owning-ref-dev:armhf (0.4.1-1) ... 281s Selecting previously unselected package librust-scopeguard-dev:armhf. 281s Preparing to unpack .../267-librust-scopeguard-dev_1.2.0-1_armhf.deb ... 281s Unpacking librust-scopeguard-dev:armhf (1.2.0-1) ... 281s Selecting previously unselected package librust-lock-api-dev:armhf. 281s Preparing to unpack .../268-librust-lock-api-dev_0.4.12-1_armhf.deb ... 281s Unpacking librust-lock-api-dev:armhf (0.4.12-1) ... 281s Selecting previously unselected package librust-parking-lot-dev:armhf. 281s Preparing to unpack .../269-librust-parking-lot-dev_0.12.3-1_armhf.deb ... 281s Unpacking librust-parking-lot-dev:armhf (0.12.3-1) ... 281s Selecting previously unselected package librust-signal-hook-registry-dev:armhf. 281s Preparing to unpack .../270-librust-signal-hook-registry-dev_1.4.0-1_armhf.deb ... 281s Unpacking librust-signal-hook-registry-dev:armhf (1.4.0-1) ... 281s Selecting previously unselected package librust-socket2-dev:armhf. 281s Preparing to unpack .../271-librust-socket2-dev_0.5.7-1_armhf.deb ... 281s Unpacking librust-socket2-dev:armhf (0.5.7-1) ... 281s Selecting previously unselected package librust-tokio-macros-dev:armhf. 281s Preparing to unpack .../272-librust-tokio-macros-dev_2.4.0-2_armhf.deb ... 281s Unpacking librust-tokio-macros-dev:armhf (2.4.0-2) ... 281s Selecting previously unselected package librust-tokio-dev:armhf. 281s Preparing to unpack .../273-librust-tokio-dev_1.39.3-3_armhf.deb ... 281s Unpacking librust-tokio-dev:armhf (1.39.3-3) ... 282s Selecting previously unselected package librust-async-global-executor-dev:armhf. 282s Preparing to unpack .../274-librust-async-global-executor-dev_2.4.1-5_armhf.deb ... 282s Unpacking librust-async-global-executor-dev:armhf (2.4.1-5) ... 282s Selecting previously unselected package librust-async-net-dev. 282s Preparing to unpack .../275-librust-async-net-dev_2.0.0-4_all.deb ... 282s Unpacking librust-async-net-dev (2.0.0-4) ... 282s Selecting previously unselected package librust-async-signal-dev:armhf. 282s Preparing to unpack .../276-librust-async-signal-dev_0.2.10-1_armhf.deb ... 282s Unpacking librust-async-signal-dev:armhf (0.2.10-1) ... 282s Selecting previously unselected package librust-async-process-dev. 282s Preparing to unpack .../277-librust-async-process-dev_2.3.0-1_all.deb ... 282s Unpacking librust-async-process-dev (2.3.0-1) ... 282s Selecting previously unselected package librust-kv-log-macro-dev. 282s Preparing to unpack .../278-librust-kv-log-macro-dev_1.0.8-4_all.deb ... 282s Unpacking librust-kv-log-macro-dev (1.0.8-4) ... 282s Selecting previously unselected package librust-pin-utils-dev:armhf. 282s Preparing to unpack .../279-librust-pin-utils-dev_0.1.0-1_armhf.deb ... 282s Unpacking librust-pin-utils-dev:armhf (0.1.0-1) ... 282s Selecting previously unselected package librust-async-std-dev. 282s Preparing to unpack .../280-librust-async-std-dev_1.13.0-1_all.deb ... 282s Unpacking librust-async-std-dev (1.13.0-1) ... 282s Selecting previously unselected package librust-base64-dev:armhf. 282s Preparing to unpack .../281-librust-base64-dev_0.21.7-1_armhf.deb ... 282s Unpacking librust-base64-dev:armhf (0.21.7-1) ... 282s Selecting previously unselected package librust-bit-vec-dev:armhf. 282s Preparing to unpack .../282-librust-bit-vec-dev_0.6.3-1_armhf.deb ... 282s Unpacking librust-bit-vec-dev:armhf (0.6.3-1) ... 282s Selecting previously unselected package librust-bit-set-dev:armhf. 282s Preparing to unpack .../283-librust-bit-set-dev_0.5.2-1_armhf.deb ... 282s Unpacking librust-bit-set-dev:armhf (0.5.2-1) ... 282s Selecting previously unselected package librust-bit-set+std-dev:armhf. 282s Preparing to unpack .../284-librust-bit-set+std-dev_0.5.2-1_armhf.deb ... 282s Unpacking librust-bit-set+std-dev:armhf (0.5.2-1) ... 282s Selecting previously unselected package librust-regex-syntax-dev:armhf. 282s Preparing to unpack .../285-librust-regex-syntax-dev_0.8.2-1_armhf.deb ... 282s Unpacking librust-regex-syntax-dev:armhf (0.8.2-1) ... 282s Selecting previously unselected package librust-regex-automata-dev:armhf. 282s Preparing to unpack .../286-librust-regex-automata-dev_0.4.7-1_armhf.deb ... 282s Unpacking librust-regex-automata-dev:armhf (0.4.7-1) ... 282s Selecting previously unselected package librust-bstr-dev:armhf. 282s Preparing to unpack .../287-librust-bstr-dev_1.7.0-2build1_armhf.deb ... 282s Unpacking librust-bstr-dev:armhf (1.7.0-2build1) ... 283s Selecting previously unselected package librust-bumpalo-dev:armhf. 283s Preparing to unpack .../288-librust-bumpalo-dev_3.16.0-1_armhf.deb ... 283s Unpacking librust-bumpalo-dev:armhf (3.16.0-1) ... 283s Selecting previously unselected package librust-cast-dev:armhf. 283s Preparing to unpack .../289-librust-cast-dev_0.3.0-1_armhf.deb ... 283s Unpacking librust-cast-dev:armhf (0.3.0-1) ... 283s Selecting previously unselected package librust-iana-time-zone-dev:armhf. 283s Preparing to unpack .../290-librust-iana-time-zone-dev_0.1.60-1_armhf.deb ... 283s Unpacking librust-iana-time-zone-dev:armhf (0.1.60-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-shared-dev:armhf. 283s Preparing to unpack .../291-librust-wasm-bindgen-shared-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-shared-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-backend-dev:armhf. 283s Preparing to unpack .../292-librust-wasm-bindgen-backend-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-backend-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-macro-support-dev:armhf. 283s Preparing to unpack .../293-librust-wasm-bindgen-macro-support-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-macro-support-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-macro-dev:armhf. 283s Preparing to unpack .../294-librust-wasm-bindgen-macro-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-macro-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-dev:armhf. 283s Preparing to unpack .../295-librust-wasm-bindgen-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-macro-support+spans-dev:armhf. 283s Preparing to unpack .../296-librust-wasm-bindgen-macro-support+spans-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-macro-support+spans-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen-macro+spans-dev:armhf. 283s Preparing to unpack .../297-librust-wasm-bindgen-macro+spans-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen-macro+spans-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen+spans-dev:armhf. 283s Preparing to unpack .../298-librust-wasm-bindgen+spans-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen+spans-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-wasm-bindgen+default-dev:armhf. 283s Preparing to unpack .../299-librust-wasm-bindgen+default-dev_0.2.87-1_armhf.deb ... 283s Unpacking librust-wasm-bindgen+default-dev:armhf (0.2.87-1) ... 283s Selecting previously unselected package librust-js-sys-dev:armhf. 283s Preparing to unpack .../300-librust-js-sys-dev_0.3.64-1_armhf.deb ... 283s Unpacking librust-js-sys-dev:armhf (0.3.64-1) ... 283s Selecting previously unselected package librust-pure-rust-locales-dev:armhf. 283s Preparing to unpack .../301-librust-pure-rust-locales-dev_0.8.1-1_armhf.deb ... 283s Unpacking librust-pure-rust-locales-dev:armhf (0.8.1-1) ... 283s Selecting previously unselected package librust-chrono-dev:armhf. 283s Preparing to unpack .../302-librust-chrono-dev_0.4.38-2_armhf.deb ... 283s Unpacking librust-chrono-dev:armhf (0.4.38-2) ... 284s Selecting previously unselected package librust-regex-dev:armhf. 284s Preparing to unpack .../303-librust-regex-dev_1.10.6-1_armhf.deb ... 284s Unpacking librust-regex-dev:armhf (1.10.6-1) ... 284s Selecting previously unselected package librust-parse-zoneinfo-dev:armhf. 284s Preparing to unpack .../304-librust-parse-zoneinfo-dev_0.3.0-1_armhf.deb ... 284s Unpacking librust-parse-zoneinfo-dev:armhf (0.3.0-1) ... 284s Selecting previously unselected package librust-siphasher-dev:armhf. 284s Preparing to unpack .../305-librust-siphasher-dev_0.3.10-1_armhf.deb ... 284s Unpacking librust-siphasher-dev:armhf (0.3.10-1) ... 284s Selecting previously unselected package librust-phf-shared-dev:armhf. 284s Preparing to unpack .../306-librust-phf-shared-dev_0.11.2-1_armhf.deb ... 284s Unpacking librust-phf-shared-dev:armhf (0.11.2-1) ... 284s Selecting previously unselected package librust-phf-dev:armhf. 284s Preparing to unpack .../307-librust-phf-dev_0.11.2-1_armhf.deb ... 284s Unpacking librust-phf-dev:armhf (0.11.2-1) ... 284s Selecting previously unselected package librust-uncased-dev:armhf. 284s Preparing to unpack .../308-librust-uncased-dev_0.9.6-2_armhf.deb ... 284s Unpacking librust-uncased-dev:armhf (0.9.6-2) ... 284s Selecting previously unselected package librust-phf-shared+uncased-dev:armhf. 284s Preparing to unpack .../309-librust-phf-shared+uncased-dev_0.11.2-1_armhf.deb ... 284s Unpacking librust-phf-shared+uncased-dev:armhf (0.11.2-1) ... 284s Selecting previously unselected package librust-phf+uncased-dev:armhf. 284s Preparing to unpack .../310-librust-phf+uncased-dev_0.11.2-1_armhf.deb ... 284s Unpacking librust-phf+uncased-dev:armhf (0.11.2-1) ... 284s Selecting previously unselected package librust-ciborium-io-dev:armhf. 284s Preparing to unpack .../311-librust-ciborium-io-dev_0.2.2-1_armhf.deb ... 284s Unpacking librust-ciborium-io-dev:armhf (0.2.2-1) ... 284s Selecting previously unselected package librust-half-dev:armhf. 284s Preparing to unpack .../312-librust-half-dev_1.8.2-4_armhf.deb ... 284s Unpacking librust-half-dev:armhf (1.8.2-4) ... 284s Selecting previously unselected package librust-ciborium-ll-dev:armhf. 284s Preparing to unpack .../313-librust-ciborium-ll-dev_0.2.2-1_armhf.deb ... 284s Unpacking librust-ciborium-ll-dev:armhf (0.2.2-1) ... 284s Selecting previously unselected package librust-ciborium-dev:armhf. 284s Preparing to unpack .../314-librust-ciborium-dev_0.2.2-2_armhf.deb ... 284s Unpacking librust-ciborium-dev:armhf (0.2.2-2) ... 284s Selecting previously unselected package librust-clap-lex-dev:armhf. 284s Preparing to unpack .../315-librust-clap-lex-dev_0.7.2-2_armhf.deb ... 284s Unpacking librust-clap-lex-dev:armhf (0.7.2-2) ... 284s Selecting previously unselected package librust-strsim-dev:armhf. 284s Preparing to unpack .../316-librust-strsim-dev_0.11.1-1_armhf.deb ... 284s Unpacking librust-strsim-dev:armhf (0.11.1-1) ... 284s Selecting previously unselected package librust-terminal-size-dev:armhf. 284s Preparing to unpack .../317-librust-terminal-size-dev_0.3.0-2_armhf.deb ... 284s Unpacking librust-terminal-size-dev:armhf (0.3.0-2) ... 285s Selecting previously unselected package librust-unicase-dev:armhf. 285s Preparing to unpack .../318-librust-unicase-dev_2.7.0-1_armhf.deb ... 285s Unpacking librust-unicase-dev:armhf (2.7.0-1) ... 285s Selecting previously unselected package librust-unicode-width-dev:armhf. 285s Preparing to unpack .../319-librust-unicode-width-dev_0.1.14-1_armhf.deb ... 285s Unpacking librust-unicode-width-dev:armhf (0.1.14-1) ... 285s Selecting previously unselected package librust-clap-builder-dev:armhf. 285s Preparing to unpack .../320-librust-clap-builder-dev_4.5.15-2_armhf.deb ... 285s Unpacking librust-clap-builder-dev:armhf (4.5.15-2) ... 285s Selecting previously unselected package librust-heck-dev:armhf. 285s Preparing to unpack .../321-librust-heck-dev_0.4.1-1_armhf.deb ... 285s Unpacking librust-heck-dev:armhf (0.4.1-1) ... 285s Selecting previously unselected package librust-clap-derive-dev:armhf. 285s Preparing to unpack .../322-librust-clap-derive-dev_4.5.13-2_armhf.deb ... 285s Unpacking librust-clap-derive-dev:armhf (4.5.13-2) ... 285s Selecting previously unselected package librust-clap-dev:armhf. 285s Preparing to unpack .../323-librust-clap-dev_4.5.16-1_armhf.deb ... 285s Unpacking librust-clap-dev:armhf (4.5.16-1) ... 285s Selecting previously unselected package librust-csv-core-dev:armhf. 285s Preparing to unpack .../324-librust-csv-core-dev_0.1.11-1_armhf.deb ... 285s Unpacking librust-csv-core-dev:armhf (0.1.11-1) ... 285s Selecting previously unselected package librust-csv-dev:armhf. 285s Preparing to unpack .../325-librust-csv-dev_1.3.0-1_armhf.deb ... 285s Unpacking librust-csv-dev:armhf (1.3.0-1) ... 285s Selecting previously unselected package librust-futures-sink-dev:armhf. 285s Preparing to unpack .../326-librust-futures-sink-dev_0.3.31-1_armhf.deb ... 285s Unpacking librust-futures-sink-dev:armhf (0.3.31-1) ... 285s Selecting previously unselected package librust-futures-channel-dev:armhf. 285s Preparing to unpack .../327-librust-futures-channel-dev_0.3.30-1_armhf.deb ... 285s Unpacking librust-futures-channel-dev:armhf (0.3.30-1) ... 285s Selecting previously unselected package librust-futures-task-dev:armhf. 285s Preparing to unpack .../328-librust-futures-task-dev_0.3.30-1_armhf.deb ... 285s Unpacking librust-futures-task-dev:armhf (0.3.30-1) ... 285s Selecting previously unselected package librust-futures-macro-dev:armhf. 285s Preparing to unpack .../329-librust-futures-macro-dev_0.3.30-1_armhf.deb ... 285s Unpacking librust-futures-macro-dev:armhf (0.3.30-1) ... 285s Selecting previously unselected package librust-futures-util-dev:armhf. 285s Preparing to unpack .../330-librust-futures-util-dev_0.3.30-2_armhf.deb ... 285s Unpacking librust-futures-util-dev:armhf (0.3.30-2) ... 285s Selecting previously unselected package librust-num-cpus-dev:armhf. 285s Preparing to unpack .../331-librust-num-cpus-dev_1.16.0-1_armhf.deb ... 285s Unpacking librust-num-cpus-dev:armhf (1.16.0-1) ... 286s Selecting previously unselected package librust-futures-executor-dev:armhf. 286s Preparing to unpack .../332-librust-futures-executor-dev_0.3.30-1_armhf.deb ... 286s Unpacking librust-futures-executor-dev:armhf (0.3.30-1) ... 286s Selecting previously unselected package librust-futures-dev:armhf. 286s Preparing to unpack .../333-librust-futures-dev_0.3.30-2_armhf.deb ... 286s Unpacking librust-futures-dev:armhf (0.3.30-2) ... 286s Selecting previously unselected package librust-is-terminal-dev:armhf. 286s Preparing to unpack .../334-librust-is-terminal-dev_0.4.13-1_armhf.deb ... 286s Unpacking librust-is-terminal-dev:armhf (0.4.13-1) ... 286s Selecting previously unselected package librust-itertools-dev:armhf. 286s Preparing to unpack .../335-librust-itertools-dev_0.10.5-1_armhf.deb ... 286s Unpacking librust-itertools-dev:armhf (0.10.5-1) ... 286s Selecting previously unselected package librust-oorandom-dev:armhf. 286s Preparing to unpack .../336-librust-oorandom-dev_11.1.3-1_armhf.deb ... 286s Unpacking librust-oorandom-dev:armhf (11.1.3-1) ... 286s Selecting previously unselected package librust-winapi-i686-pc-windows-gnu-dev:armhf. 286s Preparing to unpack .../337-librust-winapi-i686-pc-windows-gnu-dev_0.4.0-1_armhf.deb ... 286s Unpacking librust-winapi-i686-pc-windows-gnu-dev:armhf (0.4.0-1) ... 286s Selecting previously unselected package librust-winapi-x86-64-pc-windows-gnu-dev:armhf. 286s Preparing to unpack .../338-librust-winapi-x86-64-pc-windows-gnu-dev_0.4.0-1_armhf.deb ... 286s Unpacking librust-winapi-x86-64-pc-windows-gnu-dev:armhf (0.4.0-1) ... 286s Selecting previously unselected package librust-winapi-dev:armhf. 286s Preparing to unpack .../339-librust-winapi-dev_0.3.9-1_armhf.deb ... 286s Unpacking librust-winapi-dev:armhf (0.3.9-1) ... 286s Selecting previously unselected package librust-dirs-sys-next-dev:armhf. 286s Preparing to unpack .../340-librust-dirs-sys-next-dev_0.1.1-1_armhf.deb ... 286s Unpacking librust-dirs-sys-next-dev:armhf (0.1.1-1) ... 286s Selecting previously unselected package librust-dirs-next-dev:armhf. 286s Preparing to unpack .../341-librust-dirs-next-dev_2.0.0-1_armhf.deb ... 286s Unpacking librust-dirs-next-dev:armhf (2.0.0-1) ... 286s Selecting previously unselected package librust-float-ord-dev:armhf. 286s Preparing to unpack .../342-librust-float-ord-dev_0.3.2-1_armhf.deb ... 286s Unpacking librust-float-ord-dev:armhf (0.3.2-1) ... 286s Selecting previously unselected package librust-cmake-dev:armhf. 286s Preparing to unpack .../343-librust-cmake-dev_0.1.45-1_armhf.deb ... 286s Unpacking librust-cmake-dev:armhf (0.1.45-1) ... 286s Selecting previously unselected package librust-freetype-sys-dev:armhf. 286s Preparing to unpack .../344-librust-freetype-sys-dev_0.13.1-1_armhf.deb ... 286s Unpacking librust-freetype-sys-dev:armhf (0.13.1-1) ... 287s Selecting previously unselected package librust-freetype-dev:armhf. 287s Preparing to unpack .../345-librust-freetype-dev_0.7.0-4_armhf.deb ... 287s Unpacking librust-freetype-dev:armhf (0.7.0-4) ... 287s Selecting previously unselected package librust-spin-dev:armhf. 287s Preparing to unpack .../346-librust-spin-dev_0.9.8-4_armhf.deb ... 287s Unpacking librust-spin-dev:armhf (0.9.8-4) ... 287s Selecting previously unselected package librust-lazy-static-dev:armhf. 287s Preparing to unpack .../347-librust-lazy-static-dev_1.5.0-1_armhf.deb ... 287s Unpacking librust-lazy-static-dev:armhf (1.5.0-1) ... 287s Selecting previously unselected package librust-pathfinder-simd-dev:armhf. 287s Preparing to unpack .../348-librust-pathfinder-simd-dev_0.5.2-1_armhf.deb ... 287s Unpacking librust-pathfinder-simd-dev:armhf (0.5.2-1) ... 287s Selecting previously unselected package librust-pathfinder-geometry-dev:armhf. 287s Preparing to unpack .../349-librust-pathfinder-geometry-dev_0.5.1-1_armhf.deb ... 287s Unpacking librust-pathfinder-geometry-dev:armhf (0.5.1-1) ... 287s Selecting previously unselected package librust-winapi-util-dev:armhf. 287s Preparing to unpack .../350-librust-winapi-util-dev_0.1.6-1_armhf.deb ... 287s Unpacking librust-winapi-util-dev:armhf (0.1.6-1) ... 287s Selecting previously unselected package librust-same-file-dev:armhf. 287s Preparing to unpack .../351-librust-same-file-dev_1.0.6-1_armhf.deb ... 287s Unpacking librust-same-file-dev:armhf (1.0.6-1) ... 287s Selecting previously unselected package librust-walkdir-dev:armhf. 287s Preparing to unpack .../352-librust-walkdir-dev_2.5.0-1_armhf.deb ... 287s Unpacking librust-walkdir-dev:armhf (2.5.0-1) ... 287s Selecting previously unselected package librust-const-cstr-dev:armhf. 287s Preparing to unpack .../353-librust-const-cstr-dev_0.3.0-1_armhf.deb ... 287s Unpacking librust-const-cstr-dev:armhf (0.3.0-1) ... 287s Selecting previously unselected package librust-libloading-dev:armhf. 287s Preparing to unpack .../354-librust-libloading-dev_0.8.5-1_armhf.deb ... 287s Unpacking librust-libloading-dev:armhf (0.8.5-1) ... 287s Selecting previously unselected package librust-dlib-dev:armhf. 287s Preparing to unpack .../355-librust-dlib-dev_0.5.2-2_armhf.deb ... 287s Unpacking librust-dlib-dev:armhf (0.5.2-2) ... 287s Selecting previously unselected package librust-yeslogic-fontconfig-sys-dev:armhf. 287s Preparing to unpack .../356-librust-yeslogic-fontconfig-sys-dev_3.0.1-1_armhf.deb ... 287s Unpacking librust-yeslogic-fontconfig-sys-dev:armhf (3.0.1-1) ... 287s Selecting previously unselected package librust-font-kit-dev:armhf. 287s Preparing to unpack .../357-librust-font-kit-dev_0.11.0-2_armhf.deb ... 287s Unpacking librust-font-kit-dev:armhf (0.11.0-2) ... 287s Selecting previously unselected package librust-color-quant-dev:armhf. 287s Preparing to unpack .../358-librust-color-quant-dev_1.1.0-1_armhf.deb ... 287s Unpacking librust-color-quant-dev:armhf (1.1.0-1) ... 288s Selecting previously unselected package librust-weezl-dev:armhf. 288s Preparing to unpack .../359-librust-weezl-dev_0.1.5-1_armhf.deb ... 288s Unpacking librust-weezl-dev:armhf (0.1.5-1) ... 288s Selecting previously unselected package librust-gif-dev:armhf. 288s Preparing to unpack .../360-librust-gif-dev_0.11.3-1_armhf.deb ... 288s Unpacking librust-gif-dev:armhf (0.11.3-1) ... 288s Selecting previously unselected package librust-jpeg-decoder-dev:armhf. 288s Preparing to unpack .../361-librust-jpeg-decoder-dev_0.3.0-1_armhf.deb ... 288s Unpacking librust-jpeg-decoder-dev:armhf (0.3.0-1) ... 288s Selecting previously unselected package librust-num-integer-dev:armhf. 288s Preparing to unpack .../362-librust-num-integer-dev_0.1.46-1_armhf.deb ... 288s Unpacking librust-num-integer-dev:armhf (0.1.46-1) ... 288s Selecting previously unselected package librust-humantime-dev:armhf. 288s Preparing to unpack .../363-librust-humantime-dev_2.1.0-1_armhf.deb ... 288s Unpacking librust-humantime-dev:armhf (2.1.0-1) ... 288s Selecting previously unselected package librust-termcolor-dev:armhf. 288s Preparing to unpack .../364-librust-termcolor-dev_1.4.1-1_armhf.deb ... 288s Unpacking librust-termcolor-dev:armhf (1.4.1-1) ... 288s Selecting previously unselected package librust-env-logger-dev:armhf. 288s Preparing to unpack .../365-librust-env-logger-dev_0.10.2-2_armhf.deb ... 288s Unpacking librust-env-logger-dev:armhf (0.10.2-2) ... 288s Selecting previously unselected package librust-quickcheck-dev:armhf. 288s Preparing to unpack .../366-librust-quickcheck-dev_1.0.3-3_armhf.deb ... 288s Unpacking librust-quickcheck-dev:armhf (1.0.3-3) ... 288s Selecting previously unselected package librust-num-bigint-dev:armhf. 288s Preparing to unpack .../367-librust-num-bigint-dev_0.4.6-1_armhf.deb ... 288s Unpacking librust-num-bigint-dev:armhf (0.4.6-1) ... 288s Selecting previously unselected package librust-num-rational-dev:armhf. 288s Preparing to unpack .../368-librust-num-rational-dev_0.4.2-1_armhf.deb ... 288s Unpacking librust-num-rational-dev:armhf (0.4.2-1) ... 288s Selecting previously unselected package librust-png-dev:armhf. 288s Preparing to unpack .../369-librust-png-dev_0.17.7-3_armhf.deb ... 288s Unpacking librust-png-dev:armhf (0.17.7-3) ... 288s Selecting previously unselected package librust-qoi-dev:armhf. 288s Preparing to unpack .../370-librust-qoi-dev_0.4.1-2_armhf.deb ... 288s Unpacking librust-qoi-dev:armhf (0.4.1-2) ... 288s Selecting previously unselected package librust-tiff-dev:armhf. 288s Preparing to unpack .../371-librust-tiff-dev_0.9.0-1_armhf.deb ... 288s Unpacking librust-tiff-dev:armhf (0.9.0-1) ... 288s Selecting previously unselected package libsharpyuv0:armhf. 288s Preparing to unpack .../372-libsharpyuv0_1.4.0-0.1_armhf.deb ... 288s Unpacking libsharpyuv0:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libwebp7:armhf. 289s Preparing to unpack .../373-libwebp7_1.4.0-0.1_armhf.deb ... 289s Unpacking libwebp7:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libwebpdemux2:armhf. 289s Preparing to unpack .../374-libwebpdemux2_1.4.0-0.1_armhf.deb ... 289s Unpacking libwebpdemux2:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libwebpmux3:armhf. 289s Preparing to unpack .../375-libwebpmux3_1.4.0-0.1_armhf.deb ... 289s Unpacking libwebpmux3:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libwebpdecoder3:armhf. 289s Preparing to unpack .../376-libwebpdecoder3_1.4.0-0.1_armhf.deb ... 289s Unpacking libwebpdecoder3:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libsharpyuv-dev:armhf. 289s Preparing to unpack .../377-libsharpyuv-dev_1.4.0-0.1_armhf.deb ... 289s Unpacking libsharpyuv-dev:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package libwebp-dev:armhf. 289s Preparing to unpack .../378-libwebp-dev_1.4.0-0.1_armhf.deb ... 289s Unpacking libwebp-dev:armhf (1.4.0-0.1) ... 289s Selecting previously unselected package librust-libwebp-sys-dev:armhf. 289s Preparing to unpack .../379-librust-libwebp-sys-dev_0.9.5-1build1_armhf.deb ... 289s Unpacking librust-libwebp-sys-dev:armhf (0.9.5-1build1) ... 289s Selecting previously unselected package librust-webp-dev:armhf. 289s Preparing to unpack .../380-librust-webp-dev_0.2.6-1_armhf.deb ... 289s Unpacking librust-webp-dev:armhf (0.2.6-1) ... 289s Selecting previously unselected package librust-image-dev:armhf. 289s Preparing to unpack .../381-librust-image-dev_0.24.7-2_armhf.deb ... 289s Unpacking librust-image-dev:armhf (0.24.7-2) ... 289s Selecting previously unselected package librust-plotters-backend-dev:armhf. 289s Preparing to unpack .../382-librust-plotters-backend-dev_0.3.7-1_armhf.deb ... 289s Unpacking librust-plotters-backend-dev:armhf (0.3.7-1) ... 289s Selecting previously unselected package librust-plotters-bitmap-dev:armhf. 289s Preparing to unpack .../383-librust-plotters-bitmap-dev_0.3.3-3_armhf.deb ... 289s Unpacking librust-plotters-bitmap-dev:armhf (0.3.3-3) ... 289s Selecting previously unselected package librust-plotters-svg-dev:armhf. 289s Preparing to unpack .../384-librust-plotters-svg-dev_0.3.5-1_armhf.deb ... 289s Unpacking librust-plotters-svg-dev:armhf (0.3.5-1) ... 289s Selecting previously unselected package librust-web-sys-dev:armhf. 289s Preparing to unpack .../385-librust-web-sys-dev_0.3.64-2_armhf.deb ... 289s Unpacking librust-web-sys-dev:armhf (0.3.64-2) ... 290s Selecting previously unselected package librust-plotters-dev:armhf. 290s Preparing to unpack .../386-librust-plotters-dev_0.3.5-4_armhf.deb ... 290s Unpacking librust-plotters-dev:armhf (0.3.5-4) ... 290s Selecting previously unselected package librust-smol-dev. 290s Preparing to unpack .../387-librust-smol-dev_2.0.2-1_all.deb ... 290s Unpacking librust-smol-dev (2.0.2-1) ... 290s Selecting previously unselected package librust-tinytemplate-dev:armhf. 290s Preparing to unpack .../388-librust-tinytemplate-dev_1.2.1-1_armhf.deb ... 290s Unpacking librust-tinytemplate-dev:armhf (1.2.1-1) ... 290s Selecting previously unselected package librust-criterion-dev. 290s Preparing to unpack .../389-librust-criterion-dev_0.5.1-6_all.deb ... 290s Unpacking librust-criterion-dev (0.5.1-6) ... 290s Selecting previously unselected package librust-phf-generator-dev:armhf. 290s Preparing to unpack .../390-librust-phf-generator-dev_0.11.2-2_armhf.deb ... 290s Unpacking librust-phf-generator-dev:armhf (0.11.2-2) ... 290s Selecting previously unselected package librust-phf-codegen-dev:armhf. 290s Preparing to unpack .../391-librust-phf-codegen-dev_0.11.2-1_armhf.deb ... 290s Unpacking librust-phf-codegen-dev:armhf (0.11.2-1) ... 290s Selecting previously unselected package librust-chrono-tz-build-dev:armhf. 290s Preparing to unpack .../392-librust-chrono-tz-build-dev_0.2.1-1_armhf.deb ... 290s Unpacking librust-chrono-tz-build-dev:armhf (0.2.1-1) ... 290s Selecting previously unselected package librust-chrono-tz-dev:armhf. 291s Preparing to unpack .../393-librust-chrono-tz-dev_0.8.6-2_armhf.deb ... 291s Unpacking librust-chrono-tz-dev:armhf (0.8.6-2) ... 291s Selecting previously unselected package librust-ctor-dev:armhf. 291s Preparing to unpack .../394-librust-ctor-dev_0.1.26-1_armhf.deb ... 291s Unpacking librust-ctor-dev:armhf (0.1.26-1) ... 291s Selecting previously unselected package librust-powerfmt-macros-dev:armhf. 291s Preparing to unpack .../395-librust-powerfmt-macros-dev_0.1.0-1_armhf.deb ... 291s Unpacking librust-powerfmt-macros-dev:armhf (0.1.0-1) ... 291s Selecting previously unselected package librust-powerfmt-dev:armhf. 291s Preparing to unpack .../396-librust-powerfmt-dev_0.2.0-1_armhf.deb ... 291s Unpacking librust-powerfmt-dev:armhf (0.2.0-1) ... 291s Selecting previously unselected package librust-deranged-dev:armhf. 291s Preparing to unpack .../397-librust-deranged-dev_0.3.11-1_armhf.deb ... 291s Unpacking librust-deranged-dev:armhf (0.3.11-1) ... 291s Selecting previously unselected package librust-eui48-dev:armhf. 291s Preparing to unpack .../398-librust-eui48-dev_1.1.0-2_armhf.deb ... 291s Unpacking librust-eui48-dev:armhf (1.1.0-2) ... 291s Selecting previously unselected package librust-indenter-dev:armhf. 291s Preparing to unpack .../399-librust-indenter-dev_0.3.3-1_armhf.deb ... 291s Unpacking librust-indenter-dev:armhf (0.3.3-1) ... 291s Selecting previously unselected package librust-eyre-dev:armhf. 291s Preparing to unpack .../400-librust-eyre-dev_0.6.12-1_armhf.deb ... 291s Unpacking librust-eyre-dev:armhf (0.6.12-1) ... 291s Selecting previously unselected package librust-eyre+default-dev:armhf. 291s Preparing to unpack .../401-librust-eyre+default-dev_0.6.12-1_armhf.deb ... 291s Unpacking librust-eyre+default-dev:armhf (0.6.12-1) ... 291s Selecting previously unselected package librust-fancy-regex-dev:armhf. 291s Preparing to unpack .../402-librust-fancy-regex-dev_0.11.0-2_armhf.deb ... 291s Unpacking librust-fancy-regex-dev:armhf (0.11.0-2) ... 291s Selecting previously unselected package librust-fnv-dev:armhf. 291s Preparing to unpack .../403-librust-fnv-dev_1.0.7-1_armhf.deb ... 291s Unpacking librust-fnv-dev:armhf (1.0.7-1) ... 291s Selecting previously unselected package librust-geo-types-dev:armhf. 291s Preparing to unpack .../404-librust-geo-types-dev_0.7.11-2_armhf.deb ... 291s Unpacking librust-geo-types-dev:armhf (0.7.11-2) ... 291s Selecting previously unselected package librust-ghost-dev:armhf. 291s Preparing to unpack .../405-librust-ghost-dev_0.1.5-1_armhf.deb ... 291s Unpacking librust-ghost-dev:armhf (0.1.5-1) ... 291s Selecting previously unselected package librust-hmac-dev:armhf. 291s Preparing to unpack .../406-librust-hmac-dev_0.12.1-1_armhf.deb ... 291s Unpacking librust-hmac-dev:armhf (0.12.1-1) ... 292s Selecting previously unselected package librust-indoc-dev:armhf. 292s Preparing to unpack .../407-librust-indoc-dev_2.0.5-1_armhf.deb ... 292s Unpacking librust-indoc-dev:armhf (2.0.5-1) ... 292s Selecting previously unselected package librust-inventory-dev:armhf. 292s Preparing to unpack .../408-librust-inventory-dev_0.3.2-1_armhf.deb ... 292s Unpacking librust-inventory-dev:armhf (0.3.2-1) ... 292s Selecting previously unselected package librust-memoffset-dev:armhf. 292s Preparing to unpack .../409-librust-memoffset-dev_0.8.0-1_armhf.deb ... 292s Unpacking librust-memoffset-dev:armhf (0.8.0-1) ... 292s Selecting previously unselected package librust-num-conv-dev:armhf. 292s Preparing to unpack .../410-librust-num-conv-dev_0.1.0-1_armhf.deb ... 292s Unpacking librust-num-conv-dev:armhf (0.1.0-1) ... 292s Selecting previously unselected package librust-num-threads-dev:armhf. 292s Preparing to unpack .../411-librust-num-threads-dev_0.1.7-1_armhf.deb ... 292s Unpacking librust-num-threads-dev:armhf (0.1.7-1) ... 292s Selecting previously unselected package librust-postgres-derive-dev:armhf. 292s Preparing to unpack .../412-librust-postgres-derive-dev_0.4.5-1_armhf.deb ... 292s Unpacking librust-postgres-derive-dev:armhf (0.4.5-1) ... 292s Selecting previously unselected package librust-sha2-asm-dev:armhf. 292s Preparing to unpack .../413-librust-sha2-asm-dev_0.6.2-2_armhf.deb ... 292s Unpacking librust-sha2-asm-dev:armhf (0.6.2-2) ... 292s Selecting previously unselected package librust-sha2-dev:armhf. 292s Preparing to unpack .../414-librust-sha2-dev_0.10.8-1_armhf.deb ... 292s Unpacking librust-sha2-dev:armhf (0.10.8-1) ... 292s Selecting previously unselected package librust-unicode-bidi-dev:armhf. 292s Preparing to unpack .../415-librust-unicode-bidi-dev_0.3.13-1_armhf.deb ... 292s Unpacking librust-unicode-bidi-dev:armhf (0.3.13-1) ... 292s Selecting previously unselected package librust-unicode-normalization-dev:armhf. 292s Preparing to unpack .../416-librust-unicode-normalization-dev_0.1.22-1_armhf.deb ... 292s Unpacking librust-unicode-normalization-dev:armhf (0.1.22-1) ... 292s Selecting previously unselected package librust-stringprep-dev:armhf. 292s Preparing to unpack .../417-librust-stringprep-dev_0.1.2-1_armhf.deb ... 292s Unpacking librust-stringprep-dev:armhf (0.1.2-1) ... 292s Selecting previously unselected package librust-postgres-protocol-dev:armhf. 292s Preparing to unpack .../418-librust-postgres-protocol-dev_0.6.6-2_armhf.deb ... 292s Unpacking librust-postgres-protocol-dev:armhf (0.6.6-2) ... 292s Selecting previously unselected package librust-time-core-dev:armhf. 292s Preparing to unpack .../419-librust-time-core-dev_0.1.2-1_armhf.deb ... 292s Unpacking librust-time-core-dev:armhf (0.1.2-1) ... 292s Selecting previously unselected package librust-time-macros-dev:armhf. 293s Preparing to unpack .../420-librust-time-macros-dev_0.2.16-1_armhf.deb ... 293s Unpacking librust-time-macros-dev:armhf (0.2.16-1) ... 293s Selecting previously unselected package librust-time-dev:armhf. 293s Preparing to unpack .../421-librust-time-dev_0.3.36-2_armhf.deb ... 293s Unpacking librust-time-dev:armhf (0.3.36-2) ... 293s Selecting previously unselected package librust-postgres-types-dev:armhf. 293s Preparing to unpack .../422-librust-postgres-types-dev_0.2.6-2_armhf.deb ... 293s Unpacking librust-postgres-types-dev:armhf (0.2.6-2) ... 293s Selecting previously unselected package librust-rand-xorshift-dev:armhf. 293s Preparing to unpack .../423-librust-rand-xorshift-dev_0.3.0-2_armhf.deb ... 293s Unpacking librust-rand-xorshift-dev:armhf (0.3.0-2) ... 293s Selecting previously unselected package librust-quick-error-dev:armhf. 293s Preparing to unpack .../424-librust-quick-error-dev_2.0.1-1_armhf.deb ... 293s Unpacking librust-quick-error-dev:armhf (2.0.1-1) ... 293s Selecting previously unselected package librust-tempfile-dev:armhf. 293s Preparing to unpack .../425-librust-tempfile-dev_3.10.1-1_armhf.deb ... 293s Unpacking librust-tempfile-dev:armhf (3.10.1-1) ... 293s Selecting previously unselected package librust-rusty-fork-dev:armhf. 293s Preparing to unpack .../426-librust-rusty-fork-dev_0.3.0-1_armhf.deb ... 293s Unpacking librust-rusty-fork-dev:armhf (0.3.0-1) ... 293s Selecting previously unselected package librust-wait-timeout-dev:armhf. 293s Preparing to unpack .../427-librust-wait-timeout-dev_0.2.0-1_armhf.deb ... 293s Unpacking librust-wait-timeout-dev:armhf (0.2.0-1) ... 293s Selecting previously unselected package librust-rusty-fork+wait-timeout-dev:armhf. 293s Preparing to unpack .../428-librust-rusty-fork+wait-timeout-dev_0.3.0-1_armhf.deb ... 293s Unpacking librust-rusty-fork+wait-timeout-dev:armhf (0.3.0-1) ... 293s Selecting previously unselected package librust-unarray-dev:armhf. 293s Preparing to unpack .../429-librust-unarray-dev_0.1.4-1_armhf.deb ... 293s Unpacking librust-unarray-dev:armhf (0.1.4-1) ... 293s Selecting previously unselected package librust-proptest-dev:armhf. 293s Preparing to unpack .../430-librust-proptest-dev_1.5.0-2_armhf.deb ... 293s Unpacking librust-proptest-dev:armhf (1.5.0-2) ... 293s Selecting previously unselected package llvm-19-runtime. 293s Preparing to unpack .../431-llvm-19-runtime_1%3a19.1.2-1ubuntu1_armhf.deb ... 293s Unpacking llvm-19-runtime (1:19.1.2-1ubuntu1) ... 293s Selecting previously unselected package llvm-runtime:armhf. 293s Preparing to unpack .../432-llvm-runtime_1%3a19.0-60~exp1_armhf.deb ... 293s Unpacking llvm-runtime:armhf (1:19.0-60~exp1) ... 293s Selecting previously unselected package llvm-19-linker-tools. 294s Preparing to unpack .../433-llvm-19-linker-tools_1%3a19.1.2-1ubuntu1_armhf.deb ... 294s Unpacking llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 294s Selecting previously unselected package libpfm4:armhf. 294s Preparing to unpack .../434-libpfm4_4.13.0+git83-g91970fe-1_armhf.deb ... 294s Unpacking libpfm4:armhf (4.13.0+git83-g91970fe-1) ... 294s Selecting previously unselected package llvm-19. 294s Preparing to unpack .../435-llvm-19_1%3a19.1.2-1ubuntu1_armhf.deb ... 294s Unpacking llvm-19 (1:19.1.2-1ubuntu1) ... 294s Selecting previously unselected package llvm. 294s Preparing to unpack .../436-llvm_1%3a19.0-60~exp1_armhf.deb ... 294s Unpacking llvm (1:19.0-60~exp1) ... 294s Selecting previously unselected package binutils-mingw-w64-x86-64. 294s Preparing to unpack .../437-binutils-mingw-w64-x86-64_2.43.1-4ubuntu1+12_armhf.deb ... 294s Unpacking binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 295s Selecting previously unselected package binutils-mingw-w64-i686. 295s Preparing to unpack .../438-binutils-mingw-w64-i686_2.43.1-4ubuntu1+12_armhf.deb ... 295s Unpacking binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 295s Selecting previously unselected package librust-python3-dll-a-dev:armhf. 295s Preparing to unpack .../439-librust-python3-dll-a-dev_0.2.10-1_armhf.deb ... 295s Unpacking librust-python3-dll-a-dev:armhf (0.2.10-1) ... 295s Selecting previously unselected package librust-target-lexicon-dev:armhf. 295s Preparing to unpack .../440-librust-target-lexicon-dev_0.12.14-1_armhf.deb ... 295s Unpacking librust-target-lexicon-dev:armhf (0.12.14-1) ... 295s Selecting previously unselected package librust-pyo3-build-config-dev:armhf. 295s Preparing to unpack .../441-librust-pyo3-build-config-dev_0.22.6-1_armhf.deb ... 295s Unpacking librust-pyo3-build-config-dev:armhf (0.22.6-1) ... 295s Selecting previously unselected package python3.12-dev. 295s Preparing to unpack .../442-python3.12-dev_3.12.7-3_armhf.deb ... 295s Unpacking python3.12-dev (3.12.7-3) ... 295s Selecting previously unselected package librust-pyo3-ffi-dev:armhf. 295s Preparing to unpack .../443-librust-pyo3-ffi-dev_0.22.6-1build1_armhf.deb ... 295s Unpacking librust-pyo3-ffi-dev:armhf (0.22.6-1build1) ... 295s Selecting previously unselected package librust-pyo3-macros-backend-dev:armhf. 295s Preparing to unpack .../444-librust-pyo3-macros-backend-dev_0.22.6-1_armhf.deb ... 295s Unpacking librust-pyo3-macros-backend-dev:armhf (0.22.6-1) ... 295s Selecting previously unselected package librust-pyo3-macros-dev:armhf. 295s Preparing to unpack .../445-librust-pyo3-macros-dev_0.22.6-1_armhf.deb ... 295s Unpacking librust-pyo3-macros-dev:armhf (0.22.6-1) ... 295s Selecting previously unselected package librust-rust-decimal-dev:armhf. 295s Preparing to unpack .../446-librust-rust-decimal-dev_1.36.0-1_armhf.deb ... 295s Unpacking librust-rust-decimal-dev:armhf (1.36.0-1) ... 295s Selecting previously unselected package librust-unindent-dev:armhf. 295s Preparing to unpack .../447-librust-unindent-dev_0.2.3-1_armhf.deb ... 295s Unpacking librust-unindent-dev:armhf (0.2.3-1) ... 296s Selecting previously unselected package librust-pyo3-dev:armhf. 296s Preparing to unpack .../448-librust-pyo3-dev_0.22.6-1_armhf.deb ... 296s Unpacking librust-pyo3-dev:armhf (0.22.6-1) ... 296s Selecting previously unselected package librust-rustc-hash-dev:armhf. 296s Preparing to unpack .../449-librust-rustc-hash-dev_1.1.0-1_armhf.deb ... 296s Unpacking librust-rustc-hash-dev:armhf (1.1.0-1) ... 296s Selecting previously unselected package pybuild-plugin-autopkgtest. 296s Preparing to unpack .../450-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 296s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 296s Selecting previously unselected package python3-packaging. 296s Preparing to unpack .../451-python3-packaging_24.2-1_all.deb ... 296s Unpacking python3-packaging (24.2-1) ... 296s Selecting previously unselected package python3-pyproject-hooks. 296s Preparing to unpack .../452-python3-pyproject-hooks_1.2.0-1_all.deb ... 296s Unpacking python3-pyproject-hooks (1.2.0-1) ... 296s Selecting previously unselected package python3-toml. 296s Preparing to unpack .../453-python3-toml_0.10.2-1_all.deb ... 296s Unpacking python3-toml (0.10.2-1) ... 296s Selecting previously unselected package python3-wheel. 296s Preparing to unpack .../454-python3-wheel_0.45.1-1_all.deb ... 296s Unpacking python3-wheel (0.45.1-1) ... 296s Selecting previously unselected package python3-build. 296s Preparing to unpack .../455-python3-build_1.2.2-1_all.deb ... 296s Unpacking python3-build (1.2.2-1) ... 296s Selecting previously unselected package python3-installer. 296s Preparing to unpack .../456-python3-installer_0.7.0+dfsg1-3_all.deb ... 296s Unpacking python3-installer (0.7.0+dfsg1-3) ... 296s Selecting previously unselected package pybuild-plugin-pyproject. 296s Preparing to unpack .../457-pybuild-plugin-pyproject_6.20241024_all.deb ... 296s Unpacking pybuild-plugin-pyproject (6.20241024) ... 296s Selecting previously unselected package python3-all. 296s Preparing to unpack .../458-python3-all_3.12.6-0ubuntu1_armhf.deb ... 296s Unpacking python3-all (3.12.6-0ubuntu1) ... 296s Selecting previously unselected package python3-dateutil. 297s Preparing to unpack .../459-python3-dateutil_2.9.0-3_all.deb ... 297s Unpacking python3-dateutil (2.9.0-3) ... 297s Selecting previously unselected package python3-sortedcontainers. 297s Preparing to unpack .../460-python3-sortedcontainers_2.4.0-2_all.deb ... 297s Unpacking python3-sortedcontainers (2.4.0-2) ... 297s Selecting previously unselected package python3-hypothesis. 297s Preparing to unpack .../461-python3-hypothesis_6.119.3-1_all.deb ... 297s Unpacking python3-hypothesis (6.119.3-1) ... 297s Selecting previously unselected package python3-iniconfig. 297s Preparing to unpack .../462-python3-iniconfig_1.1.1-2_all.deb ... 297s Unpacking python3-iniconfig (1.1.1-2) ... 297s Selecting previously unselected package python3-pluggy. 297s Preparing to unpack .../463-python3-pluggy_1.5.0-1_all.deb ... 297s Unpacking python3-pluggy (1.5.0-1) ... 297s Selecting previously unselected package python3-pytest. 297s Preparing to unpack .../464-python3-pytest_8.3.3-1_all.deb ... 297s Unpacking python3-pytest (8.3.3-1) ... 297s Selecting previously unselected package python3-regex. 297s Preparing to unpack .../465-python3-regex_0.1.20240724-1build1_armhf.deb ... 297s Unpacking python3-regex (0.1.20240724-1build1) ... 297s Selecting previously unselected package python3-semantic-version. 297s Preparing to unpack .../466-python3-semantic-version_2.10.0-2_all.deb ... 297s Unpacking python3-semantic-version (2.10.0-2) ... 297s Selecting previously unselected package rustc. 297s Preparing to unpack .../467-rustc_1.80.1ubuntu2_armhf.deb ... 297s Unpacking rustc (1.80.1ubuntu2) ... 297s Selecting previously unselected package cargo. 297s Preparing to unpack .../468-cargo_1.80.1ubuntu2_armhf.deb ... 297s Unpacking cargo (1.80.1ubuntu2) ... 297s Selecting previously unselected package python3-setuptools-rust. 297s Preparing to unpack .../469-python3-setuptools-rust_1.9.0+dfsg-2_all.deb ... 297s Unpacking python3-setuptools-rust (1.9.0+dfsg-2) ... 297s Selecting previously unselected package python3-tiktoken. 297s Preparing to unpack .../470-python3-tiktoken_0.8.0-1build1_armhf.deb ... 297s Unpacking python3-tiktoken (0.8.0-1build1) ... 297s Selecting previously unselected package autopkgtest-satdep. 297s Preparing to unpack .../471-1-autopkgtest-satdep.deb ... 297s Unpacking autopkgtest-satdep (0) ... 298s Setting up dh-python (6.20241024) ... 298s Setting up librust-ciborium-io-dev:armhf (0.2.2-1) ... 298s Setting up librust-crossbeam-utils-dev:armhf (0.8.19-1) ... 298s Setting up librust-parking-dev:armhf (2.2.0-1) ... 298s Setting up librust-ppv-lite86-dev:armhf (0.2.16-1) ... 298s Setting up python3-iniconfig (1.1.1-2) ... 298s Setting up libllvm19:armhf (1:19.1.2-1ubuntu1) ... 298s Setting up libsharpyuv0:armhf (1.4.0-0.1) ... 298s Setting up librust-pin-utils-dev:armhf (0.1.0-1) ... 298s Setting up librust-fnv-dev:armhf (1.0.7-1) ... 298s Setting up librust-unindent-dev:armhf (0.2.3-1) ... 298s Setting up librust-quick-error-dev:armhf (2.0.1-1) ... 298s Setting up librust-traitobject-dev:armhf (0.1.0-1) ... 298s Setting up librust-either-dev:armhf (1.13.0-1) ... 298s Setting up binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 298s Setting up librust-adler-dev:armhf (1.0.2-2) ... 298s Setting up librust-version-check-dev:armhf (0.9.5-1) ... 298s Setting up librust-base64-dev:armhf (0.21.7-1) ... 298s Setting up librust-indoc-dev:armhf (2.0.5-1) ... 298s Setting up librust-anstyle-dev:armhf (1.0.8-1) ... 298s Setting up librust-winapi-i686-pc-windows-gnu-dev:armhf (0.4.0-1) ... 298s Setting up librust-futures-task-dev:armhf (0.3.30-1) ... 298s Setting up librust-rustc-hash-dev:armhf (1.1.0-1) ... 298s Setting up librust-wasm-bindgen-shared-dev:armhf (0.2.87-1) ... 298s Setting up libarchive-zip-perl (1.68-1) ... 298s Setting up librust-colorchoice-dev:armhf (1.0.0-1) ... 298s Setting up librust-fastrand-dev:armhf (2.1.1-1) ... 298s Setting up libdebhelper-perl (13.20ubuntu1) ... 298s Setting up librust-unsafe-any-dev:armhf (0.4.2-2) ... 298s Setting up librust-tinyvec-macros-dev:armhf (0.1.0-1) ... 298s Setting up librust-libm-dev:armhf (0.2.8-1) ... 298s Setting up librust-strsim-dev:armhf (0.11.1-1) ... 298s Setting up linux-libc-dev:armhf (6.11.0-8.8) ... 298s Setting up libwebpdecoder3:armhf (1.4.0-0.1) ... 298s Setting up m4 (1.4.19-4build1) ... 298s Setting up librust-rustc-demangle-dev:armhf (0.1.21-1) ... 298s Setting up python3-all (3.12.6-0ubuntu1) ... 298s Setting up librust-const-cstr-dev:armhf (0.3.0-1) ... 298s Setting up librust-fallible-iterator-dev:armhf (0.3.0-2) ... 298s Setting up librust-ryu-dev:armhf (1.0.15-1) ... 298s Setting up python3-sortedcontainers (2.4.0-2) ... 298s Setting up librust-humantime-dev:armhf (2.1.0-1) ... 298s Setting up librust-anstyle-query-dev:armhf (1.0.0-1) ... 298s Setting up librust-cast-dev:armhf (0.3.0-1) ... 298s Setting up libgomp1:armhf (14.2.0-8ubuntu1) ... 298s Setting up librust-subtle-dev:armhf (2.6.1-1) ... 298s Setting up librust-simdutf8-dev:armhf (0.1.4-4) ... 298s Setting up librust-atomic-waker-dev:armhf (1.1.2-1) ... 298s Setting up librust-miniz-oxide-dev:armhf (0.7.1-1) ... 298s Setting up librust-pin-project-lite-dev:armhf (0.2.13-1) ... 298s Setting up python3-wheel (0.45.1-1) ... 298s Setting up librust-unicode-segmentation-dev:armhf (1.11.0-1) ... 298s Setting up librust-typemap-dev:armhf (0.3.3-2) ... 298s Setting up libpython3.12t64:armhf (3.12.7-3) ... 298s Setting up librust-compiler-builtins-dev:armhf (0.1.101-1) ... 298s Setting up librust-weezl-dev:armhf (0.1.5-1) ... 298s Setting up librust-utf8parse-dev:armhf (0.2.1-1) ... 298s Setting up librust-crossbeam-epoch-dev:armhf (0.9.18-1) ... 298s Setting up autotools-dev (20220109.1) ... 298s Setting up librust-tap-dev:armhf (1.0.1-1) ... 298s Setting up python3-packaging (24.2-1) ... 299s Setting up librust-array-init-dev:armhf (2.0.1-1) ... 299s Setting up libpkgconf3:armhf (1.8.1-4) ... 299s Setting up libpfm4:armhf (4.13.0+git83-g91970fe-1) ... 299s Setting up rpcsvc-proto (1.4.2-0ubuntu7) ... 299s Setting up librust-oorandom-dev:armhf (11.1.3-1) ... 299s Setting up python3-pyproject-hooks (1.2.0-1) ... 299s Setting up libfreetype6:armhf (2.13.3+dfsg-1) ... 299s Setting up librust-rustc-std-workspace-core-dev:armhf (1.0.0-1) ... 299s Setting up librust-funty-dev:armhf (2.0.0-1) ... 299s Setting up librust-futures-io-dev:armhf (0.3.31-1) ... 299s Setting up librust-typenum-dev:armhf (1.17.0-2) ... 299s Setting up librust-core-maths-dev:armhf (0.1.0-2) ... 299s Setting up librust-stable-deref-trait-dev:armhf (1.2.0-1) ... 299s Setting up librust-critical-section-dev:armhf (1.1.3-1) ... 299s Setting up librust-scopeguard-dev:armhf (1.2.0-1) ... 299s Setting up librust-iana-time-zone-dev:armhf (0.1.60-1) ... 299s Setting up fonts-dejavu-mono (2.37-8) ... 299s Setting up libmpc3:armhf (1.3.1-1build2) ... 299s Setting up librust-rand-core-dev:armhf (0.6.4-2) ... 299s Setting up python3-semantic-version (2.10.0-2) ... 299s Setting up autopoint (0.22.5-2) ... 299s Setting up libjsoncpp25:armhf (1.9.5-6build1) ... 299s Setting up fonts-dejavu-core (2.37-8) ... 299s Setting up librust-seahash-dev:armhf (4.1.0-1) ... 299s Setting up pkgconf-bin (1.8.1-4) ... 299s Setting up librust-ab-glyph-rasterizer-dev:armhf (0.1.7-1) ... 299s Setting up binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 299s Setting up librust-time-core-dev:armhf (0.1.2-1) ... 299s Setting up python3-regex (0.1.20240724-1build1) ... 299s Setting up librust-crunchy-dev:armhf (0.2.2-1) ... 300s Setting up python3-toml (0.10.2-1) ... 300s Setting up librust-unicase-dev:armhf (2.7.0-1) ... 300s Setting up librust-unicode-width-dev:armhf (0.1.14-1) ... 300s Setting up python3-installer (0.7.0+dfsg1-3) ... 300s Setting up autoconf (2.72-3) ... 300s Setting up python3-pluggy (1.5.0-1) ... 300s Setting up libwebp7:armhf (1.4.0-0.1) ... 300s Setting up libubsan1:armhf (14.2.0-8ubuntu1) ... 300s Setting up librust-unicode-ident-dev:armhf (1.0.13-1) ... 300s Setting up librust-equivalent-dev:armhf (1.0.1-1) ... 300s Setting up dwz (0.15-1build6) ... 300s Setting up librust-bitflags-1-dev:armhf (1.3.2-5) ... 300s Setting up librust-uncased-dev:armhf (0.9.6-2) ... 300s Setting up librust-slog-dev:armhf (2.7.0-1) ... 300s Setting up python3-tiktoken (0.8.0-1build1) ... 300s Setting up librust-pure-rust-locales-dev:armhf (0.8.1-1) ... 300s Setting up librhash0:armhf (1.4.3-3build1) ... 300s Setting up libcrypt-dev:armhf (1:4.4.36-5) ... 300s Setting up libasan8:armhf (14.2.0-8ubuntu1) ... 300s Setting up librust-ttf-parser-dev:armhf (0.24.1-1) ... 300s Setting up librust-cfg-if-dev:armhf (1.0.0-1) ... 300s Setting up debugedit (1:5.1-1) ... 300s Setting up librust-color-quant-dev:armhf (1.1.0-1) ... 300s Setting up python3-dateutil (2.9.0-3) ... 301s Setting up librust-blobby-dev:armhf (0.3.1-1) ... 301s Setting up cmake-data (3.30.3-1) ... 301s Setting up llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 301s Setting up librust-byteorder-dev:armhf (1.5.0-1) ... 301s Setting up librust-static-assertions-dev:armhf (1.1.0-1) ... 301s Setting up librust-compiler-builtins+core-dev:armhf (0.1.101-1) ... 301s Setting up librust-float-ord-dev:armhf (0.3.2-1) ... 301s Setting up librust-autocfg-dev:armhf (1.1.0-1) ... 301s Setting up libgcc-14-dev:armhf (14.2.0-8ubuntu1) ... 301s Setting up libisl23:armhf (0.27-1) ... 301s Setting up librust-time-macros-dev:armhf (0.2.16-1) ... 301s Setting up llvm-19-runtime (1:19.1.2-1ubuntu1) ... 301s Setting up librust-futures-sink-dev:armhf (0.3.31-1) ... 301s Setting up python3-build (1.2.2-1) ... 301s Setting up libsharpyuv-dev:armhf (1.4.0-0.1) ... 301s Setting up libc-dev-bin (2.40-1ubuntu3) ... 301s Setting up librust-cfg-if-0.1-dev:armhf (0.1.10-2) ... 301s Setting up librust-tinyvec-dev:armhf (1.6.0-2) ... 301s Setting up libwebpmux3:armhf (1.4.0-0.1) ... 301s Setting up librust-plotters-backend-dev:armhf (0.3.7-1) ... 301s Setting up librust-shlex-dev:armhf (1.3.0-1) ... 301s Setting up librust-indenter-dev:armhf (0.3.3-1) ... 301s Setting up librust-cpp-demangle-dev:armhf (0.4.0-1) ... 301s Setting up librust-winapi-x86-64-pc-windows-gnu-dev:armhf (0.4.0-1) ... 301s Setting up libcc1-0:armhf (14.2.0-8ubuntu1) ... 301s Setting up libbrotli-dev:armhf (1.1.0-2build3) ... 301s Setting up librust-clap-lex-dev:armhf (0.7.2-2) ... 301s Setting up libhttp-parser2.9:armhf (2.9.4-6build1) ... 301s Setting up librust-unarray-dev:armhf (0.1.4-1) ... 301s Setting up cpp-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 301s Setting up libllvm18:armhf (1:18.1.8-12) ... 301s Setting up librust-itertools-dev:armhf (0.10.5-1) ... 301s Setting up librust-heck-dev:armhf (0.4.1-1) ... 301s Setting up librust-num-conv-dev:armhf (0.1.0-1) ... 301s Setting up automake (1:1.16.5-1.3ubuntu1) ... 301s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 301s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 301s Setting up librust-owned-ttf-parser-dev:armhf (0.24.0-1) ... 301s Setting up librust-crossbeam-epoch+std-dev:armhf (0.9.18-1) ... 301s Setting up librust-libc-dev:armhf (0.2.161-1) ... 301s Setting up librust-is-terminal-dev:armhf (0.4.13-1) ... 301s Setting up gettext (0.22.5-2) ... 301s Setting up librust-gif-dev:armhf (0.11.3-1) ... 301s Setting up librust-crossbeam-deque-dev:armhf (0.8.5-1) ... 301s Setting up librust-tiny-keccak-dev:armhf (2.0.2-1) ... 301s Setting up librust-linux-raw-sys-dev:armhf (0.4.14-1) ... 301s Setting up pybuild-plugin-pyproject (6.20241024) ... 301s Setting up fontconfig-config (2.15.0-1.1ubuntu2) ... 301s Setting up librust-getrandom-dev:armhf (0.2.12-1) ... 301s Setting up python3-pytest (8.3.3-1) ... 302s Setting up librust-libloading-dev:armhf (0.8.5-1) ... 302s Setting up librust-socket2-dev:armhf (0.5.7-1) ... 302s Setting up librust-memmap2-dev:armhf (0.9.3-1) ... 302s Setting up libwebpdemux2:armhf (1.4.0-0.1) ... 302s Setting up python3-hypothesis (6.119.3-1) ... 302s Setting up librust-ab-glyph-rasterizer+libm-dev:armhf (0.1.7-1) ... 302s Setting up librust-tinyvec+tinyvec-macros-dev:armhf (1.6.0-2) ... 302s Setting up librust-owning-ref-dev:armhf (0.4.1-1) ... 302s Setting up librust-num-cpus-dev:armhf (1.16.0-1) ... 302s Setting up librust-memoffset-dev:armhf (0.8.0-1) ... 302s Setting up gcc-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 302s Setting up librust-cpufeatures-dev:armhf (0.2.11-1) ... 302s Setting up librust-proc-macro2-dev:armhf (1.0.86-1) ... 302s Setting up librust-compiler-builtins+rustc-dep-of-std-dev:armhf (0.1.101-1) ... 302s Setting up librust-rayon-core-dev:armhf (1.12.1-1) ... 302s Setting up librust-winapi-dev:armhf (0.3.9-1) ... 302s Setting up pkgconf:armhf (1.8.1-4) ... 302s Setting up librust-ab-glyph-dev:armhf (0.2.28-1) ... 302s Setting up intltool-debian (0.35.0+20060710.6) ... 302s Setting up librust-rand-core+getrandom-dev:armhf (0.6.4-2) ... 302s Setting up librust-rand-xorshift-dev:armhf (0.3.0-2) ... 302s Setting up librust-signal-hook-registry-dev:armhf (1.4.0-1) ... 302s Setting up libwebp-dev:armhf (1.4.0-0.1) ... 302s Setting up librust-errno-dev:armhf (0.3.8-1) ... 302s Setting up librust-anes-dev:armhf (0.1.6-1) ... 302s Setting up llvm-runtime:armhf (1:19.0-60~exp1) ... 302s Setting up librust-jobserver-dev:armhf (0.1.32-1) ... 302s Setting up pkg-config:armhf (1.8.1-4) ... 302s Setting up cpp-14 (14.2.0-8ubuntu1) ... 302s Setting up dh-strip-nondeterminism (1.14.0-1) ... 302s Setting up librust-crc32fast-dev:armhf (1.4.2-1) ... 302s Setting up librust-num-traits-dev:armhf (0.2.19-2) ... 302s Setting up librust-winapi-util-dev:armhf (0.1.6-1) ... 302s Setting up librust-wait-timeout-dev:armhf (0.2.0-1) ... 302s Setting up cmake (3.30.3-1) ... 302s Setting up libgit2-1.7:armhf (1.7.2+ds-1ubuntu3) ... 302s Setting up libc6-dev:armhf (2.40-1ubuntu3) ... 302s Setting up llvm-19 (1:19.1.2-1ubuntu1) ... 302s Setting up libfontconfig1:armhf (2.15.0-1.1ubuntu2) ... 302s Setting up librust-same-file-dev:armhf (1.0.6-1) ... 302s Setting up librust-rayon-dev:armhf (1.10.0-1) ... 302s Setting up librust-termcolor-dev:armhf (1.4.1-1) ... 302s Setting up librust-pkg-config-dev:armhf (0.3.27-1) ... 302s Setting up libstdc++-14-dev:armhf (14.2.0-8ubuntu1) ... 302s Setting up cpp-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 302s Setting up libstd-rust-1.80:armhf (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 302s Setting up librust-jpeg-decoder-dev:armhf (0.3.0-1) ... 302s Setting up libbz2-dev:armhf (1.0.8-6) ... 302s Setting up librust-dirs-sys-next-dev:armhf (0.1.1-1) ... 302s Setting up gcc-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 302s Setting up librust-num-integer-dev:armhf (0.1.46-1) ... 302s Setting up librust-dirs-next-dev:armhf (2.0.0-1) ... 302s Setting up librust-num-threads-dev:armhf (0.1.7-1) ... 302s Setting up g++-14-arm-linux-gnueabihf (14.2.0-8ubuntu1) ... 302s Setting up librust-dlib-dev:armhf (0.5.2-2) ... 302s Setting up librust-libwebp-sys-dev:armhf (0.9.5-1build1) ... 302s Setting up po-debconf (1.0.21+nmu1) ... 302s Setting up librust-quote-dev:armhf (1.0.37-1) ... 302s Setting up librust-syn-dev:armhf (2.0.85-1) ... 302s Setting up librust-rand-core+std-dev:armhf (0.6.4-2) ... 302s Setting up librust-powerfmt-macros-dev:armhf (0.1.0-1) ... 302s Setting up gcc-14 (14.2.0-8ubuntu1) ... 302s Setting up libstd-rust-1.80-dev:armhf (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 302s Setting up libexpat1-dev:armhf (2.6.4-1) ... 302s Setting up librust-powerfmt-dev:armhf (0.2.0-1) ... 302s Setting up librust-sval-derive-dev:armhf (2.6.1-2) ... 302s Setting up uuid-dev:armhf (2.40.2-1ubuntu1) ... 302s Setting up librust-cc-dev:armhf (1.1.14-1) ... 302s Setting up librust-zeroize-derive-dev:armhf (1.4.2-1) ... 302s Setting up llvm (1:19.0-60~exp1) ... 302s Setting up librust-postgres-derive-dev:armhf (0.4.5-1) ... 302s Setting up librust-syn-1-dev:armhf (1.0.109-2) ... 302s Setting up librust-clap-derive-dev:armhf (4.5.13-2) ... 302s Setting up zlib1g-dev:armhf (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 302s Setting up librust-bytecheck-derive-dev:armhf (0.6.12-1) ... 302s Setting up librust-no-panic-dev:armhf (0.1.13-1) ... 302s Setting up cpp (4:14.1.0-2ubuntu1) ... 302s Setting up librust-serde-derive-dev:armhf (1.0.210-1) ... 302s Setting up librust-walkdir-dev:armhf (2.5.0-1) ... 302s Setting up librust-zerocopy-derive-dev:armhf (0.7.32-2) ... 302s Setting up librust-sha1-asm-dev:armhf (0.5.1-2) ... 302s Setting up g++-14 (14.2.0-8ubuntu1) ... 302s Setting up librust-valuable-derive-dev:armhf (0.1.0-1) ... 302s Setting up librust-ghost-dev:armhf (0.1.5-1) ... 302s Setting up librust-serde-dev:armhf (1.0.210-2) ... 302s Setting up librust-bytemuck-derive-dev:armhf (1.5.0-2) ... 302s Setting up librust-derive-arbitrary-dev:armhf (1.3.2-1) ... 302s Setting up librust-allocator-api2-dev:armhf (0.2.16-1) ... 302s Setting up librust-cmake-dev:armhf (0.1.45-1) ... 302s Setting up g++-arm-linux-gnueabihf (4:14.1.0-2ubuntu1) ... 302s Setting up librust-async-attributes-dev (1.1.2-6) ... 302s Setting up librust-rand-chacha-dev:armhf (0.3.1-2) ... 302s Setting up librust-futures-macro-dev:armhf (0.3.30-1) ... 302s Setting up librust-ctor-dev:armhf (0.1.26-1) ... 302s Setting up librust-unicode-bidi-dev:armhf (0.3.13-1) ... 302s Setting up librust-tracing-attributes-dev:armhf (0.1.27-1) ... 302s Setting up librust-ptr-meta-derive-dev:armhf (0.1.4-1) ... 302s Setting up librust-serde-fmt-dev (1.0.3-3) ... 302s Setting up libtool (2.4.7-8) ... 302s Setting up librust-sha2-asm-dev:armhf (0.6.2-2) ... 302s Setting up libpng-dev:armhf (1.6.44-2) ... 302s Setting up librust-portable-atomic-dev:armhf (1.9.0-4) ... 302s Setting up librust-tokio-macros-dev:armhf (2.4.0-2) ... 302s Setting up librust-lock-api-dev:armhf (0.4.12-1) ... 302s Setting up librust-libz-sys-dev:armhf (1.1.20-1) ... 302s Setting up libpython3.12-dev:armhf (3.12.7-3) ... 302s Setting up librust-ptr-meta-dev:armhf (0.1.4-1) ... 302s Setting up librust-inventory-dev:armhf (0.3.2-1) ... 302s Setting up librust-sval-dev:armhf (2.6.1-2) ... 302s Setting up librust-itoa-dev:armhf (1.0.9-1) ... 302s Setting up gcc (4:14.1.0-2ubuntu1) ... 302s Setting up librust-bytes-dev:armhf (1.8.0-1) ... 302s Setting up librust-bumpalo-dev:armhf (3.16.0-1) ... 302s Setting up librust-python3-dll-a-dev:armhf (0.2.10-1) ... 302s Setting up libfreetype-dev:armhf (2.13.3+dfsg-1) ... 302s Setting up librust-siphasher-dev:armhf (0.3.10-1) ... 302s Setting up rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 302s Setting up dh-autoreconf (20) ... 302s Setting up librust-rand-core+serde-dev:armhf (0.6.4-2) ... 302s Setting up librust-sval-ref-dev:armhf (2.6.1-1) ... 302s Setting up librust-rkyv-derive-dev:armhf (0.7.44-1) ... 302s Setting up librust-zerocopy-dev:armhf (0.7.32-1) ... 302s Setting up librust-md5-asm-dev:armhf (0.5.0-2) ... 302s Setting up librust-semver-dev:armhf (1.0.23-1) ... 302s Setting up python3.12-dev (3.12.7-3) ... 302s Setting up librust-bytemuck-dev:armhf (1.14.0-1) ... 302s Setting up librust-bit-vec-dev:armhf (0.6.3-1) ... 302s Setting up librust-zeroize-dev:armhf (1.8.1-1) ... 302s Setting up librust-slab-dev:armhf (0.4.9-1) ... 302s Setting up g++ (4:14.1.0-2ubuntu1) ... 302s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 302s Setting up rustc (1.80.1ubuntu2) ... 302s Setting up librust-arbitrary-dev:armhf (1.3.2-1) ... 302s Setting up librust-valuable-dev:armhf (0.1.0-4) ... 302s Setting up librust-target-lexicon-dev:armhf (0.12.14-1) ... 302s Setting up librust-serde-test-dev:armhf (1.0.171-1) ... 302s Setting up librust-bit-set-dev:armhf (0.5.2-1) ... 302s Setting up build-essential (12.10ubuntu1) ... 302s Setting up librust-concurrent-queue-dev:armhf (2.5.0-4) ... 302s Setting up cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 302s Setting up librust-erased-serde-dev:armhf (0.3.31-1) ... 302s Setting up librust-radium-dev:armhf (1.1.0-1) ... 302s Setting up librust-bit-set+std-dev:armhf (0.5.2-1) ... 302s Setting up librust-phf-shared-dev:armhf (0.11.2-1) ... 302s Setting up librust-smol-str-dev:armhf (0.2.0-1) ... 302s Setting up librust-atomic-dev:armhf (0.6.0-1) ... 302s Setting up librust-generic-array-dev:armhf (0.14.7-1) ... 302s Setting up librust-half-dev:armhf (1.8.2-4) ... 302s Setting up librust-phf-dev:armhf (0.11.2-1) ... 302s Setting up librust-spin-dev:armhf (0.9.8-4) ... 302s Setting up libpython3-dev:armhf (3.12.6-0ubuntu1) ... 302s Setting up librust-sval-dynamic-dev:armhf (2.6.1-1) ... 302s Setting up librust-qoi-dev:armhf (0.4.1-2) ... 302s Setting up librust-async-task-dev (4.7.1-3) ... 302s Setting up librust-crypto-common-dev:armhf (0.1.6-1) ... 302s Setting up librust-ciborium-ll-dev:armhf (0.2.2-1) ... 302s Setting up librust-futures-core-dev:armhf (0.3.30-1) ... 302s Setting up librust-lazy-static-dev:armhf (1.5.0-1) ... 302s Setting up libfontconfig-dev:armhf (2.15.0-1.1ubuntu2) ... 302s Setting up librust-sval-buffer-dev:armhf (2.6.1-1) ... 302s Setting up librust-arrayvec-dev:armhf (0.7.4-2) ... 302s Setting up librust-rustc-version-dev:armhf (0.4.0-1) ... 302s Setting up librust-event-listener-dev (5.3.1-8) ... 302s Setting up librust-flate2-dev:armhf (1.0.34-1) ... 302s Setting up librust-freetype-sys-dev:armhf (0.13.1-1) ... 302s Setting up debhelper (13.20ubuntu1) ... 302s Setting up librust-smallvec-dev:armhf (1.13.2-1) ... 302s Setting up librust-sval-fmt-dev:armhf (2.6.1-1) ... 302s Setting up librust-const-oid-dev:armhf (0.9.3-1) ... 302s Setting up librust-anstyle-parse-dev:armhf (0.2.1-1) ... 302s Setting up cargo (1.80.1ubuntu2) ... 302s Setting up librust-ciborium-dev:armhf (0.2.2-2) ... 302s Setting up librust-block-buffer-dev:armhf (0.10.2-2) ... 302s Setting up python3-setuptools-rust (1.9.0+dfsg-2) ... 303s Setting up libpython3-all-dev:armhf (3.12.6-0ubuntu1) ... 303s Setting up librust-pathfinder-simd-dev:armhf (0.5.2-1) ... 303s Setting up librust-freetype-dev:armhf (0.7.0-4) ... 303s Setting up librust-unicode-normalization-dev:armhf (0.1.22-1) ... 303s Setting up librust-anstream-dev:armhf (0.6.15-1) ... 303s Setting up librust-bitflags-dev:armhf (2.6.0-1) ... 303s Setting up librust-regex-syntax-dev:armhf (0.8.2-1) ... 303s Setting up librust-parking-lot-core-dev:armhf (0.9.10-1) ... 303s Setting up librust-futures-channel-dev:armhf (0.3.30-1) ... 303s Setting up librust-once-cell-dev:armhf (1.20.2-1) ... 303s Setting up librust-pyo3-build-config-dev:armhf (0.22.6-1) ... 303s Setting up librust-phf-shared+uncased-dev:armhf (0.11.2-1) ... 303s Setting up librust-tiff-dev:armhf (0.9.0-1) ... 303s Setting up librust-digest-dev:armhf (0.10.7-2) ... 303s Setting up librust-md-5-dev:armhf (0.10.6-1) ... 303s Setting up librust-sval-serde-dev:armhf (2.6.1-1) ... 303s Setting up librust-parking-lot-dev:armhf (0.12.3-1) ... 303s Setting up librust-event-listener-strategy-dev:armhf (0.5.2-3) ... 303s Setting up librust-pyo3-macros-backend-dev:armhf (0.22.6-1) ... 303s Setting up librust-pyo3-ffi-dev:armhf (0.22.6-1build1) ... 303s Setting up librust-png-dev:armhf (0.17.7-3) ... 303s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 303s Setting up librust-const-random-macro-dev:armhf (0.1.16-2) ... 303s Setting up librust-const-random-dev:armhf (0.1.17-2) ... 303s Setting up librust-pyo3-macros-dev:armhf (0.22.6-1) ... 303s Setting up librust-sha1-dev:armhf (0.10.6-1) ... 303s Setting up librust-ahash-dev (0.8.11-8) ... 303s Setting up librust-async-channel-dev (2.3.1-8) ... 303s Setting up librust-stringprep-dev:armhf (0.1.2-1) ... 303s Setting up librust-tracing-core-dev:armhf (0.1.32-1) ... 303s Setting up librust-async-lock-dev (3.4.0-4) ... 303s Setting up librust-eyre-dev:armhf (0.6.12-1) ... 303s Setting up librust-yeslogic-fontconfig-sys-dev:armhf (3.0.1-1) ... 303s Setting up librust-sha2-dev:armhf (0.10.8-1) ... 303s Setting up librust-hmac-dev:armhf (0.12.1-1) ... 303s Setting up librust-rustix-dev:armhf (0.38.32-1) ... 303s Setting up librust-wyz-dev:armhf (0.5.1-1) ... 303s Setting up librust-bitvec-dev:armhf (1.0.1-1) ... 303s Setting up librust-phf+uncased-dev:armhf (0.11.2-1) ... 303s Setting up librust-value-bag-sval2-dev:armhf (1.9.0-1) ... 303s Setting up librust-tempfile-dev:armhf (3.10.1-1) ... 303s Setting up librust-eyre+default-dev:armhf (0.6.12-1) ... 303s Setting up librust-rusty-fork-dev:armhf (0.3.0-1) ... 303s Setting up librust-hashbrown-dev:armhf (0.14.5-5) ... 303s Setting up librust-rusty-fork+wait-timeout-dev:armhf (0.3.0-1) ... 303s Setting up librust-terminal-size-dev:armhf (0.3.0-2) ... 303s Setting up librust-indexmap-dev:armhf (2.2.6-1) ... 303s Setting up librust-gimli-dev:armhf (0.28.1-2) ... 303s Setting up librust-webp-dev:armhf (0.2.6-1) ... 303s Setting up librust-memchr-dev:armhf (2.7.4-1) ... 303s Setting up librust-futures-util-dev:armhf (0.3.30-2) ... 303s Setting up librust-csv-core-dev:armhf (0.1.11-1) ... 303s Setting up librust-futures-lite-dev:armhf (2.3.0-2) ... 303s Setting up librust-csv-dev:armhf (1.3.0-1) ... 303s Setting up librust-serde-json-dev:armhf (1.0.128-1) ... 303s Setting up librust-async-executor-dev (1.13.1-1) ... 303s Setting up librust-futures-executor-dev:armhf (0.3.30-1) ... 303s Setting up librust-value-bag-serde1-dev:armhf (1.9.0-1) ... 303s Setting up librust-tinytemplate-dev:armhf (1.2.1-1) ... 303s Setting up librust-futures-dev:armhf (0.3.30-2) ... 303s Setting up librust-value-bag-dev:armhf (1.9.0-1) ... 303s Setting up librust-log-dev:armhf (0.4.22-1) ... 303s Setting up librust-kv-log-macro-dev (1.0.8-4) ... 303s Setting up librust-pathfinder-geometry-dev:armhf (0.5.1-1) ... 303s Setting up librust-tracing-dev:armhf (0.1.40-1) ... 303s Setting up librust-polling-dev:armhf (3.4.0-1) ... 303s Setting up librust-aho-corasick-dev:armhf (1.1.3-1) ... 303s Setting up librust-font-kit-dev:armhf (0.11.0-2) ... 303s Setting up librust-async-io-dev:armhf (2.3.3-4) ... 303s Setting up librust-blocking-dev (1.6.1-5) ... 303s Setting up librust-async-net-dev (2.0.0-4) ... 303s Setting up librust-rand-dev:armhf (0.8.5-1) ... 303s Setting up librust-mio-dev:armhf (1.0.2-2) ... 303s Setting up librust-wasm-bindgen-backend-dev:armhf (0.2.87-1) ... 303s Setting up librust-twox-hash-dev:armhf (1.6.3-1) ... 303s Setting up librust-proptest-dev:armhf (1.5.0-2) ... 303s Setting up librust-wasm-bindgen-macro-support-dev:armhf (0.2.87-1) ... 303s Setting up librust-regex-automata-dev:armhf (0.4.7-1) ... 303s Setting up librust-wasm-bindgen-macro-support+spans-dev:armhf (0.2.87-1) ... 303s Setting up librust-wasm-bindgen-macro-dev:armhf (0.2.87-1) ... 303s Setting up librust-uuid-dev:armhf (1.10.0-1) ... 303s Setting up librust-bstr-dev:armhf (1.7.0-2build1) ... 303s Setting up librust-async-signal-dev:armhf (0.2.10-1) ... 303s Setting up librust-bytecheck-dev:armhf (0.6.12-1) ... 303s Setting up librust-postgres-protocol-dev:armhf (0.6.6-2) ... 303s Setting up librust-async-fs-dev (2.1.2-4) ... 304s Setting up librust-wasm-bindgen-dev:armhf (0.2.87-1) ... 304s Setting up librust-convert-case-dev:armhf (0.6.0-2) ... 304s Setting up librust-regex-dev:armhf (1.10.6-1) ... 304s Setting up librust-fancy-regex-dev:armhf (0.11.0-2) ... 304s Setting up librust-async-process-dev (2.3.0-1) ... 304s Setting up librust-derive-more-dev:armhf (0.99.17-1) ... 304s Setting up librust-wasm-bindgen-macro+spans-dev:armhf (0.2.87-1) ... 304s Setting up librust-ruzstd-dev:armhf (0.5.0-1) ... 304s Setting up librust-rend-dev:armhf (0.4.0-1) ... 304s Setting up librust-env-logger-dev:armhf (0.10.2-2) ... 304s Setting up librust-wasm-bindgen+spans-dev:armhf (0.2.87-1) ... 304s Setting up librust-wasm-bindgen+default-dev:armhf (0.2.87-1) ... 304s Setting up librust-rkyv-dev:armhf (0.7.44-1) ... 304s Setting up librust-eui48-dev:armhf (1.1.0-2) ... 304s Setting up librust-parse-zoneinfo-dev:armhf (0.3.0-1) ... 304s Setting up librust-smol-dev (2.0.2-1) ... 304s Setting up librust-js-sys-dev:armhf (0.3.64-1) ... 304s Setting up librust-num-complex-dev:armhf (0.4.6-2) ... 304s Setting up librust-object-dev:armhf (0.32.2-1) ... 304s Setting up librust-approx-dev:armhf (0.5.1-1) ... 304s Setting up librust-web-sys-dev:armhf (0.3.64-2) ... 304s Setting up librust-quickcheck-dev:armhf (1.0.3-3) ... 304s Setting up librust-geo-types-dev:armhf (0.7.11-2) ... 304s Setting up librust-deranged-dev:armhf (0.3.11-1) ... 304s Setting up librust-num-bigint-dev:armhf (0.4.6-1) ... 304s Setting up librust-addr2line-dev:armhf (0.21.0-2) ... 304s Setting up librust-num-rational-dev:armhf (0.4.2-1) ... 304s Setting up librust-chrono-dev:armhf (0.4.38-2) ... 304s Setting up librust-image-dev:armhf (0.24.7-2) ... 304s Setting up librust-time-dev:armhf (0.3.36-2) ... 304s Setting up librust-plotters-bitmap-dev:armhf (0.3.3-3) ... 304s Setting up librust-backtrace-dev:armhf (0.3.69-2) ... 304s Setting up librust-postgres-types-dev:armhf (0.2.6-2) ... 304s Setting up librust-tokio-dev:armhf (1.39.3-3) ... 304s Setting up librust-async-global-executor-dev:armhf (2.4.1-5) ... 304s Setting up librust-plotters-svg-dev:armhf (0.3.5-1) ... 304s Setting up librust-clap-builder-dev:armhf (4.5.15-2) ... 304s Setting up librust-rust-decimal-dev:armhf (1.36.0-1) ... 304s Setting up librust-clap-dev:armhf (4.5.16-1) ... 304s Setting up librust-async-std-dev (1.13.0-1) ... 304s Setting up librust-anyhow-dev:armhf (1.0.86-1) ... 304s Setting up librust-plotters-dev:armhf (0.3.5-4) ... 304s Setting up librust-criterion-dev (0.5.1-6) ... 304s Setting up librust-phf-generator-dev:armhf (0.11.2-2) ... 304s Setting up librust-phf-codegen-dev:armhf (0.11.2-1) ... 304s Setting up librust-chrono-tz-build-dev:armhf (0.2.1-1) ... 304s Setting up librust-chrono-tz-dev:armhf (0.8.6-2) ... 304s Setting up librust-pyo3-dev:armhf (0.22.6-1) ... 304s Setting up autopkgtest-satdep (0) ... 304s Processing triggers for libc-bin (2.40-1ubuntu3) ... 304s Processing triggers for systemd (256.5-2ubuntu4) ... 304s Processing triggers for man-db (2.13.0-1) ... 306s Processing triggers for install-info (7.1.1-1) ... 375s (Reading database ... 86845 files and directories currently installed.) 375s Removing autopkgtest-satdep (0) ... 381s autopkgtest [09:47:12]: test pybuild-autopkgtest: pybuild-autopkgtest 381s autopkgtest [09:47:12]: test pybuild-autopkgtest: [----------------------- 383s pybuild-autopkgtest 383s I: pybuild base:311: cd /tmp/autopkgtest.EH2Jmp/autopkgtest_tmp/build; python3.12 -m pytest tests 384s ============================= test session starts ============================== 384s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 384s rootdir: /tmp/autopkgtest.EH2Jmp/autopkgtest_tmp/build 384s configfile: pyproject.toml 384s plugins: typeguard-4.4.1, hypothesis-6.119.3 384s collected 30 items 384s 966s tests/test_encoding.py FFFFFFFFFFFFFFFFFFFFFF [ 73%] 967s tests/test_misc.py F. [ 80%] 970s tests/test_offsets.py FF [ 86%] 970s tests/test_pickle.py F [ 90%] 973s tests/test_simple_public.py FF. [100%] 973s 973s =================================== FAILURES =================================== 973s _________________________________ test_simple __________________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_simple(): 973s > enc = tiktoken.get_encoding("gpt2") 973s 973s tests/test_encoding.py:15: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 973s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 973s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _____________________________ test_simple_repeated _____________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_simple_repeated(): 973s > enc = tiktoken.get_encoding("gpt2") 973s 973s tests/test_encoding.py:32: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 973s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 973s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_simple_regex _______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_simple_regex(): 973s > enc = tiktoken.get_encoding("cl100k_base") 973s 973s tests/test_encoding.py:53: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_basic_encode _______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_basic_encode(): 973s > enc = tiktoken.get_encoding("r50k_base") 973s 973s tests/test_encoding.py:62: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_encode_empty _______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_encode_empty(): 973s > enc = tiktoken.get_encoding("r50k_base") 973s 973s tests/test_encoding.py:74: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_encode_bytes _______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_encode_bytes(): 973s > enc = tiktoken.get_encoding("cl100k_base") 973s 973s tests/test_encoding.py:79: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _________________________ test_encode_surrogate_pairs __________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_encode_surrogate_pairs(): 973s > enc = tiktoken.get_encoding("cl100k_base") 973s 973s tests/test_encoding.py:84: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _________________ test_catastrophically_repetitive[r50k_base] __________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:96: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ________________ test_catastrophically_repetitive[cl100k_base] _________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:96: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _______________________ test_basic_roundtrip[r50k_base] ________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_basic_roundtrip(make_enc): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:115: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________ test_basic_roundtrip[cl100k_base] _______________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_basic_roundtrip(make_enc): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:115: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ________________________ test_hyp_roundtrip[r50k_base] _________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(text=st.text()) 973s 973s tests/test_encoding.py:131: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:134: in test_hyp_roundtrip 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_roundtrip( 973s E make_enc=functools.partial(get_encoding, 'r50k_base'), 973s E text='', # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _______________________ test_hyp_roundtrip[cl100k_base] ________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(text=st.text()) 973s 973s tests/test_encoding.py:131: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:134: in test_hyp_roundtrip 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_roundtrip( 973s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 973s E text='', # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ____________________ test_single_token_roundtrip[r50k_base] ____________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:141: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ___________________ test_single_token_roundtrip[cl100k_base] ___________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:141: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_special_token ______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_special_token(): 973s > enc = tiktoken.get_encoding("cl100k_base") 973s 973s tests/test_encoding.py:157: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _____________________ test_hyp_special_ordinary[r50k_base] _____________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(text=st.text()) 973s 973s tests/test_encoding.py:208: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:211: in test_hyp_special_ordinary 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_special_ordinary( 973s E make_enc=functools.partial(get_encoding, 'r50k_base'), 973s E text='', # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ____________________ test_hyp_special_ordinary[cl100k_base] ____________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(text=st.text()) 973s 973s tests/test_encoding.py:208: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:211: in test_hyp_special_ordinary 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_special_ordinary( 973s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 973s E text='', # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _________________________ test_batch_encode[r50k_base] _________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:222: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ________________________ test_batch_encode[cl100k_base] ________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 973s > enc = make_enc() 973s 973s tests/test_encoding.py:222: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _____________________ test_hyp_batch_roundtrip[r50k_base] ______________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'r50k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(batch=st.lists(st.text())) 973s 973s tests/test_encoding.py:237: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_batch_roundtrip( 973s E make_enc=functools.partial(get_encoding, 'r50k_base'), 973s E batch=[], # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ____________________ test_hyp_batch_roundtrip[cl100k_base] _____________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 973s > @hypothesis.given(batch=st.lists(st.text())) 973s 973s tests/test_encoding.py:237: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_batch_roundtrip( 973s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 973s E batch=[], # or any other generated value 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ___________________________ test_encoding_for_model ____________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_encoding_for_model(): 973s > enc = tiktoken.encoding_for_model("gpt2") 973s 973s tests/test_misc.py:8: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 973s return get_encoding(encoding_name_for_model(model_name)) 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 973s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 973s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ________________________ test_hyp_offsets[cl100k_base] _________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s make_enc = functools.partial(, 'cl100k_base') 973s 973s @pytest.mark.parametrize("make_enc", SOME_ENCODING_FACTORIES) 973s > @hypothesis.given(data=st.data()) 973s 973s tests/test_offsets.py:29: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s tests/test_offsets.py:32: in test_hyp_offsets 973s enc = make_enc() 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s E Falsifying example: test_hyp_offsets( 973s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 973s E data=data(...), 973s E ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ______________________________ test_basic_offsets ______________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_basic_offsets(): 973s > enc = tiktoken.get_encoding("cl100k_base") 973s 973s tests/test_offsets.py:50: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _________________________________ test_pickle __________________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_pickle(): 973s import pickle 973s 973s > enc_old = tiktoken.get_encoding("r50k_base") 973s 973s tests/test_pickle.py:7: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 973s mergeable_ranks = load_tiktoken_bpe( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 973s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s _________________________________ test_simple __________________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_simple(): 973s # Note that there are more actual tests, they're just not currently public :-) 973s > enc = tiktoken.get_encoding("gpt2") 973s 973s tests/test_simple_public.py:9: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 973s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 973s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s ___________________________ test_encoding_for_model ____________________________ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s > sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 973s raise err 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 973s source_address = None, socket_options = [(6, 1, 1)] 973s 973s def create_connection( 973s address: tuple[str, int], 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s source_address: tuple[str, int] | None = None, 973s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 973s ) -> socket.socket: 973s """Connect to *address* and return the socket object. 973s 973s Convenience function. Connect to *address* (a 2-tuple ``(host, 973s port)``) and return the socket object. Passing the optional 973s *timeout* parameter will set the timeout on the socket instance 973s before attempting to connect. If no *timeout* is supplied, the 973s global default timeout setting returned by :func:`socket.getdefaulttimeout` 973s is used. If *source_address* is set it must be a tuple of (host, port) 973s for the socket to bind as a source address before making the connection. 973s An host of '' or port 0 tells the OS to use the default. 973s """ 973s 973s host, port = address 973s if host.startswith("["): 973s host = host.strip("[]") 973s err = None 973s 973s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 973s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 973s # The original create_connection function always returns all records. 973s family = allowed_gai_family() 973s 973s try: 973s host.encode("idna") 973s except UnicodeError: 973s raise LocationParseError(f"'{host}', label empty or too long") from None 973s 973s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 973s af, socktype, proto, canonname, sa = res 973s sock = None 973s try: 973s sock = socket.socket(af, socktype, proto) 973s 973s # If provided, set socket level options before connecting. 973s _set_socket_options(sock, socket_options) 973s 973s if timeout is not _DEFAULT_TIMEOUT: 973s sock.settimeout(timeout) 973s if source_address: 973s sock.bind(source_address) 973s > sock.connect(sa) 973s E ConnectionRefusedError: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 973s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 973s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s redirect = False, assert_same_host = False 973s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 973s release_conn = False, chunked = False, body_pos = None, preload_content = False 973s decode_content = False, response_kw = {} 973s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 973s destination_scheme = None, conn = None, release_this_conn = True 973s http_tunnel_required = False, err = None, clean_exit = False 973s 973s def urlopen( # type: ignore[override] 973s self, 973s method: str, 973s url: str, 973s body: _TYPE_BODY | None = None, 973s headers: typing.Mapping[str, str] | None = None, 973s retries: Retry | bool | int | None = None, 973s redirect: bool = True, 973s assert_same_host: bool = True, 973s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 973s pool_timeout: int | None = None, 973s release_conn: bool | None = None, 973s chunked: bool = False, 973s body_pos: _TYPE_BODY_POSITION | None = None, 973s preload_content: bool = True, 973s decode_content: bool = True, 973s **response_kw: typing.Any, 973s ) -> BaseHTTPResponse: 973s """ 973s Get a connection from the pool and perform an HTTP request. This is the 973s lowest level call for making a request, so you'll need to specify all 973s the raw details. 973s 973s .. note:: 973s 973s More commonly, it's appropriate to use a convenience method 973s such as :meth:`request`. 973s 973s .. note:: 973s 973s `release_conn` will only behave as expected if 973s `preload_content=False` because we want to make 973s `preload_content=False` the default behaviour someday soon without 973s breaking backwards compatibility. 973s 973s :param method: 973s HTTP request method (such as GET, POST, PUT, etc.) 973s 973s :param url: 973s The URL to perform the request on. 973s 973s :param body: 973s Data to send in the request body, either :class:`str`, :class:`bytes`, 973s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 973s 973s :param headers: 973s Dictionary of custom headers to send, such as User-Agent, 973s If-None-Match, etc. If None, pool headers are used. If provided, 973s these headers completely replace any pool-specific headers. 973s 973s :param retries: 973s Configure the number of retries to allow before raising a 973s :class:`~urllib3.exceptions.MaxRetryError` exception. 973s 973s Pass ``None`` to retry until you receive a response. Pass a 973s :class:`~urllib3.util.retry.Retry` object for fine-grained control 973s over different types of retries. 973s Pass an integer number to retry connection errors that many times, 973s but no other types of errors. Pass zero to never retry. 973s 973s If ``False``, then retries are disabled and any exception is raised 973s immediately. Also, instead of raising a MaxRetryError on redirects, 973s the redirect response will be returned. 973s 973s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 973s 973s :param redirect: 973s If True, automatically handle redirects (status codes 301, 302, 973s 303, 307, 308). Each redirect counts as a retry. Disabling retries 973s will disable redirect, too. 973s 973s :param assert_same_host: 973s If ``True``, will make sure that the host of the pool requests is 973s consistent else will raise HostChangedError. When ``False``, you can 973s use the pool on an HTTP proxy and request foreign hosts. 973s 973s :param timeout: 973s If specified, overrides the default timeout for this one 973s request. It may be a float (in seconds) or an instance of 973s :class:`urllib3.util.Timeout`. 973s 973s :param pool_timeout: 973s If set and the pool is set to block=True, then this method will 973s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 973s connection is available within the time period. 973s 973s :param bool preload_content: 973s If True, the response's body will be preloaded into memory. 973s 973s :param bool decode_content: 973s If True, will attempt to decode the body based on the 973s 'content-encoding' header. 973s 973s :param release_conn: 973s If False, then the urlopen call will not release the connection 973s back into the pool once a response is received (but will release if 973s you read the entire contents of the response such as when 973s `preload_content=True`). This is useful if you're not preloading 973s the response's content immediately. You will need to call 973s ``r.release_conn()`` on the response ``r`` to return the connection 973s back into the pool. If None, it takes the value of ``preload_content`` 973s which defaults to ``True``. 973s 973s :param bool chunked: 973s If True, urllib3 will send the body using chunked transfer 973s encoding. Otherwise, urllib3 will send the body using the standard 973s content-length form. Defaults to False. 973s 973s :param int body_pos: 973s Position to seek to in file-like body in the event of a retry or 973s redirect. Typically this won't need to be set because urllib3 will 973s auto-populate the value when needed. 973s """ 973s parsed_url = parse_url(url) 973s destination_scheme = parsed_url.scheme 973s 973s if headers is None: 973s headers = self.headers 973s 973s if not isinstance(retries, Retry): 973s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 973s 973s if release_conn is None: 973s release_conn = preload_content 973s 973s # Check host 973s if assert_same_host and not self.is_same_host(url): 973s raise HostChangedError(self, url, retries) 973s 973s # Ensure that the URL we're connecting to is properly encoded 973s if url.startswith("/"): 973s url = to_str(_encode_target(url)) 973s else: 973s url = to_str(parsed_url.url) 973s 973s conn = None 973s 973s # Track whether `conn` needs to be released before 973s # returning/raising/recursing. Update this variable if necessary, and 973s # leave `release_conn` constant throughout the function. That way, if 973s # the function recurses, the original value of `release_conn` will be 973s # passed down into the recursive call, and its value will be respected. 973s # 973s # See issue #651 [1] for details. 973s # 973s # [1] 973s release_this_conn = release_conn 973s 973s http_tunnel_required = connection_requires_http_tunnel( 973s self.proxy, self.proxy_config, destination_scheme 973s ) 973s 973s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 973s # have to copy the headers dict so we can safely change it without those 973s # changes being reflected in anyone else's copy. 973s if not http_tunnel_required: 973s headers = headers.copy() # type: ignore[attr-defined] 973s headers.update(self.proxy_headers) # type: ignore[union-attr] 973s 973s # Must keep the exception bound to a separate variable or else Python 3 973s # complains about UnboundLocalError. 973s err = None 973s 973s # Keep track of whether we cleanly exited the except block. This 973s # ensures we do proper cleanup in finally. 973s clean_exit = False 973s 973s # Rewind body position, if needed. Record current position 973s # for future rewinds in the event of a redirect/retry. 973s body_pos = set_file_position(body, body_pos) 973s 973s try: 973s # Request a connection from the queue. 973s timeout_obj = self._get_timeout(timeout) 973s conn = self._get_conn(timeout=pool_timeout) 973s 973s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 973s 973s # Is this a closed/new connection that requires CONNECT tunnelling? 973s if self.proxy is not None and http_tunnel_required and conn.is_closed: 973s try: 973s self._prepare_proxy(conn) 973s except (BaseSSLError, OSError, SocketTimeout) as e: 973s self._raise_timeout( 973s err=e, url=self.proxy.url, timeout_value=conn.timeout 973s ) 973s raise 973s 973s # If we're going to release the connection in ``finally:``, then 973s # the response doesn't need to know about the connection. Otherwise 973s # it will also try to release it and we'll have a double-release 973s # mess. 973s response_conn = conn if not release_conn else None 973s 973s # Make the request on the HTTPConnection object 973s > response = self._make_request( 973s conn, 973s method, 973s url, 973s timeout=timeout_obj, 973s body=body, 973s headers=headers, 973s chunked=chunked, 973s retries=retries, 973s response_conn=response_conn, 973s preload_content=preload_content, 973s decode_content=decode_content, 973s **response_kw, 973s ) 973s 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 973s raise new_e 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 973s self._validate_conn(conn) 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 973s conn.connect() 973s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 973s self.sock = sock = self._new_conn() 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s 973s def _new_conn(self) -> socket.socket: 973s """Establish a socket connection and set nodelay settings on it. 973s 973s :return: New socket connection. 973s """ 973s try: 973s sock = connection.create_connection( 973s (self._dns_host, self.port), 973s self.timeout, 973s source_address=self.source_address, 973s socket_options=self.socket_options, 973s ) 973s except socket.gaierror as e: 973s raise NameResolutionError(self.host, self, e) from e 973s except SocketTimeout as e: 973s raise ConnectTimeoutError( 973s self, 973s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 973s ) from e 973s 973s except OSError as e: 973s > raise NewConnectionError( 973s self, f"Failed to establish a new connection: {e}" 973s ) from e 973s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 973s 973s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 973s 973s The above exception was the direct cause of the following exception: 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s > resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:667: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 973s retries = retries.increment( 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 973s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 973s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 973s _pool = 973s _stacktrace = 973s 973s def increment( 973s self, 973s method: str | None = None, 973s url: str | None = None, 973s response: BaseHTTPResponse | None = None, 973s error: Exception | None = None, 973s _pool: ConnectionPool | None = None, 973s _stacktrace: TracebackType | None = None, 973s ) -> Retry: 973s """Return a new Retry object with incremented retry counters. 973s 973s :param response: A response object, or None, if the server did not 973s return a response. 973s :type response: :class:`~urllib3.response.BaseHTTPResponse` 973s :param Exception error: An error encountered during the request, or 973s None if the response was received successfully. 973s 973s :return: A new ``Retry`` object. 973s """ 973s if self.total is False and error: 973s # Disabled, indicate to re-raise the error. 973s raise reraise(type(error), error, _stacktrace) 973s 973s total = self.total 973s if total is not None: 973s total -= 1 973s 973s connect = self.connect 973s read = self.read 973s redirect = self.redirect 973s status_count = self.status 973s other = self.other 973s cause = "unknown" 973s status = None 973s redirect_location = None 973s 973s if error and self._is_connection_error(error): 973s # Connect retry? 973s if connect is False: 973s raise reraise(type(error), error, _stacktrace) 973s elif connect is not None: 973s connect -= 1 973s 973s elif error and self._is_read_error(error): 973s # Read retry? 973s if read is False or method is None or not self._is_method_retryable(method): 973s raise reraise(type(error), error, _stacktrace) 973s elif read is not None: 973s read -= 1 973s 973s elif error: 973s # Other retry? 973s if other is not None: 973s other -= 1 973s 973s elif response and response.get_redirect_location(): 973s # Redirect retry? 973s if redirect is not None: 973s redirect -= 1 973s cause = "too many redirects" 973s response_redirect_location = response.get_redirect_location() 973s if response_redirect_location: 973s redirect_location = response_redirect_location 973s status = response.status 973s 973s else: 973s # Incrementing because of a server error like a 500 in 973s # status_forcelist and the given method is in the allowed_methods 973s cause = ResponseError.GENERIC_ERROR 973s if response and response.status: 973s if status_count is not None: 973s status_count -= 1 973s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 973s status = response.status 973s 973s history = self.history + ( 973s RequestHistory(method, url, error, status, redirect_location), 973s ) 973s 973s new_retry = self.new( 973s total=total, 973s connect=connect, 973s read=read, 973s redirect=redirect, 973s status=status_count, 973s other=other, 973s history=history, 973s ) 973s 973s if new_retry.is_exhausted(): 973s reason = error or ResponseError(cause) 973s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 973s 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')) 973s 973s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 973s 973s During handling of the above exception, another exception occurred: 973s 973s def test_encoding_for_model(): 973s > enc = tiktoken.encoding_for_model("gpt2") 973s 973s tests/test_simple_public.py:26: 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 973s return get_encoding(encoding_name_for_model(model_name)) 973s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 973s enc = Encoding(**constructor()) 973s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 973s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 973s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 973s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 973s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 973s contents = read_file(blobpath) 973s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 973s resp = requests.get(blobpath) 973s /usr/lib/python3/dist-packages/requests/api.py:73: in get 973s return request("get", url, params=params, **kwargs) 973s /usr/lib/python3/dist-packages/requests/api.py:59: in request 973s return session.request(method=method, url=url, **kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 973s resp = self.send(prep, **send_kwargs) 973s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 973s r = adapter.send(request, **kwargs) 973s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 973s 973s self = 973s request = , stream = False 973s timeout = Timeout(connect=None, read=None, total=None), verify = True 973s cert = None, proxies = OrderedDict() 973s 973s def send( 973s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 973s ): 973s """Sends PreparedRequest object. Returns Response object. 973s 973s :param request: The :class:`PreparedRequest ` being sent. 973s :param stream: (optional) Whether to stream the request content. 973s :param timeout: (optional) How long to wait for the server to send 973s data before giving up, as a float, or a :ref:`(connect timeout, 973s read timeout) ` tuple. 973s :type timeout: float or tuple or urllib3 Timeout object 973s :param verify: (optional) Either a boolean, in which case it controls whether 973s we verify the server's TLS certificate, or a string, in which case it 973s must be a path to a CA bundle to use 973s :param cert: (optional) Any user-provided SSL certificate to be trusted. 973s :param proxies: (optional) The proxies dictionary to apply to the request. 973s :rtype: requests.Response 973s """ 973s 973s try: 973s conn = self.get_connection_with_tls_context( 973s request, verify, proxies=proxies, cert=cert 973s ) 973s except LocationValueError as e: 973s raise InvalidURL(e, request=request) 973s 973s self.cert_verify(conn, request.url, verify, cert) 973s url = self.request_url(request, proxies) 973s self.add_headers( 973s request, 973s stream=stream, 973s timeout=timeout, 973s verify=verify, 973s cert=cert, 973s proxies=proxies, 973s ) 973s 973s chunked = not (request.body is None or "Content-Length" in request.headers) 973s 973s if isinstance(timeout, tuple): 973s try: 973s connect, read = timeout 973s timeout = TimeoutSauce(connect=connect, read=read) 973s except ValueError: 973s raise ValueError( 973s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 973s f"or a single float to set both timeouts to the same value." 973s ) 973s elif isinstance(timeout, TimeoutSauce): 973s pass 973s else: 973s timeout = TimeoutSauce(connect=timeout, read=timeout) 973s 973s try: 973s resp = conn.urlopen( 973s method=request.method, 973s url=url, 973s body=request.body, 973s headers=request.headers, 973s redirect=False, 973s assert_same_host=False, 973s preload_content=False, 973s decode_content=False, 973s retries=self.max_retries, 973s timeout=timeout, 973s chunked=chunked, 973s ) 973s 973s except (ProtocolError, OSError) as err: 973s raise ConnectionError(err, request=request) 973s 973s except MaxRetryError as e: 973s if isinstance(e.reason, ConnectTimeoutError): 973s # TODO: Remove this in 3.0.0: see #2811 973s if not isinstance(e.reason, NewConnectionError): 973s raise ConnectTimeout(e, request=request) 973s 973s if isinstance(e.reason, ResponseError): 973s raise RetryError(e, request=request) 973s 973s if isinstance(e.reason, _ProxyError): 973s raise ProxyError(e, request=request) 973s 973s if isinstance(e.reason, _SSLError): 973s # This branch is for urllib3 v1.22 and later. 973s raise SSLError(e, request=request) 973s 973s > raise ConnectionError(e, request=request) 973s 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')) 973s 973s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 973s =========================== short test summary info ============================ 973s FAILED tests/test_encoding.py::test_simple - requests.exceptions.ConnectionEr... 973s FAILED tests/test_encoding.py::test_simple_repeated - requests.exceptions.Con... 973s FAILED tests/test_encoding.py::test_simple_regex - requests.exceptions.Connec... 973s FAILED tests/test_encoding.py::test_basic_encode - requests.exceptions.Connec... 973s FAILED tests/test_encoding.py::test_encode_empty - requests.exceptions.Connec... 973s FAILED tests/test_encoding.py::test_encode_bytes - requests.exceptions.Connec... 973s FAILED tests/test_encoding.py::test_encode_surrogate_pairs - requests.excepti... 973s FAILED tests/test_encoding.py::test_catastrophically_repetitive[r50k_base] - ... 973s FAILED tests/test_encoding.py::test_catastrophically_repetitive[cl100k_base] 973s FAILED tests/test_encoding.py::test_basic_roundtrip[r50k_base] - requests.exc... 973s FAILED tests/test_encoding.py::test_basic_roundtrip[cl100k_base] - requests.e... 973s FAILED tests/test_encoding.py::test_hyp_roundtrip[r50k_base] - requests.excep... 973s FAILED tests/test_encoding.py::test_hyp_roundtrip[cl100k_base] - requests.exc... 973s FAILED tests/test_encoding.py::test_single_token_roundtrip[r50k_base] - reque... 973s FAILED tests/test_encoding.py::test_single_token_roundtrip[cl100k_base] - req... 973s FAILED tests/test_encoding.py::test_special_token - requests.exceptions.Conne... 973s FAILED tests/test_encoding.py::test_hyp_special_ordinary[r50k_base] - request... 973s FAILED tests/test_encoding.py::test_hyp_special_ordinary[cl100k_base] - reque... 973s FAILED tests/test_encoding.py::test_batch_encode[r50k_base] - requests.except... 973s FAILED tests/test_encoding.py::test_batch_encode[cl100k_base] - requests.exce... 973s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[r50k_base] - requests... 973s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[cl100k_base] - reques... 973s FAILED tests/test_misc.py::test_encoding_for_model - requests.exceptions.Conn... 973s FAILED tests/test_offsets.py::test_hyp_offsets[cl100k_base] - requests.except... 973s FAILED tests/test_offsets.py::test_basic_offsets - requests.exceptions.Connec... 973s FAILED tests/test_pickle.py::test_pickle - requests.exceptions.ConnectionErro... 973s FAILED tests/test_simple_public.py::test_simple - requests.exceptions.Connect... 973s FAILED tests/test_simple_public.py::test_encoding_for_model - requests.except... 973s =================== 28 failed, 2 passed in 589.51s (0:09:49) =================== 973s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.EH2Jmp/autopkgtest_tmp/build; python3.12 -m pytest tests 974s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 974s make: *** [/tmp/pKZrfAhaNR/run:4: pybuild-autopkgtest] Error 25 974s pybuild-autopkgtest: error: /tmp/pKZrfAhaNR/run pybuild-autopkgtest returned exit code 2 974s autopkgtest [09:57:05]: test pybuild-autopkgtest: -----------------------] 978s autopkgtest [09:57:09]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 978s pybuild-autopkgtest FAIL non-zero exit status 25 982s autopkgtest [09:57:13]: @@@@@@@@@@@@@@@@@@@@ summary 982s pybuild-autopkgtest FAIL non-zero exit status 25