0s autopkgtest [15:06:39]: starting date and time: 2024-11-09 15:06:39+0000 0s autopkgtest [15:06:39]: git checkout: 0acbae0a WIP show VirtSubproc stderr in real-time 0s autopkgtest [15:06:39]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.876qyfdf/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:tiktoken --apt-upgrade tiktoken --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=tiktoken/0.8.0-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-s390x-26.secgroup --name adt-plucky-s390x-tiktoken-20241109-150639-juju-7f2275-prod-proposed-migration-environment-2-d2407177-489a-4faf-bad7-e130a6e44cdd --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-s390x -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 137s autopkgtest [15:08:56]: testbed dpkg architecture: s390x 137s autopkgtest [15:08:56]: testbed apt version: 2.9.8 137s autopkgtest [15:08:56]: @@@@@@@@@@@@@@@@@@@@ test bed setup 138s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 138s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [104 kB] 138s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [1004 kB] 139s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 139s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.3 kB] 139s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [125 kB] 139s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [696 kB] 139s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [16.6 kB] 139s Fetched 2043 kB in 2s (1180 kB/s) 139s Reading package lists... 141s Reading package lists... 141s Building dependency tree... 141s Reading state information... 141s Calculating upgrade... 142s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 142s Reading package lists... 142s Building dependency tree... 142s Reading state information... 142s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 142s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 142s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 142s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 142s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 143s Reading package lists... 143s Reading package lists... 143s Building dependency tree... 143s Reading state information... 143s Calculating upgrade... 143s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 143s Reading package lists... 144s Building dependency tree... 144s Reading state information... 144s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 146s autopkgtest [15:09:05]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 12:49:35 UTC 2024 146s autopkgtest [15:09:05]: @@@@@@@@@@@@@@@@@@@@ apt-source tiktoken 148s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (dsc) [2252 B] 148s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (tar) [31.6 kB] 148s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe tiktoken 0.8.0-1 (diff) [3840 B] 148s gpgv: Signature made Wed Oct 30 06:26:55 2024 UTC 148s gpgv: using RSA key 638BC75EC1E5C589067E35DE62645EB35F686A8A 148s gpgv: issuer "cdluminate@gmail.com" 148s gpgv: Can't check signature: No public key 148s dpkg-source: warning: cannot verify inline signature for ./tiktoken_0.8.0-1.dsc: no acceptable signature found 148s autopkgtest [15:09:07]: testing package tiktoken version 0.8.0-1 148s autopkgtest [15:09:07]: build not needed 148s autopkgtest [15:09:07]: test pybuild-autopkgtest: preparing testbed 149s Reading package lists... 150s Building dependency tree... 150s Reading state information... 150s Starting pkgProblemResolver with broken count: 0 150s Starting 2 pkgProblemResolver with broken count: 0 150s Done 150s The following additional packages will be installed: 150s autoconf automake autopoint autotools-dev binutils-mingw-w64-i686 150s binutils-mingw-w64-x86-64 build-essential cargo cargo-1.80 cmake cmake-data 150s cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 150s dh-autoreconf dh-python dh-strip-nondeterminism dwz fontconfig-config 150s fonts-dejavu-core fonts-dejavu-mono g++ g++-14 g++-14-s390x-linux-gnu 150s g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu 150s gettext intltool-debian libarchive-zip-perl libasan8 libbrotli-dev 150s libbz2-dev libcc1-0 libdebhelper-perl libexpat1-dev 150s libfile-stripnondeterminism-perl libfontconfig-dev libfontconfig1 150s libfreetype-dev libfreetype6 libgcc-14-dev libgit2-1.7 libgomp1 150s libhttp-parser2.9 libisl23 libitm1 libjsoncpp25 libmpc3 libpfm4 libpkgconf3 150s libpng-dev libpython3-all-dev libpython3-dev libpython3.12-dev librhash0 150s librust-ab-glyph-dev librust-ab-glyph-rasterizer+libm-dev 150s librust-ab-glyph-rasterizer-dev librust-addr2line-dev librust-adler-dev 150s librust-ahash-dev librust-aho-corasick-dev librust-allocator-api2-dev 150s librust-anes-dev librust-anstream-dev librust-anstyle-dev 150s librust-anstyle-parse-dev librust-anstyle-query-dev librust-anyhow-dev 150s librust-approx-dev librust-arbitrary-dev librust-array-init-dev 150s librust-arrayvec-dev librust-async-attributes-dev librust-async-channel-dev 150s librust-async-executor-dev librust-async-fs-dev 150s librust-async-global-executor-dev librust-async-io-dev 150s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 150s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 150s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 150s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 150s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 150s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 150s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 150s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 150s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 150s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 150s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 150s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 150s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 150s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 150s librust-color-quant-dev librust-colorchoice-dev 150s librust-compiler-builtins+core-dev 150s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 150s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 150s librust-const-random-dev librust-const-random-macro-dev 150s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 150s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 150s librust-critical-section-dev librust-crossbeam-deque-dev 150s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 150s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 150s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 150s librust-derive-arbitrary-dev librust-derive-more-0.99-dev librust-digest-dev 150s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 150s librust-either-dev librust-env-logger-dev librust-equivalent-dev 150s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 150s librust-event-listener-dev librust-event-listener-strategy-dev 150s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 150s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 150s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 150s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 150s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 150s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 150s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 150s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 150s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 150s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 150s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 150s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 150s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 150s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 150s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 150s librust-libc-dev librust-libloading-dev librust-libm-dev 150s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 150s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 150s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 150s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 150s librust-num-bigint-dev librust-num-complex-dev librust-num-cpus-dev 150s librust-num-integer-dev librust-num-rational-dev librust-num-threads-dev 150s librust-num-traits-dev librust-object-dev librust-once-cell-dev 150s librust-oorandom-dev librust-owned-ttf-parser-dev librust-owning-ref-dev 150s librust-parking-dev librust-parking-lot-core-dev librust-parking-lot-dev 150s librust-parse-zoneinfo-dev librust-pathfinder-geometry-dev 150s librust-pathfinder-simd-dev librust-phf+uncased-dev librust-phf-codegen-dev 150s librust-phf-dev librust-phf-generator-dev librust-phf-shared+uncased-dev 150s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 150s librust-pkg-config-dev librust-plotters-backend-dev 150s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 150s librust-png-dev librust-polling-dev librust-portable-atomic-dev 150s librust-postgres-derive-dev librust-postgres-protocol-dev 150s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 150s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 150s librust-ptr-meta-derive-dev librust-ptr-meta-dev 150s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 150s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 150s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 150s librust-quickcheck-dev librust-quote-dev librust-radium-dev 150s librust-rand-chacha-dev librust-rand-core+getrandom-dev 150s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 150s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 150s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 150s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 150s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 150s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 150s librust-rustc-version-dev librust-rustix-dev 150s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 150s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 150s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 150s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 150s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 150s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 150s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 150s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 150s librust-smol-str-dev librust-socket2-dev librust-spin-dev 150s librust-stable-deref-trait-dev librust-static-assertions-dev 150s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 150s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 150s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 150s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 150s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 150s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 150s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 150s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 150s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 150s librust-tokio-macros-dev librust-tracing-attributes-dev 150s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 150s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 150s librust-typenum-dev librust-unarray-dev librust-uncased-dev 150s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 150s librust-unicode-normalization-dev librust-unicode-segmentation-dev 150s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 150s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 150s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 150s librust-value-bag-sval2-dev librust-version-check-dev 150s librust-wait-timeout-dev librust-walkdir-dev 150s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 150s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 150s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 150s librust-wasm-bindgen-macro-support+spans-dev 150s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 150s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 150s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 150s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 150s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 150s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 150s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 150s libstdc++-14-dev libtool libubsan1 libwebp-dev libwebp7 libwebpdecoder3 150s libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools llvm-19-runtime 150s llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 150s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 150s python3-build python3-dateutil python3-hypothesis python3-iniconfig 150s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 150s python3-pytest python3-regex python3-semantic-version 150s python3-setuptools-rust python3-six python3-sortedcontainers 150s python3-tiktoken python3-toml python3-wheel python3.12-dev rustc rustc-1.80 150s uuid-dev zlib1g-dev 150s Suggested packages: 150s autoconf-archive gnu-standards autoconf-doc cargo-1.80-doc cmake-doc 150s cmake-format elpa-cmake-mode ninja-build cpp-doc gcc-14-locales cpp-14-doc 150s dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb gcc-doc 150s gdb-s390x-linux-gnu gettext-doc libasprintf-dev libgettextpo-dev 150s freetype2-doc librust-adler+compiler-builtins-dev librust-adler+core-dev 150s librust-adler+rustc-dep-of-std-dev librust-backtrace+cpp-demangle-dev 150s librust-backtrace+rustc-serialize-dev librust-backtrace+serde-dev 150s librust-backtrace+verify-winapi-dev librust-backtrace+winapi-dev 150s librust-bytes+serde-dev librust-cfg-if-0.1+core-dev librust-cfg-if+core-dev 150s librust-compiler-builtins+c-dev gnuplot-nox librust-csv-core+libc-dev 150s librust-either+serde-dev librust-getrandom+compiler-builtins-dev 150s librust-getrandom+core-dev librust-getrandom+rustc-dep-of-std-dev 150s librust-libc+rustc-dep-of-std-dev librust-libc+rustc-std-workspace-core-dev 150s librust-phf+phf-macros-dev librust-phf+serde-dev librust-phf+unicase-dev 150s librust-phf-shared+unicase-dev librust-rand-xorshift+serde-dev 150s librust-rustc-demangle+compiler-builtins-dev librust-rustc-demangle+core-dev 150s librust-rustc-demangle+rustc-dep-of-std-dev librust-ryu+no-panic-dev 150s librust-slog+erased-serde-dev librust-tinyvec+arbitrary-dev 150s librust-tinyvec+serde-dev librust-uncased+serde-dev 150s librust-uncased+with-serde-alloc-dev 150s librust-wasm-bindgen-backend+extra-traits-dev librust-wasm-bindgen+serde-dev 150s librust-wasm-bindgen+serde-serialize-dev librust-wasm-bindgen+serde-json-dev 150s librust-wasm-bindgen+strict-macro-dev 150s librust-wasm-bindgen+xxx-debug-only-print-generated-code-dev 150s librust-wasm-bindgen-macro+strict-macro-dev 150s librust-wasm-bindgen-macro-support+extra-traits-dev librust-weezl+async-dev 150s librust-weezl+futures-dev libstdc++-14-doc libtool-doc gfortran 150s | fortran95-compiler gcj-jdk llvm-19-doc m4-doc libmail-box-perl python3-pip 150s python3-venv python-build-doc python-hypothesis-doc python-installer-doc 150s python-semantic-version-doc python-sortedcontainers-doc llvm-18 lld-18 150s clang-18 150s Recommended packages: 150s bzip2-doc libarchive-cpio-perl libpng-tools librust-phf+std-dev 150s librust-subtle+default-dev libltdl-dev llvm-19-dev libmail-sendmail-perl 150s python3-click 150s The following NEW packages will be installed: 150s autoconf automake autopkgtest-satdep autopoint autotools-dev 150s binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 build-essential cargo 150s cargo-1.80 cmake cmake-data cpp cpp-14 cpp-14-s390x-linux-gnu 150s cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf dh-python 150s dh-strip-nondeterminism dwz fontconfig-config fonts-dejavu-core 150s fonts-dejavu-mono g++ g++-14 g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc 150s gcc-14 gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu gettext intltool-debian 150s libarchive-zip-perl libasan8 libbrotli-dev libbz2-dev libcc1-0 150s libdebhelper-perl libexpat1-dev libfile-stripnondeterminism-perl 150s libfontconfig-dev libfontconfig1 libfreetype-dev libfreetype6 libgcc-14-dev 150s libgit2-1.7 libgomp1 libhttp-parser2.9 libisl23 libitm1 libjsoncpp25 libmpc3 150s libpfm4 libpkgconf3 libpng-dev libpython3-all-dev libpython3-dev 150s libpython3.12-dev librhash0 librust-ab-glyph-dev 150s librust-ab-glyph-rasterizer+libm-dev librust-ab-glyph-rasterizer-dev 150s librust-addr2line-dev librust-adler-dev librust-ahash-dev 150s librust-aho-corasick-dev librust-allocator-api2-dev librust-anes-dev 150s librust-anstream-dev librust-anstyle-dev librust-anstyle-parse-dev 150s librust-anstyle-query-dev librust-anyhow-dev librust-approx-dev 150s librust-arbitrary-dev librust-array-init-dev librust-arrayvec-dev 150s librust-async-attributes-dev librust-async-channel-dev 150s librust-async-executor-dev librust-async-fs-dev 150s librust-async-global-executor-dev librust-async-io-dev 150s librust-async-lock-dev librust-async-net-dev librust-async-process-dev 150s librust-async-signal-dev librust-async-std-dev librust-async-task-dev 150s librust-atomic-dev librust-atomic-waker-dev librust-autocfg-dev 150s librust-backtrace-dev librust-base64-dev librust-bit-set+std-dev 150s librust-bit-set-dev librust-bit-vec-dev librust-bitflags-1-dev 150s librust-bitflags-dev librust-bitvec-dev librust-blobby-dev 150s librust-block-buffer-dev librust-blocking-dev librust-bstr-dev 150s librust-bumpalo-dev librust-bytecheck-derive-dev librust-bytecheck-dev 150s librust-bytemuck-derive-dev librust-bytemuck-dev librust-byteorder-dev 150s librust-bytes-dev librust-cast-dev librust-cc-dev librust-cfg-if-0.1-dev 150s librust-cfg-if-dev librust-chrono-dev librust-chrono-tz-build-dev 150s librust-chrono-tz-dev librust-ciborium-dev librust-ciborium-io-dev 150s librust-ciborium-ll-dev librust-clap-builder-dev librust-clap-derive-dev 150s librust-clap-dev librust-clap-lex-dev librust-cmake-dev 150s librust-color-quant-dev librust-colorchoice-dev 150s librust-compiler-builtins+core-dev 150s librust-compiler-builtins+rustc-dep-of-std-dev librust-compiler-builtins-dev 150s librust-concurrent-queue-dev librust-const-cstr-dev librust-const-oid-dev 150s librust-const-random-dev librust-const-random-macro-dev 150s librust-convert-case-dev librust-core-maths-dev librust-cpp-demangle-dev 150s librust-cpufeatures-dev librust-crc32fast-dev librust-criterion-dev 150s librust-critical-section-dev librust-crossbeam-deque-dev 150s librust-crossbeam-epoch+std-dev librust-crossbeam-epoch-dev 150s librust-crossbeam-utils-dev librust-crunchy-dev librust-crypto-common-dev 150s librust-csv-core-dev librust-csv-dev librust-ctor-dev librust-deranged-dev 150s librust-derive-arbitrary-dev librust-derive-more-0.99-dev librust-digest-dev 150s librust-dirs-next-dev librust-dirs-sys-next-dev librust-dlib-dev 150s librust-either-dev librust-env-logger-dev librust-equivalent-dev 150s librust-erased-serde-dev librust-errno-dev librust-eui48-dev 150s librust-event-listener-dev librust-event-listener-strategy-dev 150s librust-eyre+default-dev librust-eyre-dev librust-fallible-iterator-dev 150s librust-fancy-regex-dev librust-fastrand-dev librust-flate2-dev 150s librust-float-ord-dev librust-fnv-dev librust-font-kit-dev 150s librust-freetype-dev librust-freetype-sys-dev librust-funty-dev 150s librust-futures-channel-dev librust-futures-core-dev librust-futures-dev 150s librust-futures-executor-dev librust-futures-io-dev librust-futures-lite-dev 150s librust-futures-macro-dev librust-futures-sink-dev librust-futures-task-dev 150s librust-futures-util-dev librust-generic-array-dev librust-geo-types-dev 150s librust-getrandom-dev librust-ghost-dev librust-gif-dev librust-gimli-dev 150s librust-half-dev librust-hashbrown-dev librust-heck-dev librust-hmac-dev 150s librust-humantime-dev librust-iana-time-zone-dev librust-image-dev 150s librust-indenter-dev librust-indexmap-dev librust-indoc-dev 150s librust-inventory-dev librust-is-terminal-dev librust-itertools-dev 150s librust-itoa-dev librust-jobserver-dev librust-jpeg-decoder-dev 150s librust-js-sys-dev librust-kv-log-macro-dev librust-lazy-static-dev 150s librust-libc-dev librust-libloading-dev librust-libm-dev 150s librust-libwebp-sys-dev librust-libz-sys-dev librust-linux-raw-sys-dev 150s librust-lock-api-dev librust-log-dev librust-md-5-dev librust-md5-asm-dev 150s librust-memchr-dev librust-memmap2-dev librust-memoffset-dev 150s librust-miniz-oxide-dev librust-mio-dev librust-no-panic-dev 150s librust-num-bigint-dev librust-num-complex-dev librust-num-cpus-dev 150s librust-num-integer-dev librust-num-rational-dev librust-num-threads-dev 150s librust-num-traits-dev librust-object-dev librust-once-cell-dev 150s librust-oorandom-dev librust-owned-ttf-parser-dev librust-owning-ref-dev 150s librust-parking-dev librust-parking-lot-core-dev librust-parking-lot-dev 150s librust-parse-zoneinfo-dev librust-pathfinder-geometry-dev 150s librust-pathfinder-simd-dev librust-phf+uncased-dev librust-phf-codegen-dev 150s librust-phf-dev librust-phf-generator-dev librust-phf-shared+uncased-dev 150s librust-phf-shared-dev librust-pin-project-lite-dev librust-pin-utils-dev 150s librust-pkg-config-dev librust-plotters-backend-dev 150s librust-plotters-bitmap-dev librust-plotters-dev librust-plotters-svg-dev 150s librust-png-dev librust-polling-dev librust-portable-atomic-dev 150s librust-postgres-derive-dev librust-postgres-protocol-dev 150s librust-postgres-types-dev librust-powerfmt-dev librust-powerfmt-macros-dev 150s librust-ppv-lite86-dev librust-proc-macro2-dev librust-proptest-dev 150s librust-ptr-meta-derive-dev librust-ptr-meta-dev 150s librust-pure-rust-locales-dev librust-pyo3-build-config-dev librust-pyo3-dev 150s librust-pyo3-ffi-dev librust-pyo3-macros-backend-dev librust-pyo3-macros-dev 150s librust-python3-dll-a-dev librust-qoi-dev librust-quick-error-dev 150s librust-quickcheck-dev librust-quote-dev librust-radium-dev 150s librust-rand-chacha-dev librust-rand-core+getrandom-dev 150s librust-rand-core+serde-dev librust-rand-core+std-dev librust-rand-core-dev 150s librust-rand-dev librust-rand-xorshift-dev librust-rayon-core-dev 150s librust-rayon-dev librust-regex-automata-dev librust-regex-dev 150s librust-regex-syntax-dev librust-rend-dev librust-rkyv-derive-dev 150s librust-rkyv-dev librust-rust-decimal-dev librust-rustc-demangle-dev 150s librust-rustc-hash-dev librust-rustc-std-workspace-core-dev 150s librust-rustc-version-dev librust-rustix-dev 150s librust-rusty-fork+wait-timeout-dev librust-rusty-fork-dev 150s librust-ruzstd-dev librust-ryu-dev librust-same-file-dev 150s librust-scopeguard-dev librust-seahash-dev librust-semver-dev 150s librust-serde-derive-dev librust-serde-dev librust-serde-fmt-dev 150s librust-serde-json-dev librust-serde-test-dev librust-sha1-asm-dev 150s librust-sha1-dev librust-sha2-asm-dev librust-sha2-dev librust-shlex-dev 150s librust-signal-hook-registry-dev librust-simdutf8-dev librust-siphasher-dev 150s librust-slab-dev librust-slog-dev librust-smallvec-dev librust-smol-dev 150s librust-smol-str-dev librust-socket2-dev librust-spin-dev 150s librust-stable-deref-trait-dev librust-static-assertions-dev 150s librust-stringprep-dev librust-strsim-dev librust-subtle-dev 150s librust-sval-buffer-dev librust-sval-derive-dev librust-sval-dev 150s librust-sval-dynamic-dev librust-sval-fmt-dev librust-sval-ref-dev 150s librust-sval-serde-dev librust-syn-1-dev librust-syn-dev librust-tap-dev 150s librust-target-lexicon-dev librust-tempfile-dev librust-termcolor-dev 150s librust-terminal-size-dev librust-tiff-dev librust-time-core-dev 150s librust-time-dev librust-time-macros-dev librust-tiny-keccak-dev 150s librust-tinytemplate-dev librust-tinyvec+tinyvec-macros-dev 150s librust-tinyvec-dev librust-tinyvec-macros-dev librust-tokio-dev 150s librust-tokio-macros-dev librust-tracing-attributes-dev 150s librust-tracing-core-dev librust-tracing-dev librust-traitobject-dev 150s librust-ttf-parser-dev librust-twox-hash-dev librust-typemap-dev 150s librust-typenum-dev librust-unarray-dev librust-uncased-dev 150s librust-unicase-dev librust-unicode-bidi-dev librust-unicode-ident-dev 150s librust-unicode-normalization-dev librust-unicode-segmentation-dev 150s librust-unicode-width-dev librust-unindent-dev librust-unsafe-any-dev 150s librust-utf8parse-dev librust-uuid-dev librust-valuable-derive-dev 150s librust-valuable-dev librust-value-bag-dev librust-value-bag-serde1-dev 150s librust-value-bag-sval2-dev librust-version-check-dev 150s librust-wait-timeout-dev librust-walkdir-dev 150s librust-wasm-bindgen+default-dev librust-wasm-bindgen+spans-dev 150s librust-wasm-bindgen-backend-dev librust-wasm-bindgen-dev 150s librust-wasm-bindgen-macro+spans-dev librust-wasm-bindgen-macro-dev 150s librust-wasm-bindgen-macro-support+spans-dev 150s librust-wasm-bindgen-macro-support-dev librust-wasm-bindgen-shared-dev 150s librust-web-sys-dev librust-webp-dev librust-weezl-dev librust-winapi-dev 150s librust-winapi-i686-pc-windows-gnu-dev librust-winapi-util-dev 150s librust-winapi-x86-64-pc-windows-gnu-dev librust-wyz-dev 150s librust-yeslogic-fontconfig-sys-dev librust-zerocopy-derive-dev 150s librust-zerocopy-dev librust-zeroize-derive-dev librust-zeroize-dev 150s libsharpyuv-dev libsharpyuv0 libstd-rust-1.80 libstd-rust-1.80-dev 150s libstdc++-14-dev libtool libubsan1 libwebp-dev libwebp7 libwebpdecoder3 150s libwebpdemux2 libwebpmux3 llvm llvm-19 llvm-19-linker-tools llvm-19-runtime 150s llvm-runtime m4 pkg-config pkgconf pkgconf-bin po-debconf 150s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 150s python3-build python3-dateutil python3-hypothesis python3-iniconfig 150s python3-installer python3-packaging python3-pluggy python3-pyproject-hooks 150s python3-pytest python3-regex python3-semantic-version 150s python3-setuptools-rust python3-six python3-sortedcontainers 150s python3-tiktoken python3-toml python3-wheel python3.12-dev rustc rustc-1.80 150s uuid-dev zlib1g-dev 150s 0 upgraded, 465 newly installed, 0 to remove and 0 not upgraded. 150s Need to get 216 MB/216 MB of archives. 150s After this operation, 921 MB of additional disk space will be used. 150s Get:1 /tmp/autopkgtest.gbus0M/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [860 B] 150s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x m4 s390x 1.4.19-4build1 [256 kB] 151s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x autoconf all 2.72-3 [382 kB] 151s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x autotools-dev all 20220109.1 [44.9 kB] 151s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x automake all 1:1.16.5-1.3ubuntu1 [558 kB] 151s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x autopoint all 0.22.5-2 [616 kB] 152s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB] 152s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB] 152s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [9570 kB] 158s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-7ubuntu1 [1022 B] 158s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [5452 B] 158s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.1.0-2ubuntu1 [22.4 kB] 158s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 14.2.0-7ubuntu1 [50.6 kB] 158s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 14.2.0-7ubuntu1 [151 kB] 158s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 14.2.0-7ubuntu1 [30.9 kB] 158s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 14.2.0-7ubuntu1 [2963 kB] 160s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 14.2.0-7ubuntu1 [1184 kB] 160s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-7ubuntu1 [1037 kB] 161s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [18.7 MB] 172s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-7ubuntu1 [515 kB] 173s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [1204 B] 173s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.1.0-2ubuntu1 [4996 B] 173s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-7ubuntu1 [2607 kB] 174s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [11.0 MB] 180s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-7ubuntu1 [19.8 kB] 180s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [956 B] 180s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.1.0-2ubuntu1 [1076 B] 181s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B] 181s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x libhttp-parser2.9 s390x 2.9.4-6build1 [24.7 kB] 181s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x libgit2-1.7 s390x 1.7.2+ds-1ubuntu3 [553 kB] 181s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x libstd-rust-1.80 s390x 1.80.1+dfsg0ubuntu1-0ubuntu1 [26.1 MB] 196s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x libstd-rust-1.80-dev s390x 1.80.1+dfsg0ubuntu1-0ubuntu1 [43.6 MB] 223s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x rustc-1.80 s390x 1.80.1+dfsg0ubuntu1-0ubuntu1 [3730 kB] 226s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x cargo-1.80 s390x 1.80.1+dfsg0ubuntu1-0ubuntu1 [6792 kB] 230s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x libjsoncpp25 s390x 1.9.5-6build1 [82.5 kB] 230s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x librhash0 s390x 1.4.3-3build1 [133 kB] 231s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x cmake-data all 3.30.3-1 [2246 kB] 232s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x cmake s390x 3.30.3-1 [12.3 MB] 241s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 241s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x libtool all 2.4.7-7build1 [166 kB] 241s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x dh-autoreconf all 20 [16.1 kB] 242s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 242s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 242s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x dh-strip-nondeterminism all 1.14.0-1 [5058 B] 242s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x debugedit s390x 1:5.1-1 [49.9 kB] 242s Get:46 http://ftpmaster.internal/ubuntu plucky/main s390x dwz s390x 0.15-1build6 [122 kB] 242s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x gettext s390x 0.22.5-2 [996 kB] 243s Get:48 http://ftpmaster.internal/ubuntu plucky/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 243s Get:49 http://ftpmaster.internal/ubuntu plucky/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 243s Get:50 http://ftpmaster.internal/ubuntu plucky/main s390x debhelper all 13.20ubuntu1 [893 kB] 244s Get:51 http://ftpmaster.internal/ubuntu plucky/universe s390x dh-python all 6.20241024 [112 kB] 244s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-mono all 2.37-8 [502 kB] 245s Get:53 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-core all 2.37-8 [835 kB] 245s Get:54 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig-config s390x 2.15.0-1.1ubuntu2 [37.4 kB] 245s Get:55 http://ftpmaster.internal/ubuntu plucky/main s390x libbrotli-dev s390x 1.1.0-2build2 [394 kB] 246s Get:56 http://ftpmaster.internal/ubuntu plucky/main s390x libbz2-dev s390x 1.0.8-6 [39.1 kB] 246s Get:57 http://ftpmaster.internal/ubuntu plucky/main s390x libexpat1-dev s390x 2.6.2-2 [146 kB] 246s Get:58 http://ftpmaster.internal/ubuntu plucky/main s390x libfreetype6 s390x 2.13.3+dfsg-1 [431 kB] 246s Get:59 http://ftpmaster.internal/ubuntu plucky/main s390x libfontconfig1 s390x 2.15.0-1.1ubuntu2 [150 kB] 246s Get:60 http://ftpmaster.internal/ubuntu plucky/main s390x zlib1g-dev s390x 1:1.3.dfsg+really1.3.1-1ubuntu1 [898 kB] 247s Get:61 http://ftpmaster.internal/ubuntu plucky/main s390x libpng-dev s390x 1.6.44-1 [276 kB] 247s Get:62 http://ftpmaster.internal/ubuntu plucky/main s390x libfreetype-dev s390x 2.13.3+dfsg-1 [605 kB] 248s Get:63 http://ftpmaster.internal/ubuntu plucky/main s390x uuid-dev s390x 2.40.2-1ubuntu1 [52.4 kB] 248s Get:64 http://ftpmaster.internal/ubuntu plucky/main s390x libpkgconf3 s390x 1.8.1-4 [31.2 kB] 248s Get:65 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf-bin s390x 1.8.1-4 [21.5 kB] 248s Get:66 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf s390x 1.8.1-4 [16.7 kB] 248s Get:67 http://ftpmaster.internal/ubuntu plucky/main s390x libfontconfig-dev s390x 2.15.0-1.1ubuntu2 [172 kB] 248s Get:68 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3.12-dev s390x 3.12.7-2 [5832 kB] 253s Get:69 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3-dev s390x 3.12.6-0ubuntu1 [10.2 kB] 253s Get:70 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3-all-dev s390x 3.12.6-0ubuntu1 [918 B] 253s Get:71 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ab-glyph-rasterizer-dev s390x 0.1.7-1 [12.2 kB] 253s Get:72 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-libm-dev s390x 0.2.8-1 [101 kB] 253s Get:73 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ab-glyph-rasterizer+libm-dev s390x 0.1.7-1 [1064 B] 253s Get:74 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-core-maths-dev s390x 0.1.0-2 [7948 B] 253s Get:75 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ttf-parser-dev s390x 0.24.1-1 [148 kB] 253s Get:76 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-owned-ttf-parser-dev s390x 0.24.0-1 [129 kB] 253s Get:77 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ab-glyph-dev s390x 0.2.28-1 [20.7 kB] 253s Get:78 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cfg-if-dev s390x 1.0.0-1 [10.5 kB] 254s Get:79 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cpp-demangle-dev s390x 0.4.0-1 [66.1 kB] 254s Get:80 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-fallible-iterator-dev s390x 0.3.0-2 [20.3 kB] 254s Get:81 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicode-ident-dev s390x 1.0.13-1 [38.5 kB] 254s Get:82 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-proc-macro2-dev s390x 1.0.86-1 [44.8 kB] 254s Get:83 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-quote-dev s390x 1.0.37-1 [29.5 kB] 254s Get:84 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-syn-dev s390x 2.0.77-1 [214 kB] 254s Get:85 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-derive-arbitrary-dev s390x 1.3.2-1 [12.3 kB] 254s Get:86 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-arbitrary-dev s390x 1.3.2-1 [31.4 kB] 254s Get:87 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-equivalent-dev s390x 1.0.1-1 [8240 B] 254s Get:88 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-critical-section-dev s390x 1.1.3-1 [20.5 kB] 254s Get:89 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-serde-derive-dev s390x 1.0.210-1 [50.1 kB] 254s Get:90 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-serde-dev s390x 1.0.210-2 [66.4 kB] 254s Get:91 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-portable-atomic-dev s390x 1.4.3-2 [99.7 kB] 254s Get:92 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-libc-dev s390x 0.2.155-1 [367 kB] 255s Get:93 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-getrandom-dev s390x 0.2.12-1 [36.4 kB] 255s Get:94 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-smallvec-dev s390x 1.13.2-1 [35.5 kB] 255s Get:95 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-parking-lot-core-dev s390x 0.9.10-1 [32.6 kB] 255s Get:96 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-once-cell-dev s390x 1.19.0-1 [31.7 kB] 255s Get:97 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crunchy-dev s390x 0.2.2-1 [5340 B] 255s Get:98 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tiny-keccak-dev s390x 2.0.2-1 [20.9 kB] 255s Get:99 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-const-random-macro-dev s390x 0.1.16-2 [10.5 kB] 255s Get:100 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-const-random-dev s390x 0.1.17-2 [8590 B] 255s Get:101 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-version-check-dev s390x 0.9.5-1 [16.9 kB] 255s Get:102 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-byteorder-dev s390x 1.5.0-1 [22.4 kB] 255s Get:103 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-zerocopy-derive-dev s390x 0.7.32-2 [29.7 kB] 255s Get:104 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-zerocopy-dev s390x 0.7.32-1 [116 kB] 255s Get:105 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ahash-dev all 0.8.11-8 [37.9 kB] 256s Get:106 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-allocator-api2-dev s390x 0.2.16-1 [54.8 kB] 256s Get:107 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-compiler-builtins-dev s390x 0.1.101-1 [156 kB] 256s Get:108 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-either-dev s390x 1.13.0-1 [20.2 kB] 256s Get:109 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crossbeam-utils-dev s390x 0.8.19-1 [41.1 kB] 256s Get:110 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crossbeam-epoch-dev s390x 0.9.18-1 [42.3 kB] 256s Get:111 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crossbeam-epoch+std-dev s390x 0.9.18-1 [1128 B] 256s Get:112 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crossbeam-deque-dev s390x 0.8.5-1 [22.4 kB] 256s Get:113 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rayon-core-dev s390x 1.12.1-1 [63.7 kB] 256s Get:114 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rayon-dev s390x 1.10.0-1 [149 kB] 256s Get:115 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rustc-std-workspace-core-dev s390x 1.0.0-1 [3020 B] 256s Get:116 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-hashbrown-dev s390x 0.14.5-5 [110 kB] 256s Get:117 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-indexmap-dev s390x 2.2.6-1 [66.7 kB] 256s Get:118 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-stable-deref-trait-dev s390x 1.2.0-1 [9794 B] 256s Get:119 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-gimli-dev s390x 0.28.1-2 [209 kB] 257s Get:120 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-memmap2-dev s390x 0.9.3-1 [30.8 kB] 257s Get:121 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crc32fast-dev s390x 1.4.2-1 [39.8 kB] 257s Get:122 http://ftpmaster.internal/ubuntu plucky/main s390x pkg-config s390x 1.8.1-4 [7362 B] 257s Get:123 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pkg-config-dev s390x 0.3.27-1 [21.5 kB] 257s Get:124 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-libz-sys-dev s390x 1.1.20-1 [19.7 kB] 257s Get:125 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-adler-dev s390x 1.0.2-2 [15.3 kB] 257s Get:126 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-miniz-oxide-dev s390x 0.7.1-1 [51.5 kB] 257s Get:127 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-flate2-dev s390x 1.0.27-2 [64.9 kB] 257s Get:128 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-derive-dev s390x 2.6.1-2 [11.0 kB] 257s Get:129 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-dev s390x 2.6.1-2 [28.0 kB] 257s Get:130 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-ref-dev s390x 2.6.1-1 [8942 B] 257s Get:131 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-erased-serde-dev s390x 0.3.31-1 [22.7 kB] 257s Get:132 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-serde-fmt-dev all 1.0.3-3 [6956 B] 257s Get:133 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-syn-1-dev s390x 1.0.109-2 [188 kB] 257s Get:134 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-no-panic-dev s390x 0.1.13-1 [11.3 kB] 257s Get:135 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-itoa-dev s390x 1.0.9-1 [13.1 kB] 257s Get:136 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ryu-dev s390x 1.0.15-1 [41.7 kB] 257s Get:137 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-serde-json-dev s390x 1.0.128-1 [128 kB] 257s Get:138 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-serde-test-dev s390x 1.0.171-1 [20.6 kB] 257s Get:139 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-value-bag-serde1-dev s390x 1.9.0-1 [7820 B] 257s Get:140 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-buffer-dev s390x 2.6.1-1 [16.8 kB] 258s Get:141 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-dynamic-dev s390x 2.6.1-1 [9542 B] 258s Get:142 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-fmt-dev s390x 2.6.1-1 [12.0 kB] 258s Get:143 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sval-serde-dev s390x 2.6.1-1 [13.2 kB] 258s Get:144 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-value-bag-sval2-dev s390x 1.9.0-1 [7862 B] 258s Get:145 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-value-bag-dev s390x 1.9.0-1 [37.6 kB] 258s Get:146 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-log-dev s390x 0.4.22-1 [43.0 kB] 258s Get:147 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-memchr-dev s390x 2.7.1-1 [71.6 kB] 258s Get:148 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ppv-lite86-dev s390x 0.2.16-1 [21.9 kB] 258s Get:149 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-core-dev s390x 0.6.4-2 [23.8 kB] 258s Get:150 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-chacha-dev s390x 0.3.1-2 [16.9 kB] 258s Get:151 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-core+getrandom-dev s390x 0.6.4-2 [1054 B] 258s Get:152 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-core+serde-dev s390x 0.6.4-2 [1108 B] 258s Get:153 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-core+std-dev s390x 0.6.4-2 [1052 B] 258s Get:154 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-dev s390x 0.8.5-1 [77.5 kB] 258s Get:155 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicode-segmentation-dev s390x 1.11.0-1 [74.2 kB] 258s Get:156 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-convert-case-dev s390x 0.6.0-2 [19.4 kB] 258s Get:157 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-semver-dev s390x 1.0.23-1 [30.6 kB] 258s Get:158 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rustc-version-dev s390x 0.4.0-1 [13.8 kB] 258s Get:159 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-derive-more-0.99-dev s390x 0.99.18-1 [49.9 kB] 258s Get:160 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cfg-if-0.1-dev s390x 0.1.10-2 [10.2 kB] 258s Get:161 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-blobby-dev s390x 0.3.1-1 [11.3 kB] 258s Get:162 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-typenum-dev s390x 1.17.0-2 [41.2 kB] 258s Get:163 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-zeroize-derive-dev s390x 1.4.2-1 [12.7 kB] 258s Get:164 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-zeroize-dev s390x 1.8.1-1 [21.6 kB] 258s Get:165 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-generic-array-dev s390x 0.14.7-1 [16.9 kB] 258s Get:166 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-block-buffer-dev s390x 0.10.2-2 [12.2 kB] 258s Get:167 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-const-oid-dev s390x 0.9.3-1 [40.9 kB] 258s Get:168 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-crypto-common-dev s390x 0.1.6-1 [10.5 kB] 258s Get:169 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-subtle-dev s390x 2.6.1-1 [16.1 kB] 258s Get:170 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-digest-dev s390x 0.10.7-2 [20.9 kB] 258s Get:171 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-static-assertions-dev s390x 1.1.0-1 [19.0 kB] 258s Get:172 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-twox-hash-dev s390x 1.6.3-1 [21.6 kB] 258s Get:173 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ruzstd-dev s390x 0.5.0-1 [44.6 kB] 259s Get:174 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-object-dev s390x 0.32.2-1 [228 kB] 259s Get:175 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rustc-demangle-dev s390x 0.1.21-1 [27.7 kB] 259s Get:176 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-addr2line-dev s390x 0.21.0-2 [36.4 kB] 259s Get:177 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-aho-corasick-dev s390x 1.1.3-1 [146 kB] 259s Get:178 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bitflags-1-dev s390x 1.3.2-5 [25.3 kB] 259s Get:179 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anes-dev s390x 0.1.6-1 [21.1 kB] 259s Get:180 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anstyle-dev s390x 1.0.8-1 [16.7 kB] 259s Get:181 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-arrayvec-dev s390x 0.7.4-2 [29.9 kB] 259s Get:182 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-utf8parse-dev s390x 0.2.1-1 [15.0 kB] 259s Get:183 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anstyle-parse-dev s390x 0.2.1-1 [17.1 kB] 259s Get:184 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anstyle-query-dev s390x 1.0.0-1 [9768 B] 259s Get:185 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-colorchoice-dev s390x 1.0.0-1 [8338 B] 259s Get:186 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anstream-dev s390x 0.6.15-1 [25.7 kB] 259s Get:187 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-jobserver-dev s390x 0.1.32-1 [29.1 kB] 259s Get:188 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-shlex-dev s390x 1.3.0-1 [20.1 kB] 259s Get:189 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cc-dev s390x 1.1.14-1 [73.6 kB] 259s Get:190 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-backtrace-dev s390x 0.3.69-2 [69.9 kB] 259s Get:191 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-anyhow-dev s390x 1.0.86-1 [44.3 kB] 259s Get:192 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bytecheck-derive-dev s390x 0.6.12-1 [7086 B] 260s Get:193 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ptr-meta-derive-dev s390x 0.1.4-1 [3964 B] 260s Get:194 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ptr-meta-dev s390x 0.1.4-1 [7344 B] 260s Get:195 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-simdutf8-dev s390x 0.1.4-4 [27.2 kB] 260s Get:196 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bytemuck-derive-dev s390x 1.5.0-2 [18.7 kB] 260s Get:197 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bytemuck-dev s390x 1.14.0-1 [42.7 kB] 260s Get:198 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-atomic-dev s390x 0.6.0-1 [15.5 kB] 260s Get:199 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-md5-asm-dev s390x 0.5.0-2 [7516 B] 260s Get:200 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-md-5-dev s390x 0.10.6-1 [17.5 kB] 260s Get:201 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cpufeatures-dev s390x 0.2.11-1 [14.9 kB] 260s Get:202 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sha1-asm-dev s390x 0.5.1-2 [8060 B] 260s Get:203 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sha1-dev s390x 0.10.6-1 [16.0 kB] 260s Get:204 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-slog-dev s390x 2.7.0-1 [44.0 kB] 260s Get:205 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-uuid-dev s390x 1.10.0-1 [44.2 kB] 260s Get:206 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bytecheck-dev s390x 0.6.12-1 [10.2 kB] 260s Get:207 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-autocfg-dev s390x 1.1.0-1 [15.2 kB] 260s Get:208 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-traits-dev s390x 0.2.19-2 [46.2 kB] 260s Get:209 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-funty-dev s390x 2.0.0-1 [13.8 kB] 260s Get:210 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-radium-dev s390x 1.1.0-1 [14.9 kB] 260s Get:211 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tap-dev s390x 1.0.1-1 [12.7 kB] 260s Get:212 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-traitobject-dev s390x 0.1.0-1 [4540 B] 260s Get:213 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unsafe-any-dev s390x 0.4.2-2 [4626 B] 260s Get:214 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-typemap-dev s390x 0.3.3-2 [6724 B] 260s Get:215 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wyz-dev s390x 0.5.1-1 [19.7 kB] 260s Get:216 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bitvec-dev s390x 1.0.1-1 [179 kB] 260s Get:217 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bytes-dev s390x 1.5.0-1 [51.5 kB] 261s Get:218 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rend-dev s390x 0.4.0-1 [10.3 kB] 261s Get:219 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rkyv-derive-dev s390x 0.7.44-1 [17.5 kB] 261s Get:220 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-seahash-dev s390x 4.1.0-1 [25.1 kB] 261s Get:221 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-smol-str-dev s390x 0.2.0-1 [15.2 kB] 261s Get:222 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tinyvec-dev s390x 1.6.0-2 [37.7 kB] 261s Get:223 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tinyvec-macros-dev s390x 0.1.0-1 [3852 B] 261s Get:224 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tinyvec+tinyvec-macros-dev s390x 1.6.0-2 [1126 B] 261s Get:225 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rkyv-dev s390x 0.7.44-1 [94.4 kB] 261s Get:226 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-complex-dev s390x 0.4.6-2 [30.8 kB] 261s Get:227 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-approx-dev s390x 0.5.1-1 [16.0 kB] 261s Get:228 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-array-init-dev s390x 2.0.1-1 [12.3 kB] 261s Get:229 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-attributes-dev all 1.1.2-6 [6756 B] 261s Get:230 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-concurrent-queue-dev s390x 2.5.0-4 [23.9 kB] 261s Get:231 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-parking-dev s390x 2.2.0-1 [11.6 kB] 261s Get:232 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pin-project-lite-dev s390x 0.2.13-1 [30.2 kB] 261s Get:233 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-event-listener-dev all 5.3.1-8 [29.6 kB] 261s Get:234 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-event-listener-strategy-dev s390x 0.5.2-3 [12.6 kB] 261s Get:235 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-core-dev s390x 0.3.30-1 [16.7 kB] 261s Get:236 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-channel-dev all 2.3.1-8 [13.1 kB] 261s Get:237 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-task-dev all 4.7.1-3 [29.4 kB] 261s Get:238 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-fastrand-dev s390x 2.1.1-1 [17.8 kB] 261s Get:239 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-io-dev s390x 0.3.30-2 [11.0 kB] 261s Get:240 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-lite-dev s390x 2.3.0-2 [38.6 kB] 261s Get:241 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-slab-dev s390x 0.4.9-1 [21.2 kB] 261s Get:242 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-executor-dev all 1.13.1-1 [18.7 kB] 261s Get:243 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-lock-dev all 3.4.0-4 [29.3 kB] 261s Get:244 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-atomic-waker-dev s390x 1.1.2-1 [14.3 kB] 261s Get:245 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tracing-attributes-dev s390x 0.1.27-1 [33.3 kB] 261s Get:246 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-valuable-derive-dev s390x 0.1.0-1 [5942 B] 261s Get:247 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-valuable-dev s390x 0.1.0-4 [23.5 kB] 261s Get:248 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tracing-core-dev s390x 0.1.32-1 [53.8 kB] 261s Get:249 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tracing-dev s390x 0.1.40-1 [69.5 kB] 262s Get:250 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-blocking-dev all 1.6.1-5 [17.5 kB] 262s Get:251 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-fs-dev all 2.1.2-4 [15.3 kB] 262s Get:252 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bitflags-dev s390x 2.6.0-1 [41.1 kB] 262s Get:253 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-compiler-builtins+core-dev s390x 0.1.101-1 [1092 B] 262s Get:254 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-compiler-builtins+rustc-dep-of-std-dev s390x 0.1.101-1 [1104 B] 262s Get:255 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-errno-dev s390x 0.3.8-1 [13.0 kB] 262s Get:256 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-linux-raw-sys-dev s390x 0.4.14-1 [138 kB] 262s Get:257 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rustix-dev s390x 0.38.32-1 [274 kB] 262s Get:258 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-polling-dev s390x 3.4.0-1 [47.8 kB] 262s Get:259 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-io-dev s390x 2.3.3-4 [41.0 kB] 262s Get:260 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-mio-dev s390x 1.0.2-2 [87.6 kB] 262s Get:261 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-owning-ref-dev s390x 0.4.1-1 [13.7 kB] 262s Get:262 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-scopeguard-dev s390x 1.2.0-1 [13.3 kB] 262s Get:263 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-lock-api-dev s390x 0.4.12-1 [22.9 kB] 262s Get:264 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-parking-lot-dev s390x 0.12.1-2build1 [37.8 kB] 263s Get:265 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-signal-hook-registry-dev s390x 1.4.0-1 [19.2 kB] 263s Get:266 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-socket2-dev s390x 0.5.7-1 [48.3 kB] 263s Get:267 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tokio-macros-dev s390x 2.4.0-2 [14.0 kB] 263s Get:268 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tokio-dev s390x 1.39.3-3 [561 kB] 264s Get:269 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-global-executor-dev s390x 2.4.1-5 [14.6 kB] 264s Get:270 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-net-dev all 2.0.0-4 [14.6 kB] 264s Get:271 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-signal-dev s390x 0.2.10-1 [16.0 kB] 264s Get:272 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-process-dev all 2.3.0-1 [21.2 kB] 264s Get:273 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-kv-log-macro-dev all 1.0.8-4 [7290 B] 264s Get:274 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pin-utils-dev s390x 0.1.0-1 [9340 B] 264s Get:275 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-async-std-dev all 1.12.0-22 [168 kB] 264s Get:276 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-base64-dev s390x 0.21.7-1 [65.1 kB] 264s Get:277 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bit-vec-dev s390x 0.6.3-1 [21.1 kB] 264s Get:278 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bit-set-dev s390x 0.5.2-1 [15.7 kB] 264s Get:279 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bit-set+std-dev s390x 0.5.2-1 [1086 B] 264s Get:280 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-regex-syntax-dev s390x 0.8.2-1 [200 kB] 264s Get:281 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-regex-automata-dev s390x 0.4.7-1 [424 kB] 265s Get:282 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bstr-dev s390x 1.7.0-2build1 [271 kB] 265s Get:283 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-bumpalo-dev s390x 3.16.0-1 [75.7 kB] 265s Get:284 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cast-dev s390x 0.3.0-1 [13.1 kB] 265s Get:285 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-iana-time-zone-dev s390x 0.1.60-1 [25.1 kB] 265s Get:286 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-shared-dev s390x 0.2.87-1 [9088 B] 265s Get:287 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-backend-dev s390x 0.2.87-1 [27.0 kB] 266s Get:288 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-macro-support-dev s390x 0.2.87-1 [21.2 kB] 266s Get:289 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-macro-dev s390x 0.2.87-1 [16.6 kB] 266s Get:290 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-dev s390x 0.2.87-1 [157 kB] 266s Get:291 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-macro-support+spans-dev s390x 0.2.87-1 [1074 B] 266s Get:292 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen-macro+spans-dev s390x 0.2.87-1 [1058 B] 266s Get:293 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen+spans-dev s390x 0.2.87-1 [1040 B] 266s Get:294 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wasm-bindgen+default-dev s390x 0.2.87-1 [1048 B] 266s Get:295 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-js-sys-dev s390x 0.3.64-1 [71.9 kB] 266s Get:296 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pure-rust-locales-dev s390x 0.8.1-1 [112 kB] 266s Get:297 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-chrono-dev s390x 0.4.38-2 [172 kB] 266s Get:298 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-regex-dev s390x 1.10.6-1 [199 kB] 266s Get:299 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-parse-zoneinfo-dev s390x 0.3.0-1 [71.0 kB] 266s Get:300 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-siphasher-dev s390x 0.3.10-1 [12.0 kB] 266s Get:301 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf-shared-dev s390x 0.11.2-1 [15.6 kB] 266s Get:302 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf-dev s390x 0.11.2-1 [21.6 kB] 266s Get:303 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-uncased-dev s390x 0.9.6-2 [12.2 kB] 266s Get:304 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf-shared+uncased-dev s390x 0.11.2-1 [1030 B] 266s Get:305 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf+uncased-dev s390x 0.11.2-1 [1030 B] 266s Get:306 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ciborium-io-dev s390x 0.2.2-1 [8180 B] 266s Get:307 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-half-dev s390x 1.8.2-4 [34.8 kB] 267s Get:308 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ciborium-ll-dev s390x 0.2.2-1 [15.8 kB] 267s Get:309 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ciborium-dev s390x 0.2.2-2 [32.6 kB] 267s Get:310 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-clap-lex-dev s390x 0.7.2-2 [14.3 kB] 267s Get:311 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-strsim-dev s390x 0.11.1-1 [15.9 kB] 267s Get:312 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-terminal-size-dev s390x 0.3.0-2 [12.6 kB] 267s Get:313 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicase-dev s390x 2.7.0-1 [19.4 kB] 267s Get:314 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicode-width-dev s390x 0.1.13-3 [325 kB] 267s Get:315 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-clap-builder-dev s390x 4.5.15-2 [135 kB] 267s Get:316 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-heck-dev s390x 0.4.1-1 [13.3 kB] 267s Get:317 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-clap-derive-dev s390x 4.5.13-2 [29.3 kB] 267s Get:318 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-clap-dev s390x 4.5.16-1 [52.3 kB] 267s Get:319 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-csv-core-dev s390x 0.1.11-1 [25.9 kB] 267s Get:320 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-csv-dev s390x 1.3.0-1 [729 kB] 268s Get:321 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-sink-dev s390x 0.3.31-1 [10.1 kB] 268s Get:322 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-channel-dev s390x 0.3.30-1 [31.8 kB] 268s Get:323 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-task-dev s390x 0.3.30-1 [13.5 kB] 268s Get:324 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-macro-dev s390x 0.3.30-1 [13.3 kB] 268s Get:325 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-util-dev s390x 0.3.30-2 [127 kB] 268s Get:326 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-cpus-dev s390x 1.16.0-1 [18.1 kB] 268s Get:327 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-executor-dev s390x 0.3.30-1 [19.8 kB] 269s Get:328 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-futures-dev s390x 0.3.30-2 [53.2 kB] 269s Get:329 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-is-terminal-dev s390x 0.4.13-1 [8266 B] 269s Get:330 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-itertools-dev s390x 0.10.5-1 [101 kB] 269s Get:331 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-oorandom-dev s390x 11.1.3-1 [11.3 kB] 269s Get:332 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-winapi-i686-pc-windows-gnu-dev s390x 0.4.0-1 [3652 B] 269s Get:333 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-winapi-x86-64-pc-windows-gnu-dev s390x 0.4.0-1 [3660 B] 269s Get:334 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-winapi-dev s390x 0.3.9-1 [953 kB] 270s Get:335 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-dirs-sys-next-dev s390x 0.1.1-1 [12.1 kB] 270s Get:336 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-dirs-next-dev s390x 2.0.0-1 [13.1 kB] 270s Get:337 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-float-ord-dev s390x 0.3.2-1 [9400 B] 270s Get:338 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-cmake-dev s390x 0.1.45-1 [16.0 kB] 270s Get:339 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-freetype-sys-dev s390x 0.13.1-1 [11.8 kB] 270s Get:340 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-freetype-dev s390x 0.7.0-4 [20.4 kB] 270s Get:341 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-spin-dev s390x 0.9.8-4 [33.4 kB] 270s Get:342 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-lazy-static-dev s390x 1.4.0-2 [12.5 kB] 270s Get:343 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pathfinder-simd-dev s390x 0.5.2-1 [20.1 kB] 270s Get:344 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pathfinder-geometry-dev s390x 0.5.1-1 [13.2 kB] 270s Get:345 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-winapi-util-dev s390x 0.1.6-1 [14.0 kB] 270s Get:346 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-same-file-dev s390x 1.0.6-1 [11.5 kB] 270s Get:347 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-walkdir-dev s390x 2.5.0-1 [24.5 kB] 270s Get:348 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-const-cstr-dev s390x 0.3.0-1 [9070 B] 270s Get:349 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-libloading-dev s390x 0.8.5-1 [29.2 kB] 270s Get:350 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-dlib-dev s390x 0.5.2-2 [7974 B] 270s Get:351 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-yeslogic-fontconfig-sys-dev s390x 3.0.1-1 [8110 B] 270s Get:352 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-font-kit-dev s390x 0.11.0-2 [56.2 kB] 270s Get:353 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-color-quant-dev s390x 1.1.0-1 [8464 B] 270s Get:354 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-weezl-dev s390x 0.1.5-1 [30.3 kB] 270s Get:355 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-gif-dev s390x 0.11.3-1 [31.9 kB] 270s Get:356 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-jpeg-decoder-dev s390x 0.3.0-1 [717 kB] 271s Get:357 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-integer-dev s390x 0.1.46-1 [22.6 kB] 271s Get:358 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-humantime-dev s390x 2.1.0-1 [18.2 kB] 271s Get:359 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-termcolor-dev s390x 1.4.1-1 [19.7 kB] 271s Get:360 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-env-logger-dev s390x 0.10.2-2 [34.4 kB] 271s Get:361 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-quickcheck-dev s390x 1.0.3-3 [27.9 kB] 271s Get:362 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-bigint-dev s390x 0.4.6-1 [84.9 kB] 272s Get:363 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-rational-dev s390x 0.4.2-1 [28.7 kB] 272s Get:364 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-png-dev s390x 0.17.7-3 [63.4 kB] 272s Get:365 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-qoi-dev s390x 0.4.1-2 [56.7 kB] 272s Get:366 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tiff-dev s390x 0.9.0-1 [1413 kB] 274s Get:367 http://ftpmaster.internal/ubuntu plucky/main s390x libsharpyuv0 s390x 1.4.0-0.1 [16.2 kB] 274s Get:368 http://ftpmaster.internal/ubuntu plucky/main s390x libwebp7 s390x 1.4.0-0.1 [204 kB] 274s Get:369 http://ftpmaster.internal/ubuntu plucky/main s390x libwebpdemux2 s390x 1.4.0-0.1 [12.2 kB] 274s Get:370 http://ftpmaster.internal/ubuntu plucky/main s390x libwebpmux3 s390x 1.4.0-0.1 [25.3 kB] 274s Get:371 http://ftpmaster.internal/ubuntu plucky/main s390x libwebpdecoder3 s390x 1.4.0-0.1 [89.8 kB] 274s Get:372 http://ftpmaster.internal/ubuntu plucky/main s390x libsharpyuv-dev s390x 1.4.0-0.1 [16.9 kB] 274s Get:373 http://ftpmaster.internal/ubuntu plucky/main s390x libwebp-dev s390x 1.4.0-0.1 [335 kB] 275s Get:374 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-libwebp-sys-dev s390x 0.9.5-1build1 [1357 kB] 277s Get:375 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-webp-dev s390x 0.2.6-1 [1846 kB] 279s Get:376 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-image-dev s390x 0.24.7-2 [229 kB] 279s Get:377 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-plotters-backend-dev s390x 0.3.5-1 [15.3 kB] 279s Get:378 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-plotters-bitmap-dev s390x 0.3.3-3 [17.1 kB] 279s Get:379 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-plotters-svg-dev s390x 0.3.5-1 [9260 B] 279s Get:380 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-web-sys-dev s390x 0.3.64-2 [581 kB] 280s Get:381 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-plotters-dev s390x 0.3.5-4 [118 kB] 280s Get:382 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-smol-dev all 2.0.2-1 [205 kB] 280s Get:383 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tinytemplate-dev s390x 1.2.1-1 [26.8 kB] 280s Get:384 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-criterion-dev all 0.5.1-6 [104 kB] 280s Get:385 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf-generator-dev s390x 0.11.2-2 [12.3 kB] 280s Get:386 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-phf-codegen-dev s390x 0.11.2-1 [14.3 kB] 280s Get:387 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-chrono-tz-build-dev s390x 0.2.1-1 [12.1 kB] 280s Get:388 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-chrono-tz-dev s390x 0.8.6-2 [513 kB] 281s Get:389 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ctor-dev s390x 0.1.26-1 [12.0 kB] 281s Get:390 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-powerfmt-macros-dev s390x 0.1.0-1 [10.5 kB] 281s Get:391 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-powerfmt-dev s390x 0.2.0-1 [16.5 kB] 281s Get:392 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-deranged-dev s390x 0.3.11-1 [18.4 kB] 281s Get:393 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-eui48-dev s390x 1.1.0-2 [16.1 kB] 281s Get:394 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-indenter-dev s390x 0.3.3-1 [8642 B] 281s Get:395 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-eyre-dev s390x 0.6.12-1 [38.0 kB] 281s Get:396 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-eyre+default-dev s390x 0.6.12-1 [1050 B] 281s Get:397 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-fancy-regex-dev s390x 0.11.0-2 [54.7 kB] 281s Get:398 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-fnv-dev s390x 1.0.7-1 [12.8 kB] 281s Get:399 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-geo-types-dev s390x 0.7.11-2 [32.8 kB] 281s Get:400 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-ghost-dev s390x 0.1.5-1 [16.1 kB] 281s Get:401 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-hmac-dev s390x 0.12.1-1 [43.9 kB] 281s Get:402 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-indoc-dev s390x 2.0.5-1 [16.7 kB] 281s Get:403 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-inventory-dev s390x 0.3.2-1 [13.5 kB] 281s Get:404 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-memoffset-dev s390x 0.8.0-1 [10.9 kB] 281s Get:405 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-num-threads-dev s390x 0.1.7-1 [9154 B] 281s Get:406 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-postgres-derive-dev s390x 0.4.5-1 [13.4 kB] 281s Get:407 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sha2-asm-dev s390x 0.6.2-2 [14.4 kB] 281s Get:408 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-sha2-dev s390x 0.10.8-1 [25.6 kB] 281s Get:409 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicode-bidi-dev s390x 0.3.13-1 [39.8 kB] 282s Get:410 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unicode-normalization-dev s390x 0.1.22-1 [104 kB] 282s Get:411 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-stringprep-dev s390x 0.1.2-1 [16.5 kB] 282s Get:412 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-postgres-protocol-dev s390x 0.6.6-2 [25.9 kB] 282s Get:413 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-time-core-dev s390x 0.1.2-1 [9136 B] 282s Get:414 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-time-macros-dev s390x 0.2.16-1 [25.1 kB] 282s Get:415 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-time-dev s390x 0.3.31-2 [101 kB] 282s Get:416 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-postgres-types-dev s390x 0.2.6-2 [30.1 kB] 282s Get:417 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rand-xorshift-dev s390x 0.3.0-2 [10.9 kB] 282s Get:418 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-quick-error-dev s390x 2.0.1-1 [15.6 kB] 282s Get:419 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-tempfile-dev s390x 3.10.1-1 [33.7 kB] 282s Get:420 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rusty-fork-dev s390x 0.3.0-1 [20.4 kB] 282s Get:421 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-wait-timeout-dev s390x 0.2.0-1 [14.1 kB] 282s Get:422 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rusty-fork+wait-timeout-dev s390x 0.3.0-1 [1136 B] 282s Get:423 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unarray-dev s390x 0.1.4-1 [14.6 kB] 282s Get:424 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-proptest-dev s390x 1.5.0-2 [171 kB] 282s Get:425 http://ftpmaster.internal/ubuntu plucky/universe s390x llvm-19-runtime s390x 1:19.1.2-1ubuntu1 [623 kB] 283s Get:426 http://ftpmaster.internal/ubuntu plucky/universe s390x llvm-runtime s390x 1:19.0-60~exp1 [5608 B] 283s Get:427 http://ftpmaster.internal/ubuntu plucky/universe s390x llvm-19-linker-tools s390x 1:19.1.2-1ubuntu1 [1529 kB] 285s Get:428 http://ftpmaster.internal/ubuntu plucky/universe s390x libpfm4 s390x 4.13.0+git83-g91970fe-1 [37.3 kB] 285s Get:429 http://ftpmaster.internal/ubuntu plucky/universe s390x llvm-19 s390x 1:19.1.2-1ubuntu1 [21.1 MB] 311s Get:430 http://ftpmaster.internal/ubuntu plucky/universe s390x llvm s390x 1:19.0-60~exp1 [4144 B] 311s Get:431 http://ftpmaster.internal/ubuntu plucky/universe s390x binutils-mingw-w64-x86-64 s390x 2.43.1-4ubuntu1+12 [3502 kB] 315s Get:432 http://ftpmaster.internal/ubuntu plucky/universe s390x binutils-mingw-w64-i686 s390x 2.43.1-4ubuntu1+12 [3215 kB] 319s Get:433 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-python3-dll-a-dev s390x 0.2.10-1 [31.6 kB] 319s Get:434 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-target-lexicon-dev s390x 0.12.14-1 [25.1 kB] 319s Get:435 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pyo3-build-config-dev s390x 0.22.5-1 [30.7 kB] 319s Get:436 http://ftpmaster.internal/ubuntu plucky/main s390x python3.12-dev s390x 3.12.7-2 [505 kB] 320s Get:437 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pyo3-ffi-dev s390x 0.22.5-1 [62.5 kB] 320s Get:438 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pyo3-macros-backend-dev s390x 0.22.5-1 [58.5 kB] 320s Get:439 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pyo3-macros-dev s390x 0.22.5-1 [10.3 kB] 320s Get:440 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rust-decimal-dev s390x 1.36.0-1 [114 kB] 320s Get:441 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-unindent-dev s390x 0.2.3-1 [9186 B] 320s Get:442 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-pyo3-dev s390x 0.22.5-1 [415 kB] 320s Get:443 http://ftpmaster.internal/ubuntu plucky/universe s390x librust-rustc-hash-dev s390x 1.1.0-1 [10.8 kB] 320s Get:444 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 320s Get:445 http://ftpmaster.internal/ubuntu plucky/main s390x python3-packaging all 24.1-1 [41.4 kB] 320s Get:446 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 320s Get:447 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-toml all 0.10.2-1 [16.5 kB] 321s Get:448 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wheel all 0.44.0-1 [54.2 kB] 321s Get:449 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-build all 1.2.2-1 [31.0 kB] 321s Get:450 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 321s Get:451 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-pyproject all 6.20241024 [1728 B] 321s Get:452 http://ftpmaster.internal/ubuntu plucky/main s390x python3-all s390x 3.12.6-0ubuntu1 [890 B] 321s Get:453 http://ftpmaster.internal/ubuntu plucky/main s390x python3-six all 1.16.0-7 [13.1 kB] 321s Get:454 http://ftpmaster.internal/ubuntu plucky/main s390x python3-dateutil all 2.9.0-2 [80.3 kB] 321s Get:455 http://ftpmaster.internal/ubuntu plucky/main s390x python3-sortedcontainers all 2.4.0-2 [27.6 kB] 321s Get:456 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-hypothesis all 6.105.1-1 [321 kB] 321s Get:457 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 321s Get:458 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pluggy all 1.5.0-1 [21.0 kB] 321s Get:459 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest all 8.3.2-1 [251 kB] 321s Get:460 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-regex s390x 0.1.20240724-1 [299 kB] 322s Get:461 http://ftpmaster.internal/ubuntu plucky/main s390x python3-semantic-version all 2.10.0-2 [15.1 kB] 322s Get:462 http://ftpmaster.internal/ubuntu plucky/main s390x rustc s390x 1.80.1ubuntu2 [2754 B] 322s Get:463 http://ftpmaster.internal/ubuntu plucky/main s390x cargo s390x 1.80.1ubuntu2 [2246 B] 322s Get:464 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-setuptools-rust all 1.9.0+dfsg-2 [23.1 kB] 322s Get:465 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-tiktoken s390x 0.8.0-1 [742 kB] 324s Fetched 216 MB in 2min 53s (1249 kB/s) 324s Selecting previously unselected package m4. 324s (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 ... 55520 files and directories currently installed.) 324s Preparing to unpack .../000-m4_1.4.19-4build1_s390x.deb ... 324s Unpacking m4 (1.4.19-4build1) ... 324s Selecting previously unselected package autoconf. 324s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 324s Unpacking autoconf (2.72-3) ... 324s Selecting previously unselected package autotools-dev. 324s Preparing to unpack .../002-autotools-dev_20220109.1_all.deb ... 324s Unpacking autotools-dev (20220109.1) ... 324s Selecting previously unselected package automake. 324s Preparing to unpack .../003-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 324s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 324s Selecting previously unselected package autopoint. 324s Preparing to unpack .../004-autopoint_0.22.5-2_all.deb ... 324s Unpacking autopoint (0.22.5-2) ... 324s Selecting previously unselected package libisl23:s390x. 324s Preparing to unpack .../005-libisl23_0.27-1_s390x.deb ... 324s Unpacking libisl23:s390x (0.27-1) ... 324s Selecting previously unselected package libmpc3:s390x. 324s Preparing to unpack .../006-libmpc3_1.3.1-1build2_s390x.deb ... 324s Unpacking libmpc3:s390x (1.3.1-1build2) ... 324s Selecting previously unselected package cpp-14-s390x-linux-gnu. 324s Preparing to unpack .../007-cpp-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking cpp-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package cpp-14. 324s Preparing to unpack .../008-cpp-14_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking cpp-14 (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package cpp-s390x-linux-gnu. 324s Preparing to unpack .../009-cpp-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 324s Unpacking cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 324s Selecting previously unselected package cpp. 324s Preparing to unpack .../010-cpp_4%3a14.1.0-2ubuntu1_s390x.deb ... 324s Unpacking cpp (4:14.1.0-2ubuntu1) ... 324s Selecting previously unselected package libcc1-0:s390x. 324s Preparing to unpack .../011-libcc1-0_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libcc1-0:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package libgomp1:s390x. 324s Preparing to unpack .../012-libgomp1_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libgomp1:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package libitm1:s390x. 324s Preparing to unpack .../013-libitm1_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libitm1:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package libasan8:s390x. 324s Preparing to unpack .../014-libasan8_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libasan8:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package libubsan1:s390x. 324s Preparing to unpack .../015-libubsan1_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libubsan1:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package libgcc-14-dev:s390x. 324s Preparing to unpack .../016-libgcc-14-dev_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking libgcc-14-dev:s390x (14.2.0-7ubuntu1) ... 324s Selecting previously unselected package gcc-14-s390x-linux-gnu. 324s Preparing to unpack .../017-gcc-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 324s Unpacking gcc-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 325s Selecting previously unselected package gcc-14. 325s Preparing to unpack .../018-gcc-14_14.2.0-7ubuntu1_s390x.deb ... 325s Unpacking gcc-14 (14.2.0-7ubuntu1) ... 325s Selecting previously unselected package gcc-s390x-linux-gnu. 325s Preparing to unpack .../019-gcc-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 325s Unpacking gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 325s Selecting previously unselected package gcc. 325s Preparing to unpack .../020-gcc_4%3a14.1.0-2ubuntu1_s390x.deb ... 325s Unpacking gcc (4:14.1.0-2ubuntu1) ... 325s Selecting previously unselected package libstdc++-14-dev:s390x. 325s Preparing to unpack .../021-libstdc++-14-dev_14.2.0-7ubuntu1_s390x.deb ... 325s Unpacking libstdc++-14-dev:s390x (14.2.0-7ubuntu1) ... 325s Selecting previously unselected package g++-14-s390x-linux-gnu. 325s Preparing to unpack .../022-g++-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 325s Unpacking g++-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 325s Selecting previously unselected package g++-14. 325s Preparing to unpack .../023-g++-14_14.2.0-7ubuntu1_s390x.deb ... 325s Unpacking g++-14 (14.2.0-7ubuntu1) ... 325s Selecting previously unselected package g++-s390x-linux-gnu. 325s Preparing to unpack .../024-g++-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 325s Unpacking g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 325s Selecting previously unselected package g++. 325s Preparing to unpack .../025-g++_4%3a14.1.0-2ubuntu1_s390x.deb ... 325s Unpacking g++ (4:14.1.0-2ubuntu1) ... 325s Selecting previously unselected package build-essential. 325s Preparing to unpack .../026-build-essential_12.10ubuntu1_s390x.deb ... 325s Unpacking build-essential (12.10ubuntu1) ... 325s Selecting previously unselected package libhttp-parser2.9:s390x. 325s Preparing to unpack .../027-libhttp-parser2.9_2.9.4-6build1_s390x.deb ... 325s Unpacking libhttp-parser2.9:s390x (2.9.4-6build1) ... 325s Selecting previously unselected package libgit2-1.7:s390x. 325s Preparing to unpack .../028-libgit2-1.7_1.7.2+ds-1ubuntu3_s390x.deb ... 325s Unpacking libgit2-1.7:s390x (1.7.2+ds-1ubuntu3) ... 325s Selecting previously unselected package libstd-rust-1.80:s390x. 325s Preparing to unpack .../029-libstd-rust-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_s390x.deb ... 325s Unpacking libstd-rust-1.80:s390x (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 326s Selecting previously unselected package libstd-rust-1.80-dev:s390x. 326s Preparing to unpack .../030-libstd-rust-1.80-dev_1.80.1+dfsg0ubuntu1-0ubuntu1_s390x.deb ... 326s Unpacking libstd-rust-1.80-dev:s390x (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 326s Selecting previously unselected package rustc-1.80. 326s Preparing to unpack .../031-rustc-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_s390x.deb ... 326s Unpacking rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 326s Selecting previously unselected package cargo-1.80. 326s Preparing to unpack .../032-cargo-1.80_1.80.1+dfsg0ubuntu1-0ubuntu1_s390x.deb ... 326s Unpacking cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 327s Selecting previously unselected package libjsoncpp25:s390x. 327s Preparing to unpack .../033-libjsoncpp25_1.9.5-6build1_s390x.deb ... 327s Unpacking libjsoncpp25:s390x (1.9.5-6build1) ... 327s Selecting previously unselected package librhash0:s390x. 327s Preparing to unpack .../034-librhash0_1.4.3-3build1_s390x.deb ... 327s Unpacking librhash0:s390x (1.4.3-3build1) ... 327s Selecting previously unselected package cmake-data. 327s Preparing to unpack .../035-cmake-data_3.30.3-1_all.deb ... 327s Unpacking cmake-data (3.30.3-1) ... 327s Selecting previously unselected package cmake. 327s Preparing to unpack .../036-cmake_3.30.3-1_s390x.deb ... 327s Unpacking cmake (3.30.3-1) ... 327s Selecting previously unselected package libdebhelper-perl. 327s Preparing to unpack .../037-libdebhelper-perl_13.20ubuntu1_all.deb ... 327s Unpacking libdebhelper-perl (13.20ubuntu1) ... 327s Selecting previously unselected package libtool. 327s Preparing to unpack .../038-libtool_2.4.7-7build1_all.deb ... 327s Unpacking libtool (2.4.7-7build1) ... 327s Selecting previously unselected package dh-autoreconf. 327s Preparing to unpack .../039-dh-autoreconf_20_all.deb ... 327s Unpacking dh-autoreconf (20) ... 327s Selecting previously unselected package libarchive-zip-perl. 327s Preparing to unpack .../040-libarchive-zip-perl_1.68-1_all.deb ... 327s Unpacking libarchive-zip-perl (1.68-1) ... 327s Selecting previously unselected package libfile-stripnondeterminism-perl. 327s Preparing to unpack .../041-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 327s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 327s Selecting previously unselected package dh-strip-nondeterminism. 327s Preparing to unpack .../042-dh-strip-nondeterminism_1.14.0-1_all.deb ... 327s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 327s Selecting previously unselected package debugedit. 327s Preparing to unpack .../043-debugedit_1%3a5.1-1_s390x.deb ... 327s Unpacking debugedit (1:5.1-1) ... 327s Selecting previously unselected package dwz. 327s Preparing to unpack .../044-dwz_0.15-1build6_s390x.deb ... 327s Unpacking dwz (0.15-1build6) ... 327s Selecting previously unselected package gettext. 327s Preparing to unpack .../045-gettext_0.22.5-2_s390x.deb ... 327s Unpacking gettext (0.22.5-2) ... 327s Selecting previously unselected package intltool-debian. 327s Preparing to unpack .../046-intltool-debian_0.35.0+20060710.6_all.deb ... 327s Unpacking intltool-debian (0.35.0+20060710.6) ... 327s Selecting previously unselected package po-debconf. 327s Preparing to unpack .../047-po-debconf_1.0.21+nmu1_all.deb ... 327s Unpacking po-debconf (1.0.21+nmu1) ... 327s Selecting previously unselected package debhelper. 327s Preparing to unpack .../048-debhelper_13.20ubuntu1_all.deb ... 327s Unpacking debhelper (13.20ubuntu1) ... 327s Selecting previously unselected package dh-python. 327s Preparing to unpack .../049-dh-python_6.20241024_all.deb ... 327s Unpacking dh-python (6.20241024) ... 327s Selecting previously unselected package fonts-dejavu-mono. 327s Preparing to unpack .../050-fonts-dejavu-mono_2.37-8_all.deb ... 327s Unpacking fonts-dejavu-mono (2.37-8) ... 327s Selecting previously unselected package fonts-dejavu-core. 327s Preparing to unpack .../051-fonts-dejavu-core_2.37-8_all.deb ... 327s Unpacking fonts-dejavu-core (2.37-8) ... 327s Selecting previously unselected package fontconfig-config. 327s Preparing to unpack .../052-fontconfig-config_2.15.0-1.1ubuntu2_s390x.deb ... 327s Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ... 327s Selecting previously unselected package libbrotli-dev:s390x. 327s Preparing to unpack .../053-libbrotli-dev_1.1.0-2build2_s390x.deb ... 327s Unpacking libbrotli-dev:s390x (1.1.0-2build2) ... 327s Selecting previously unselected package libbz2-dev:s390x. 327s Preparing to unpack .../054-libbz2-dev_1.0.8-6_s390x.deb ... 327s Unpacking libbz2-dev:s390x (1.0.8-6) ... 327s Selecting previously unselected package libexpat1-dev:s390x. 327s Preparing to unpack .../055-libexpat1-dev_2.6.2-2_s390x.deb ... 327s Unpacking libexpat1-dev:s390x (2.6.2-2) ... 327s Selecting previously unselected package libfreetype6:s390x. 327s Preparing to unpack .../056-libfreetype6_2.13.3+dfsg-1_s390x.deb ... 327s Unpacking libfreetype6:s390x (2.13.3+dfsg-1) ... 327s Selecting previously unselected package libfontconfig1:s390x. 327s Preparing to unpack .../057-libfontconfig1_2.15.0-1.1ubuntu2_s390x.deb ... 327s Unpacking libfontconfig1:s390x (2.15.0-1.1ubuntu2) ... 327s Selecting previously unselected package zlib1g-dev:s390x. 327s Preparing to unpack .../058-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_s390x.deb ... 327s Unpacking zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 327s Selecting previously unselected package libpng-dev:s390x. 327s Preparing to unpack .../059-libpng-dev_1.6.44-1_s390x.deb ... 327s Unpacking libpng-dev:s390x (1.6.44-1) ... 327s Selecting previously unselected package libfreetype-dev:s390x. 327s Preparing to unpack .../060-libfreetype-dev_2.13.3+dfsg-1_s390x.deb ... 327s Unpacking libfreetype-dev:s390x (2.13.3+dfsg-1) ... 327s Selecting previously unselected package uuid-dev:s390x. 327s Preparing to unpack .../061-uuid-dev_2.40.2-1ubuntu1_s390x.deb ... 327s Unpacking uuid-dev:s390x (2.40.2-1ubuntu1) ... 327s Selecting previously unselected package libpkgconf3:s390x. 327s Preparing to unpack .../062-libpkgconf3_1.8.1-4_s390x.deb ... 327s Unpacking libpkgconf3:s390x (1.8.1-4) ... 327s Selecting previously unselected package pkgconf-bin. 327s Preparing to unpack .../063-pkgconf-bin_1.8.1-4_s390x.deb ... 327s Unpacking pkgconf-bin (1.8.1-4) ... 327s Selecting previously unselected package pkgconf:s390x. 328s Preparing to unpack .../064-pkgconf_1.8.1-4_s390x.deb ... 328s Unpacking pkgconf:s390x (1.8.1-4) ... 328s Selecting previously unselected package libfontconfig-dev:s390x. 328s Preparing to unpack .../065-libfontconfig-dev_2.15.0-1.1ubuntu2_s390x.deb ... 328s Unpacking libfontconfig-dev:s390x (2.15.0-1.1ubuntu2) ... 328s Selecting previously unselected package libpython3.12-dev:s390x. 328s Preparing to unpack .../066-libpython3.12-dev_3.12.7-2_s390x.deb ... 328s Unpacking libpython3.12-dev:s390x (3.12.7-2) ... 328s Selecting previously unselected package libpython3-dev:s390x. 328s Preparing to unpack .../067-libpython3-dev_3.12.6-0ubuntu1_s390x.deb ... 328s Unpacking libpython3-dev:s390x (3.12.6-0ubuntu1) ... 328s Selecting previously unselected package libpython3-all-dev:s390x. 328s Preparing to unpack .../068-libpython3-all-dev_3.12.6-0ubuntu1_s390x.deb ... 328s Unpacking libpython3-all-dev:s390x (3.12.6-0ubuntu1) ... 328s Selecting previously unselected package librust-ab-glyph-rasterizer-dev:s390x. 328s Preparing to unpack .../069-librust-ab-glyph-rasterizer-dev_0.1.7-1_s390x.deb ... 328s Unpacking librust-ab-glyph-rasterizer-dev:s390x (0.1.7-1) ... 328s Selecting previously unselected package librust-libm-dev:s390x. 328s Preparing to unpack .../070-librust-libm-dev_0.2.8-1_s390x.deb ... 328s Unpacking librust-libm-dev:s390x (0.2.8-1) ... 328s Selecting previously unselected package librust-ab-glyph-rasterizer+libm-dev:s390x. 328s Preparing to unpack .../071-librust-ab-glyph-rasterizer+libm-dev_0.1.7-1_s390x.deb ... 328s Unpacking librust-ab-glyph-rasterizer+libm-dev:s390x (0.1.7-1) ... 328s Selecting previously unselected package librust-core-maths-dev:s390x. 328s Preparing to unpack .../072-librust-core-maths-dev_0.1.0-2_s390x.deb ... 328s Unpacking librust-core-maths-dev:s390x (0.1.0-2) ... 328s Selecting previously unselected package librust-ttf-parser-dev:s390x. 328s Preparing to unpack .../073-librust-ttf-parser-dev_0.24.1-1_s390x.deb ... 328s Unpacking librust-ttf-parser-dev:s390x (0.24.1-1) ... 328s Selecting previously unselected package librust-owned-ttf-parser-dev:s390x. 328s Preparing to unpack .../074-librust-owned-ttf-parser-dev_0.24.0-1_s390x.deb ... 328s Unpacking librust-owned-ttf-parser-dev:s390x (0.24.0-1) ... 328s Selecting previously unselected package librust-ab-glyph-dev:s390x. 328s Preparing to unpack .../075-librust-ab-glyph-dev_0.2.28-1_s390x.deb ... 328s Unpacking librust-ab-glyph-dev:s390x (0.2.28-1) ... 328s Selecting previously unselected package librust-cfg-if-dev:s390x. 328s Preparing to unpack .../076-librust-cfg-if-dev_1.0.0-1_s390x.deb ... 328s Unpacking librust-cfg-if-dev:s390x (1.0.0-1) ... 328s Selecting previously unselected package librust-cpp-demangle-dev:s390x. 328s Preparing to unpack .../077-librust-cpp-demangle-dev_0.4.0-1_s390x.deb ... 328s Unpacking librust-cpp-demangle-dev:s390x (0.4.0-1) ... 328s Selecting previously unselected package librust-fallible-iterator-dev:s390x. 328s Preparing to unpack .../078-librust-fallible-iterator-dev_0.3.0-2_s390x.deb ... 328s Unpacking librust-fallible-iterator-dev:s390x (0.3.0-2) ... 328s Selecting previously unselected package librust-unicode-ident-dev:s390x. 328s Preparing to unpack .../079-librust-unicode-ident-dev_1.0.13-1_s390x.deb ... 328s Unpacking librust-unicode-ident-dev:s390x (1.0.13-1) ... 328s Selecting previously unselected package librust-proc-macro2-dev:s390x. 328s Preparing to unpack .../080-librust-proc-macro2-dev_1.0.86-1_s390x.deb ... 328s Unpacking librust-proc-macro2-dev:s390x (1.0.86-1) ... 328s Selecting previously unselected package librust-quote-dev:s390x. 328s Preparing to unpack .../081-librust-quote-dev_1.0.37-1_s390x.deb ... 328s Unpacking librust-quote-dev:s390x (1.0.37-1) ... 328s Selecting previously unselected package librust-syn-dev:s390x. 328s Preparing to unpack .../082-librust-syn-dev_2.0.77-1_s390x.deb ... 328s Unpacking librust-syn-dev:s390x (2.0.77-1) ... 328s Selecting previously unselected package librust-derive-arbitrary-dev:s390x. 328s Preparing to unpack .../083-librust-derive-arbitrary-dev_1.3.2-1_s390x.deb ... 328s Unpacking librust-derive-arbitrary-dev:s390x (1.3.2-1) ... 328s Selecting previously unselected package librust-arbitrary-dev:s390x. 328s Preparing to unpack .../084-librust-arbitrary-dev_1.3.2-1_s390x.deb ... 328s Unpacking librust-arbitrary-dev:s390x (1.3.2-1) ... 328s Selecting previously unselected package librust-equivalent-dev:s390x. 328s Preparing to unpack .../085-librust-equivalent-dev_1.0.1-1_s390x.deb ... 328s Unpacking librust-equivalent-dev:s390x (1.0.1-1) ... 328s Selecting previously unselected package librust-critical-section-dev:s390x. 328s Preparing to unpack .../086-librust-critical-section-dev_1.1.3-1_s390x.deb ... 328s Unpacking librust-critical-section-dev:s390x (1.1.3-1) ... 328s Selecting previously unselected package librust-serde-derive-dev:s390x. 328s Preparing to unpack .../087-librust-serde-derive-dev_1.0.210-1_s390x.deb ... 328s Unpacking librust-serde-derive-dev:s390x (1.0.210-1) ... 328s Selecting previously unselected package librust-serde-dev:s390x. 328s Preparing to unpack .../088-librust-serde-dev_1.0.210-2_s390x.deb ... 328s Unpacking librust-serde-dev:s390x (1.0.210-2) ... 328s Selecting previously unselected package librust-portable-atomic-dev:s390x. 328s Preparing to unpack .../089-librust-portable-atomic-dev_1.4.3-2_s390x.deb ... 328s Unpacking librust-portable-atomic-dev:s390x (1.4.3-2) ... 328s Selecting previously unselected package librust-libc-dev:s390x. 328s Preparing to unpack .../090-librust-libc-dev_0.2.155-1_s390x.deb ... 328s Unpacking librust-libc-dev:s390x (0.2.155-1) ... 328s Selecting previously unselected package librust-getrandom-dev:s390x. 328s Preparing to unpack .../091-librust-getrandom-dev_0.2.12-1_s390x.deb ... 328s Unpacking librust-getrandom-dev:s390x (0.2.12-1) ... 328s Selecting previously unselected package librust-smallvec-dev:s390x. 328s Preparing to unpack .../092-librust-smallvec-dev_1.13.2-1_s390x.deb ... 328s Unpacking librust-smallvec-dev:s390x (1.13.2-1) ... 328s Selecting previously unselected package librust-parking-lot-core-dev:s390x. 328s Preparing to unpack .../093-librust-parking-lot-core-dev_0.9.10-1_s390x.deb ... 328s Unpacking librust-parking-lot-core-dev:s390x (0.9.10-1) ... 328s Selecting previously unselected package librust-once-cell-dev:s390x. 328s Preparing to unpack .../094-librust-once-cell-dev_1.19.0-1_s390x.deb ... 328s Unpacking librust-once-cell-dev:s390x (1.19.0-1) ... 328s Selecting previously unselected package librust-crunchy-dev:s390x. 328s Preparing to unpack .../095-librust-crunchy-dev_0.2.2-1_s390x.deb ... 328s Unpacking librust-crunchy-dev:s390x (0.2.2-1) ... 328s Selecting previously unselected package librust-tiny-keccak-dev:s390x. 328s Preparing to unpack .../096-librust-tiny-keccak-dev_2.0.2-1_s390x.deb ... 328s Unpacking librust-tiny-keccak-dev:s390x (2.0.2-1) ... 328s Selecting previously unselected package librust-const-random-macro-dev:s390x. 328s Preparing to unpack .../097-librust-const-random-macro-dev_0.1.16-2_s390x.deb ... 328s Unpacking librust-const-random-macro-dev:s390x (0.1.16-2) ... 328s Selecting previously unselected package librust-const-random-dev:s390x. 328s Preparing to unpack .../098-librust-const-random-dev_0.1.17-2_s390x.deb ... 328s Unpacking librust-const-random-dev:s390x (0.1.17-2) ... 328s Selecting previously unselected package librust-version-check-dev:s390x. 328s Preparing to unpack .../099-librust-version-check-dev_0.9.5-1_s390x.deb ... 328s Unpacking librust-version-check-dev:s390x (0.9.5-1) ... 328s Selecting previously unselected package librust-byteorder-dev:s390x. 328s Preparing to unpack .../100-librust-byteorder-dev_1.5.0-1_s390x.deb ... 328s Unpacking librust-byteorder-dev:s390x (1.5.0-1) ... 328s Selecting previously unselected package librust-zerocopy-derive-dev:s390x. 328s Preparing to unpack .../101-librust-zerocopy-derive-dev_0.7.32-2_s390x.deb ... 328s Unpacking librust-zerocopy-derive-dev:s390x (0.7.32-2) ... 328s Selecting previously unselected package librust-zerocopy-dev:s390x. 328s Preparing to unpack .../102-librust-zerocopy-dev_0.7.32-1_s390x.deb ... 328s Unpacking librust-zerocopy-dev:s390x (0.7.32-1) ... 328s Selecting previously unselected package librust-ahash-dev. 328s Preparing to unpack .../103-librust-ahash-dev_0.8.11-8_all.deb ... 328s Unpacking librust-ahash-dev (0.8.11-8) ... 328s Selecting previously unselected package librust-allocator-api2-dev:s390x. 328s Preparing to unpack .../104-librust-allocator-api2-dev_0.2.16-1_s390x.deb ... 328s Unpacking librust-allocator-api2-dev:s390x (0.2.16-1) ... 328s Selecting previously unselected package librust-compiler-builtins-dev:s390x. 328s Preparing to unpack .../105-librust-compiler-builtins-dev_0.1.101-1_s390x.deb ... 328s Unpacking librust-compiler-builtins-dev:s390x (0.1.101-1) ... 328s Selecting previously unselected package librust-either-dev:s390x. 328s Preparing to unpack .../106-librust-either-dev_1.13.0-1_s390x.deb ... 328s Unpacking librust-either-dev:s390x (1.13.0-1) ... 328s Selecting previously unselected package librust-crossbeam-utils-dev:s390x. 328s Preparing to unpack .../107-librust-crossbeam-utils-dev_0.8.19-1_s390x.deb ... 328s Unpacking librust-crossbeam-utils-dev:s390x (0.8.19-1) ... 328s Selecting previously unselected package librust-crossbeam-epoch-dev:s390x. 328s Preparing to unpack .../108-librust-crossbeam-epoch-dev_0.9.18-1_s390x.deb ... 328s Unpacking librust-crossbeam-epoch-dev:s390x (0.9.18-1) ... 328s Selecting previously unselected package librust-crossbeam-epoch+std-dev:s390x. 328s Preparing to unpack .../109-librust-crossbeam-epoch+std-dev_0.9.18-1_s390x.deb ... 328s Unpacking librust-crossbeam-epoch+std-dev:s390x (0.9.18-1) ... 328s Selecting previously unselected package librust-crossbeam-deque-dev:s390x. 328s Preparing to unpack .../110-librust-crossbeam-deque-dev_0.8.5-1_s390x.deb ... 328s Unpacking librust-crossbeam-deque-dev:s390x (0.8.5-1) ... 328s Selecting previously unselected package librust-rayon-core-dev:s390x. 328s Preparing to unpack .../111-librust-rayon-core-dev_1.12.1-1_s390x.deb ... 328s Unpacking librust-rayon-core-dev:s390x (1.12.1-1) ... 328s Selecting previously unselected package librust-rayon-dev:s390x. 328s Preparing to unpack .../112-librust-rayon-dev_1.10.0-1_s390x.deb ... 328s Unpacking librust-rayon-dev:s390x (1.10.0-1) ... 328s Selecting previously unselected package librust-rustc-std-workspace-core-dev:s390x. 328s Preparing to unpack .../113-librust-rustc-std-workspace-core-dev_1.0.0-1_s390x.deb ... 328s Unpacking librust-rustc-std-workspace-core-dev:s390x (1.0.0-1) ... 328s Selecting previously unselected package librust-hashbrown-dev:s390x. 328s Preparing to unpack .../114-librust-hashbrown-dev_0.14.5-5_s390x.deb ... 328s Unpacking librust-hashbrown-dev:s390x (0.14.5-5) ... 328s Selecting previously unselected package librust-indexmap-dev:s390x. 328s Preparing to unpack .../115-librust-indexmap-dev_2.2.6-1_s390x.deb ... 328s Unpacking librust-indexmap-dev:s390x (2.2.6-1) ... 328s Selecting previously unselected package librust-stable-deref-trait-dev:s390x. 328s Preparing to unpack .../116-librust-stable-deref-trait-dev_1.2.0-1_s390x.deb ... 328s Unpacking librust-stable-deref-trait-dev:s390x (1.2.0-1) ... 328s Selecting previously unselected package librust-gimli-dev:s390x. 328s Preparing to unpack .../117-librust-gimli-dev_0.28.1-2_s390x.deb ... 328s Unpacking librust-gimli-dev:s390x (0.28.1-2) ... 328s Selecting previously unselected package librust-memmap2-dev:s390x. 328s Preparing to unpack .../118-librust-memmap2-dev_0.9.3-1_s390x.deb ... 328s Unpacking librust-memmap2-dev:s390x (0.9.3-1) ... 328s Selecting previously unselected package librust-crc32fast-dev:s390x. 328s Preparing to unpack .../119-librust-crc32fast-dev_1.4.2-1_s390x.deb ... 328s Unpacking librust-crc32fast-dev:s390x (1.4.2-1) ... 328s Selecting previously unselected package pkg-config:s390x. 328s Preparing to unpack .../120-pkg-config_1.8.1-4_s390x.deb ... 328s Unpacking pkg-config:s390x (1.8.1-4) ... 328s Selecting previously unselected package librust-pkg-config-dev:s390x. 328s Preparing to unpack .../121-librust-pkg-config-dev_0.3.27-1_s390x.deb ... 328s Unpacking librust-pkg-config-dev:s390x (0.3.27-1) ... 328s Selecting previously unselected package librust-libz-sys-dev:s390x. 328s Preparing to unpack .../122-librust-libz-sys-dev_1.1.20-1_s390x.deb ... 328s Unpacking librust-libz-sys-dev:s390x (1.1.20-1) ... 328s Selecting previously unselected package librust-adler-dev:s390x. 328s Preparing to unpack .../123-librust-adler-dev_1.0.2-2_s390x.deb ... 328s Unpacking librust-adler-dev:s390x (1.0.2-2) ... 328s Selecting previously unselected package librust-miniz-oxide-dev:s390x. 328s Preparing to unpack .../124-librust-miniz-oxide-dev_0.7.1-1_s390x.deb ... 328s Unpacking librust-miniz-oxide-dev:s390x (0.7.1-1) ... 328s Selecting previously unselected package librust-flate2-dev:s390x. 328s Preparing to unpack .../125-librust-flate2-dev_1.0.27-2_s390x.deb ... 328s Unpacking librust-flate2-dev:s390x (1.0.27-2) ... 328s Selecting previously unselected package librust-sval-derive-dev:s390x. 328s Preparing to unpack .../126-librust-sval-derive-dev_2.6.1-2_s390x.deb ... 328s Unpacking librust-sval-derive-dev:s390x (2.6.1-2) ... 328s Selecting previously unselected package librust-sval-dev:s390x. 328s Preparing to unpack .../127-librust-sval-dev_2.6.1-2_s390x.deb ... 328s Unpacking librust-sval-dev:s390x (2.6.1-2) ... 328s Selecting previously unselected package librust-sval-ref-dev:s390x. 328s Preparing to unpack .../128-librust-sval-ref-dev_2.6.1-1_s390x.deb ... 328s Unpacking librust-sval-ref-dev:s390x (2.6.1-1) ... 328s Selecting previously unselected package librust-erased-serde-dev:s390x. 328s Preparing to unpack .../129-librust-erased-serde-dev_0.3.31-1_s390x.deb ... 328s Unpacking librust-erased-serde-dev:s390x (0.3.31-1) ... 328s Selecting previously unselected package librust-serde-fmt-dev. 328s Preparing to unpack .../130-librust-serde-fmt-dev_1.0.3-3_all.deb ... 328s Unpacking librust-serde-fmt-dev (1.0.3-3) ... 328s Selecting previously unselected package librust-syn-1-dev:s390x. 328s Preparing to unpack .../131-librust-syn-1-dev_1.0.109-2_s390x.deb ... 328s Unpacking librust-syn-1-dev:s390x (1.0.109-2) ... 328s Selecting previously unselected package librust-no-panic-dev:s390x. 328s Preparing to unpack .../132-librust-no-panic-dev_0.1.13-1_s390x.deb ... 328s Unpacking librust-no-panic-dev:s390x (0.1.13-1) ... 329s Selecting previously unselected package librust-itoa-dev:s390x. 329s Preparing to unpack .../133-librust-itoa-dev_1.0.9-1_s390x.deb ... 329s Unpacking librust-itoa-dev:s390x (1.0.9-1) ... 329s Selecting previously unselected package librust-ryu-dev:s390x. 329s Preparing to unpack .../134-librust-ryu-dev_1.0.15-1_s390x.deb ... 329s Unpacking librust-ryu-dev:s390x (1.0.15-1) ... 329s Selecting previously unselected package librust-serde-json-dev:s390x. 329s Preparing to unpack .../135-librust-serde-json-dev_1.0.128-1_s390x.deb ... 329s Unpacking librust-serde-json-dev:s390x (1.0.128-1) ... 329s Selecting previously unselected package librust-serde-test-dev:s390x. 329s Preparing to unpack .../136-librust-serde-test-dev_1.0.171-1_s390x.deb ... 329s Unpacking librust-serde-test-dev:s390x (1.0.171-1) ... 329s Selecting previously unselected package librust-value-bag-serde1-dev:s390x. 329s Preparing to unpack .../137-librust-value-bag-serde1-dev_1.9.0-1_s390x.deb ... 329s Unpacking librust-value-bag-serde1-dev:s390x (1.9.0-1) ... 329s Selecting previously unselected package librust-sval-buffer-dev:s390x. 329s Preparing to unpack .../138-librust-sval-buffer-dev_2.6.1-1_s390x.deb ... 329s Unpacking librust-sval-buffer-dev:s390x (2.6.1-1) ... 329s Selecting previously unselected package librust-sval-dynamic-dev:s390x. 329s Preparing to unpack .../139-librust-sval-dynamic-dev_2.6.1-1_s390x.deb ... 329s Unpacking librust-sval-dynamic-dev:s390x (2.6.1-1) ... 329s Selecting previously unselected package librust-sval-fmt-dev:s390x. 329s Preparing to unpack .../140-librust-sval-fmt-dev_2.6.1-1_s390x.deb ... 329s Unpacking librust-sval-fmt-dev:s390x (2.6.1-1) ... 329s Selecting previously unselected package librust-sval-serde-dev:s390x. 329s Preparing to unpack .../141-librust-sval-serde-dev_2.6.1-1_s390x.deb ... 329s Unpacking librust-sval-serde-dev:s390x (2.6.1-1) ... 329s Selecting previously unselected package librust-value-bag-sval2-dev:s390x. 329s Preparing to unpack .../142-librust-value-bag-sval2-dev_1.9.0-1_s390x.deb ... 329s Unpacking librust-value-bag-sval2-dev:s390x (1.9.0-1) ... 329s Selecting previously unselected package librust-value-bag-dev:s390x. 329s Preparing to unpack .../143-librust-value-bag-dev_1.9.0-1_s390x.deb ... 329s Unpacking librust-value-bag-dev:s390x (1.9.0-1) ... 329s Selecting previously unselected package librust-log-dev:s390x. 329s Preparing to unpack .../144-librust-log-dev_0.4.22-1_s390x.deb ... 329s Unpacking librust-log-dev:s390x (0.4.22-1) ... 329s Selecting previously unselected package librust-memchr-dev:s390x. 329s Preparing to unpack .../145-librust-memchr-dev_2.7.1-1_s390x.deb ... 329s Unpacking librust-memchr-dev:s390x (2.7.1-1) ... 329s Selecting previously unselected package librust-ppv-lite86-dev:s390x. 329s Preparing to unpack .../146-librust-ppv-lite86-dev_0.2.16-1_s390x.deb ... 329s Unpacking librust-ppv-lite86-dev:s390x (0.2.16-1) ... 329s Selecting previously unselected package librust-rand-core-dev:s390x. 329s Preparing to unpack .../147-librust-rand-core-dev_0.6.4-2_s390x.deb ... 329s Unpacking librust-rand-core-dev:s390x (0.6.4-2) ... 329s Selecting previously unselected package librust-rand-chacha-dev:s390x. 329s Preparing to unpack .../148-librust-rand-chacha-dev_0.3.1-2_s390x.deb ... 329s Unpacking librust-rand-chacha-dev:s390x (0.3.1-2) ... 329s Selecting previously unselected package librust-rand-core+getrandom-dev:s390x. 329s Preparing to unpack .../149-librust-rand-core+getrandom-dev_0.6.4-2_s390x.deb ... 329s Unpacking librust-rand-core+getrandom-dev:s390x (0.6.4-2) ... 329s Selecting previously unselected package librust-rand-core+serde-dev:s390x. 329s Preparing to unpack .../150-librust-rand-core+serde-dev_0.6.4-2_s390x.deb ... 329s Unpacking librust-rand-core+serde-dev:s390x (0.6.4-2) ... 329s Selecting previously unselected package librust-rand-core+std-dev:s390x. 329s Preparing to unpack .../151-librust-rand-core+std-dev_0.6.4-2_s390x.deb ... 329s Unpacking librust-rand-core+std-dev:s390x (0.6.4-2) ... 329s Selecting previously unselected package librust-rand-dev:s390x. 329s Preparing to unpack .../152-librust-rand-dev_0.8.5-1_s390x.deb ... 329s Unpacking librust-rand-dev:s390x (0.8.5-1) ... 329s Selecting previously unselected package librust-unicode-segmentation-dev:s390x. 329s Preparing to unpack .../153-librust-unicode-segmentation-dev_1.11.0-1_s390x.deb ... 329s Unpacking librust-unicode-segmentation-dev:s390x (1.11.0-1) ... 329s Selecting previously unselected package librust-convert-case-dev:s390x. 329s Preparing to unpack .../154-librust-convert-case-dev_0.6.0-2_s390x.deb ... 329s Unpacking librust-convert-case-dev:s390x (0.6.0-2) ... 329s Selecting previously unselected package librust-semver-dev:s390x. 329s Preparing to unpack .../155-librust-semver-dev_1.0.23-1_s390x.deb ... 329s Unpacking librust-semver-dev:s390x (1.0.23-1) ... 329s Selecting previously unselected package librust-rustc-version-dev:s390x. 329s Preparing to unpack .../156-librust-rustc-version-dev_0.4.0-1_s390x.deb ... 329s Unpacking librust-rustc-version-dev:s390x (0.4.0-1) ... 329s Selecting previously unselected package librust-derive-more-0.99-dev:s390x. 329s Preparing to unpack .../157-librust-derive-more-0.99-dev_0.99.18-1_s390x.deb ... 329s Unpacking librust-derive-more-0.99-dev:s390x (0.99.18-1) ... 329s Selecting previously unselected package librust-cfg-if-0.1-dev:s390x. 329s Preparing to unpack .../158-librust-cfg-if-0.1-dev_0.1.10-2_s390x.deb ... 329s Unpacking librust-cfg-if-0.1-dev:s390x (0.1.10-2) ... 329s Selecting previously unselected package librust-blobby-dev:s390x. 329s Preparing to unpack .../159-librust-blobby-dev_0.3.1-1_s390x.deb ... 329s Unpacking librust-blobby-dev:s390x (0.3.1-1) ... 329s Selecting previously unselected package librust-typenum-dev:s390x. 329s Preparing to unpack .../160-librust-typenum-dev_1.17.0-2_s390x.deb ... 329s Unpacking librust-typenum-dev:s390x (1.17.0-2) ... 329s Selecting previously unselected package librust-zeroize-derive-dev:s390x. 329s Preparing to unpack .../161-librust-zeroize-derive-dev_1.4.2-1_s390x.deb ... 329s Unpacking librust-zeroize-derive-dev:s390x (1.4.2-1) ... 329s Selecting previously unselected package librust-zeroize-dev:s390x. 329s Preparing to unpack .../162-librust-zeroize-dev_1.8.1-1_s390x.deb ... 329s Unpacking librust-zeroize-dev:s390x (1.8.1-1) ... 329s Selecting previously unselected package librust-generic-array-dev:s390x. 329s Preparing to unpack .../163-librust-generic-array-dev_0.14.7-1_s390x.deb ... 329s Unpacking librust-generic-array-dev:s390x (0.14.7-1) ... 329s Selecting previously unselected package librust-block-buffer-dev:s390x. 329s Preparing to unpack .../164-librust-block-buffer-dev_0.10.2-2_s390x.deb ... 329s Unpacking librust-block-buffer-dev:s390x (0.10.2-2) ... 329s Selecting previously unselected package librust-const-oid-dev:s390x. 329s Preparing to unpack .../165-librust-const-oid-dev_0.9.3-1_s390x.deb ... 329s Unpacking librust-const-oid-dev:s390x (0.9.3-1) ... 329s Selecting previously unselected package librust-crypto-common-dev:s390x. 329s Preparing to unpack .../166-librust-crypto-common-dev_0.1.6-1_s390x.deb ... 329s Unpacking librust-crypto-common-dev:s390x (0.1.6-1) ... 329s Selecting previously unselected package librust-subtle-dev:s390x. 329s Preparing to unpack .../167-librust-subtle-dev_2.6.1-1_s390x.deb ... 329s Unpacking librust-subtle-dev:s390x (2.6.1-1) ... 329s Selecting previously unselected package librust-digest-dev:s390x. 329s Preparing to unpack .../168-librust-digest-dev_0.10.7-2_s390x.deb ... 329s Unpacking librust-digest-dev:s390x (0.10.7-2) ... 329s Selecting previously unselected package librust-static-assertions-dev:s390x. 329s Preparing to unpack .../169-librust-static-assertions-dev_1.1.0-1_s390x.deb ... 329s Unpacking librust-static-assertions-dev:s390x (1.1.0-1) ... 329s Selecting previously unselected package librust-twox-hash-dev:s390x. 329s Preparing to unpack .../170-librust-twox-hash-dev_1.6.3-1_s390x.deb ... 329s Unpacking librust-twox-hash-dev:s390x (1.6.3-1) ... 329s Selecting previously unselected package librust-ruzstd-dev:s390x. 329s Preparing to unpack .../171-librust-ruzstd-dev_0.5.0-1_s390x.deb ... 329s Unpacking librust-ruzstd-dev:s390x (0.5.0-1) ... 329s Selecting previously unselected package librust-object-dev:s390x. 329s Preparing to unpack .../172-librust-object-dev_0.32.2-1_s390x.deb ... 329s Unpacking librust-object-dev:s390x (0.32.2-1) ... 329s Selecting previously unselected package librust-rustc-demangle-dev:s390x. 329s Preparing to unpack .../173-librust-rustc-demangle-dev_0.1.21-1_s390x.deb ... 329s Unpacking librust-rustc-demangle-dev:s390x (0.1.21-1) ... 329s Selecting previously unselected package librust-addr2line-dev:s390x. 329s Preparing to unpack .../174-librust-addr2line-dev_0.21.0-2_s390x.deb ... 329s Unpacking librust-addr2line-dev:s390x (0.21.0-2) ... 329s Selecting previously unselected package librust-aho-corasick-dev:s390x. 329s Preparing to unpack .../175-librust-aho-corasick-dev_1.1.3-1_s390x.deb ... 329s Unpacking librust-aho-corasick-dev:s390x (1.1.3-1) ... 329s Selecting previously unselected package librust-bitflags-1-dev:s390x. 329s Preparing to unpack .../176-librust-bitflags-1-dev_1.3.2-5_s390x.deb ... 329s Unpacking librust-bitflags-1-dev:s390x (1.3.2-5) ... 329s Selecting previously unselected package librust-anes-dev:s390x. 329s Preparing to unpack .../177-librust-anes-dev_0.1.6-1_s390x.deb ... 329s Unpacking librust-anes-dev:s390x (0.1.6-1) ... 329s Selecting previously unselected package librust-anstyle-dev:s390x. 329s Preparing to unpack .../178-librust-anstyle-dev_1.0.8-1_s390x.deb ... 329s Unpacking librust-anstyle-dev:s390x (1.0.8-1) ... 329s Selecting previously unselected package librust-arrayvec-dev:s390x. 329s Preparing to unpack .../179-librust-arrayvec-dev_0.7.4-2_s390x.deb ... 329s Unpacking librust-arrayvec-dev:s390x (0.7.4-2) ... 329s Selecting previously unselected package librust-utf8parse-dev:s390x. 329s Preparing to unpack .../180-librust-utf8parse-dev_0.2.1-1_s390x.deb ... 329s Unpacking librust-utf8parse-dev:s390x (0.2.1-1) ... 329s Selecting previously unselected package librust-anstyle-parse-dev:s390x. 329s Preparing to unpack .../181-librust-anstyle-parse-dev_0.2.1-1_s390x.deb ... 329s Unpacking librust-anstyle-parse-dev:s390x (0.2.1-1) ... 329s Selecting previously unselected package librust-anstyle-query-dev:s390x. 329s Preparing to unpack .../182-librust-anstyle-query-dev_1.0.0-1_s390x.deb ... 329s Unpacking librust-anstyle-query-dev:s390x (1.0.0-1) ... 329s Selecting previously unselected package librust-colorchoice-dev:s390x. 329s Preparing to unpack .../183-librust-colorchoice-dev_1.0.0-1_s390x.deb ... 329s Unpacking librust-colorchoice-dev:s390x (1.0.0-1) ... 329s Selecting previously unselected package librust-anstream-dev:s390x. 329s Preparing to unpack .../184-librust-anstream-dev_0.6.15-1_s390x.deb ... 329s Unpacking librust-anstream-dev:s390x (0.6.15-1) ... 329s Selecting previously unselected package librust-jobserver-dev:s390x. 329s Preparing to unpack .../185-librust-jobserver-dev_0.1.32-1_s390x.deb ... 329s Unpacking librust-jobserver-dev:s390x (0.1.32-1) ... 329s Selecting previously unselected package librust-shlex-dev:s390x. 329s Preparing to unpack .../186-librust-shlex-dev_1.3.0-1_s390x.deb ... 329s Unpacking librust-shlex-dev:s390x (1.3.0-1) ... 329s Selecting previously unselected package librust-cc-dev:s390x. 329s Preparing to unpack .../187-librust-cc-dev_1.1.14-1_s390x.deb ... 329s Unpacking librust-cc-dev:s390x (1.1.14-1) ... 329s Selecting previously unselected package librust-backtrace-dev:s390x. 329s Preparing to unpack .../188-librust-backtrace-dev_0.3.69-2_s390x.deb ... 329s Unpacking librust-backtrace-dev:s390x (0.3.69-2) ... 329s Selecting previously unselected package librust-anyhow-dev:s390x. 329s Preparing to unpack .../189-librust-anyhow-dev_1.0.86-1_s390x.deb ... 329s Unpacking librust-anyhow-dev:s390x (1.0.86-1) ... 329s Selecting previously unselected package librust-bytecheck-derive-dev:s390x. 329s Preparing to unpack .../190-librust-bytecheck-derive-dev_0.6.12-1_s390x.deb ... 329s Unpacking librust-bytecheck-derive-dev:s390x (0.6.12-1) ... 329s Selecting previously unselected package librust-ptr-meta-derive-dev:s390x. 329s Preparing to unpack .../191-librust-ptr-meta-derive-dev_0.1.4-1_s390x.deb ... 329s Unpacking librust-ptr-meta-derive-dev:s390x (0.1.4-1) ... 329s Selecting previously unselected package librust-ptr-meta-dev:s390x. 329s Preparing to unpack .../192-librust-ptr-meta-dev_0.1.4-1_s390x.deb ... 329s Unpacking librust-ptr-meta-dev:s390x (0.1.4-1) ... 329s Selecting previously unselected package librust-simdutf8-dev:s390x. 329s Preparing to unpack .../193-librust-simdutf8-dev_0.1.4-4_s390x.deb ... 329s Unpacking librust-simdutf8-dev:s390x (0.1.4-4) ... 329s Selecting previously unselected package librust-bytemuck-derive-dev:s390x. 329s Preparing to unpack .../194-librust-bytemuck-derive-dev_1.5.0-2_s390x.deb ... 329s Unpacking librust-bytemuck-derive-dev:s390x (1.5.0-2) ... 329s Selecting previously unselected package librust-bytemuck-dev:s390x. 329s Preparing to unpack .../195-librust-bytemuck-dev_1.14.0-1_s390x.deb ... 329s Unpacking librust-bytemuck-dev:s390x (1.14.0-1) ... 329s Selecting previously unselected package librust-atomic-dev:s390x. 329s Preparing to unpack .../196-librust-atomic-dev_0.6.0-1_s390x.deb ... 329s Unpacking librust-atomic-dev:s390x (0.6.0-1) ... 329s Selecting previously unselected package librust-md5-asm-dev:s390x. 329s Preparing to unpack .../197-librust-md5-asm-dev_0.5.0-2_s390x.deb ... 329s Unpacking librust-md5-asm-dev:s390x (0.5.0-2) ... 329s Selecting previously unselected package librust-md-5-dev:s390x. 329s Preparing to unpack .../198-librust-md-5-dev_0.10.6-1_s390x.deb ... 329s Unpacking librust-md-5-dev:s390x (0.10.6-1) ... 329s Selecting previously unselected package librust-cpufeatures-dev:s390x. 329s Preparing to unpack .../199-librust-cpufeatures-dev_0.2.11-1_s390x.deb ... 329s Unpacking librust-cpufeatures-dev:s390x (0.2.11-1) ... 329s Selecting previously unselected package librust-sha1-asm-dev:s390x. 329s Preparing to unpack .../200-librust-sha1-asm-dev_0.5.1-2_s390x.deb ... 329s Unpacking librust-sha1-asm-dev:s390x (0.5.1-2) ... 329s Selecting previously unselected package librust-sha1-dev:s390x. 329s Preparing to unpack .../201-librust-sha1-dev_0.10.6-1_s390x.deb ... 329s Unpacking librust-sha1-dev:s390x (0.10.6-1) ... 329s Selecting previously unselected package librust-slog-dev:s390x. 329s Preparing to unpack .../202-librust-slog-dev_2.7.0-1_s390x.deb ... 329s Unpacking librust-slog-dev:s390x (2.7.0-1) ... 329s Selecting previously unselected package librust-uuid-dev:s390x. 329s Preparing to unpack .../203-librust-uuid-dev_1.10.0-1_s390x.deb ... 329s Unpacking librust-uuid-dev:s390x (1.10.0-1) ... 329s Selecting previously unselected package librust-bytecheck-dev:s390x. 329s Preparing to unpack .../204-librust-bytecheck-dev_0.6.12-1_s390x.deb ... 329s Unpacking librust-bytecheck-dev:s390x (0.6.12-1) ... 329s Selecting previously unselected package librust-autocfg-dev:s390x. 329s Preparing to unpack .../205-librust-autocfg-dev_1.1.0-1_s390x.deb ... 329s Unpacking librust-autocfg-dev:s390x (1.1.0-1) ... 329s Selecting previously unselected package librust-num-traits-dev:s390x. 329s Preparing to unpack .../206-librust-num-traits-dev_0.2.19-2_s390x.deb ... 329s Unpacking librust-num-traits-dev:s390x (0.2.19-2) ... 329s Selecting previously unselected package librust-funty-dev:s390x. 329s Preparing to unpack .../207-librust-funty-dev_2.0.0-1_s390x.deb ... 329s Unpacking librust-funty-dev:s390x (2.0.0-1) ... 329s Selecting previously unselected package librust-radium-dev:s390x. 329s Preparing to unpack .../208-librust-radium-dev_1.1.0-1_s390x.deb ... 329s Unpacking librust-radium-dev:s390x (1.1.0-1) ... 329s Selecting previously unselected package librust-tap-dev:s390x. 329s Preparing to unpack .../209-librust-tap-dev_1.0.1-1_s390x.deb ... 329s Unpacking librust-tap-dev:s390x (1.0.1-1) ... 329s Selecting previously unselected package librust-traitobject-dev:s390x. 329s Preparing to unpack .../210-librust-traitobject-dev_0.1.0-1_s390x.deb ... 329s Unpacking librust-traitobject-dev:s390x (0.1.0-1) ... 329s Selecting previously unselected package librust-unsafe-any-dev:s390x. 329s Preparing to unpack .../211-librust-unsafe-any-dev_0.4.2-2_s390x.deb ... 329s Unpacking librust-unsafe-any-dev:s390x (0.4.2-2) ... 329s Selecting previously unselected package librust-typemap-dev:s390x. 329s Preparing to unpack .../212-librust-typemap-dev_0.3.3-2_s390x.deb ... 329s Unpacking librust-typemap-dev:s390x (0.3.3-2) ... 329s Selecting previously unselected package librust-wyz-dev:s390x. 329s Preparing to unpack .../213-librust-wyz-dev_0.5.1-1_s390x.deb ... 329s Unpacking librust-wyz-dev:s390x (0.5.1-1) ... 329s Selecting previously unselected package librust-bitvec-dev:s390x. 329s Preparing to unpack .../214-librust-bitvec-dev_1.0.1-1_s390x.deb ... 329s Unpacking librust-bitvec-dev:s390x (1.0.1-1) ... 330s Selecting previously unselected package librust-bytes-dev:s390x. 330s Preparing to unpack .../215-librust-bytes-dev_1.5.0-1_s390x.deb ... 330s Unpacking librust-bytes-dev:s390x (1.5.0-1) ... 330s Selecting previously unselected package librust-rend-dev:s390x. 330s Preparing to unpack .../216-librust-rend-dev_0.4.0-1_s390x.deb ... 330s Unpacking librust-rend-dev:s390x (0.4.0-1) ... 330s Selecting previously unselected package librust-rkyv-derive-dev:s390x. 330s Preparing to unpack .../217-librust-rkyv-derive-dev_0.7.44-1_s390x.deb ... 330s Unpacking librust-rkyv-derive-dev:s390x (0.7.44-1) ... 330s Selecting previously unselected package librust-seahash-dev:s390x. 330s Preparing to unpack .../218-librust-seahash-dev_4.1.0-1_s390x.deb ... 330s Unpacking librust-seahash-dev:s390x (4.1.0-1) ... 330s Selecting previously unselected package librust-smol-str-dev:s390x. 330s Preparing to unpack .../219-librust-smol-str-dev_0.2.0-1_s390x.deb ... 330s Unpacking librust-smol-str-dev:s390x (0.2.0-1) ... 330s Selecting previously unselected package librust-tinyvec-dev:s390x. 330s Preparing to unpack .../220-librust-tinyvec-dev_1.6.0-2_s390x.deb ... 330s Unpacking librust-tinyvec-dev:s390x (1.6.0-2) ... 330s Selecting previously unselected package librust-tinyvec-macros-dev:s390x. 330s Preparing to unpack .../221-librust-tinyvec-macros-dev_0.1.0-1_s390x.deb ... 330s Unpacking librust-tinyvec-macros-dev:s390x (0.1.0-1) ... 330s Selecting previously unselected package librust-tinyvec+tinyvec-macros-dev:s390x. 330s Preparing to unpack .../222-librust-tinyvec+tinyvec-macros-dev_1.6.0-2_s390x.deb ... 330s Unpacking librust-tinyvec+tinyvec-macros-dev:s390x (1.6.0-2) ... 330s Selecting previously unselected package librust-rkyv-dev:s390x. 330s Preparing to unpack .../223-librust-rkyv-dev_0.7.44-1_s390x.deb ... 330s Unpacking librust-rkyv-dev:s390x (0.7.44-1) ... 330s Selecting previously unselected package librust-num-complex-dev:s390x. 330s Preparing to unpack .../224-librust-num-complex-dev_0.4.6-2_s390x.deb ... 330s Unpacking librust-num-complex-dev:s390x (0.4.6-2) ... 330s Selecting previously unselected package librust-approx-dev:s390x. 330s Preparing to unpack .../225-librust-approx-dev_0.5.1-1_s390x.deb ... 330s Unpacking librust-approx-dev:s390x (0.5.1-1) ... 330s Selecting previously unselected package librust-array-init-dev:s390x. 330s Preparing to unpack .../226-librust-array-init-dev_2.0.1-1_s390x.deb ... 330s Unpacking librust-array-init-dev:s390x (2.0.1-1) ... 330s Selecting previously unselected package librust-async-attributes-dev. 330s Preparing to unpack .../227-librust-async-attributes-dev_1.1.2-6_all.deb ... 330s Unpacking librust-async-attributes-dev (1.1.2-6) ... 330s Selecting previously unselected package librust-concurrent-queue-dev:s390x. 330s Preparing to unpack .../228-librust-concurrent-queue-dev_2.5.0-4_s390x.deb ... 330s Unpacking librust-concurrent-queue-dev:s390x (2.5.0-4) ... 330s Selecting previously unselected package librust-parking-dev:s390x. 330s Preparing to unpack .../229-librust-parking-dev_2.2.0-1_s390x.deb ... 330s Unpacking librust-parking-dev:s390x (2.2.0-1) ... 330s Selecting previously unselected package librust-pin-project-lite-dev:s390x. 330s Preparing to unpack .../230-librust-pin-project-lite-dev_0.2.13-1_s390x.deb ... 330s Unpacking librust-pin-project-lite-dev:s390x (0.2.13-1) ... 330s Selecting previously unselected package librust-event-listener-dev. 330s Preparing to unpack .../231-librust-event-listener-dev_5.3.1-8_all.deb ... 330s Unpacking librust-event-listener-dev (5.3.1-8) ... 330s Selecting previously unselected package librust-event-listener-strategy-dev:s390x. 330s Preparing to unpack .../232-librust-event-listener-strategy-dev_0.5.2-3_s390x.deb ... 330s Unpacking librust-event-listener-strategy-dev:s390x (0.5.2-3) ... 330s Selecting previously unselected package librust-futures-core-dev:s390x. 330s Preparing to unpack .../233-librust-futures-core-dev_0.3.30-1_s390x.deb ... 330s Unpacking librust-futures-core-dev:s390x (0.3.30-1) ... 330s Selecting previously unselected package librust-async-channel-dev. 330s Preparing to unpack .../234-librust-async-channel-dev_2.3.1-8_all.deb ... 330s Unpacking librust-async-channel-dev (2.3.1-8) ... 330s Selecting previously unselected package librust-async-task-dev. 330s Preparing to unpack .../235-librust-async-task-dev_4.7.1-3_all.deb ... 330s Unpacking librust-async-task-dev (4.7.1-3) ... 330s Selecting previously unselected package librust-fastrand-dev:s390x. 330s Preparing to unpack .../236-librust-fastrand-dev_2.1.1-1_s390x.deb ... 330s Unpacking librust-fastrand-dev:s390x (2.1.1-1) ... 330s Selecting previously unselected package librust-futures-io-dev:s390x. 330s Preparing to unpack .../237-librust-futures-io-dev_0.3.30-2_s390x.deb ... 330s Unpacking librust-futures-io-dev:s390x (0.3.30-2) ... 330s Selecting previously unselected package librust-futures-lite-dev:s390x. 330s Preparing to unpack .../238-librust-futures-lite-dev_2.3.0-2_s390x.deb ... 330s Unpacking librust-futures-lite-dev:s390x (2.3.0-2) ... 330s Selecting previously unselected package librust-slab-dev:s390x. 330s Preparing to unpack .../239-librust-slab-dev_0.4.9-1_s390x.deb ... 330s Unpacking librust-slab-dev:s390x (0.4.9-1) ... 330s Selecting previously unselected package librust-async-executor-dev. 330s Preparing to unpack .../240-librust-async-executor-dev_1.13.1-1_all.deb ... 330s Unpacking librust-async-executor-dev (1.13.1-1) ... 330s Selecting previously unselected package librust-async-lock-dev. 330s Preparing to unpack .../241-librust-async-lock-dev_3.4.0-4_all.deb ... 330s Unpacking librust-async-lock-dev (3.4.0-4) ... 330s Selecting previously unselected package librust-atomic-waker-dev:s390x. 330s Preparing to unpack .../242-librust-atomic-waker-dev_1.1.2-1_s390x.deb ... 330s Unpacking librust-atomic-waker-dev:s390x (1.1.2-1) ... 330s Selecting previously unselected package librust-tracing-attributes-dev:s390x. 330s Preparing to unpack .../243-librust-tracing-attributes-dev_0.1.27-1_s390x.deb ... 330s Unpacking librust-tracing-attributes-dev:s390x (0.1.27-1) ... 330s Selecting previously unselected package librust-valuable-derive-dev:s390x. 330s Preparing to unpack .../244-librust-valuable-derive-dev_0.1.0-1_s390x.deb ... 330s Unpacking librust-valuable-derive-dev:s390x (0.1.0-1) ... 330s Selecting previously unselected package librust-valuable-dev:s390x. 330s Preparing to unpack .../245-librust-valuable-dev_0.1.0-4_s390x.deb ... 330s Unpacking librust-valuable-dev:s390x (0.1.0-4) ... 330s Selecting previously unselected package librust-tracing-core-dev:s390x. 330s Preparing to unpack .../246-librust-tracing-core-dev_0.1.32-1_s390x.deb ... 330s Unpacking librust-tracing-core-dev:s390x (0.1.32-1) ... 330s Selecting previously unselected package librust-tracing-dev:s390x. 330s Preparing to unpack .../247-librust-tracing-dev_0.1.40-1_s390x.deb ... 330s Unpacking librust-tracing-dev:s390x (0.1.40-1) ... 330s Selecting previously unselected package librust-blocking-dev. 330s Preparing to unpack .../248-librust-blocking-dev_1.6.1-5_all.deb ... 330s Unpacking librust-blocking-dev (1.6.1-5) ... 330s Selecting previously unselected package librust-async-fs-dev. 330s Preparing to unpack .../249-librust-async-fs-dev_2.1.2-4_all.deb ... 330s Unpacking librust-async-fs-dev (2.1.2-4) ... 330s Selecting previously unselected package librust-bitflags-dev:s390x. 330s Preparing to unpack .../250-librust-bitflags-dev_2.6.0-1_s390x.deb ... 330s Unpacking librust-bitflags-dev:s390x (2.6.0-1) ... 330s Selecting previously unselected package librust-compiler-builtins+core-dev:s390x. 330s Preparing to unpack .../251-librust-compiler-builtins+core-dev_0.1.101-1_s390x.deb ... 330s Unpacking librust-compiler-builtins+core-dev:s390x (0.1.101-1) ... 330s Selecting previously unselected package librust-compiler-builtins+rustc-dep-of-std-dev:s390x. 330s Preparing to unpack .../252-librust-compiler-builtins+rustc-dep-of-std-dev_0.1.101-1_s390x.deb ... 330s Unpacking librust-compiler-builtins+rustc-dep-of-std-dev:s390x (0.1.101-1) ... 330s Selecting previously unselected package librust-errno-dev:s390x. 330s Preparing to unpack .../253-librust-errno-dev_0.3.8-1_s390x.deb ... 330s Unpacking librust-errno-dev:s390x (0.3.8-1) ... 330s Selecting previously unselected package librust-linux-raw-sys-dev:s390x. 330s Preparing to unpack .../254-librust-linux-raw-sys-dev_0.4.14-1_s390x.deb ... 330s Unpacking librust-linux-raw-sys-dev:s390x (0.4.14-1) ... 330s Selecting previously unselected package librust-rustix-dev:s390x. 330s Preparing to unpack .../255-librust-rustix-dev_0.38.32-1_s390x.deb ... 330s Unpacking librust-rustix-dev:s390x (0.38.32-1) ... 330s Selecting previously unselected package librust-polling-dev:s390x. 330s Preparing to unpack .../256-librust-polling-dev_3.4.0-1_s390x.deb ... 330s Unpacking librust-polling-dev:s390x (3.4.0-1) ... 330s Selecting previously unselected package librust-async-io-dev:s390x. 330s Preparing to unpack .../257-librust-async-io-dev_2.3.3-4_s390x.deb ... 330s Unpacking librust-async-io-dev:s390x (2.3.3-4) ... 330s Selecting previously unselected package librust-mio-dev:s390x. 330s Preparing to unpack .../258-librust-mio-dev_1.0.2-2_s390x.deb ... 330s Unpacking librust-mio-dev:s390x (1.0.2-2) ... 330s Selecting previously unselected package librust-owning-ref-dev:s390x. 330s Preparing to unpack .../259-librust-owning-ref-dev_0.4.1-1_s390x.deb ... 330s Unpacking librust-owning-ref-dev:s390x (0.4.1-1) ... 330s Selecting previously unselected package librust-scopeguard-dev:s390x. 330s Preparing to unpack .../260-librust-scopeguard-dev_1.2.0-1_s390x.deb ... 330s Unpacking librust-scopeguard-dev:s390x (1.2.0-1) ... 330s Selecting previously unselected package librust-lock-api-dev:s390x. 330s Preparing to unpack .../261-librust-lock-api-dev_0.4.12-1_s390x.deb ... 330s Unpacking librust-lock-api-dev:s390x (0.4.12-1) ... 330s Selecting previously unselected package librust-parking-lot-dev:s390x. 330s Preparing to unpack .../262-librust-parking-lot-dev_0.12.1-2build1_s390x.deb ... 330s Unpacking librust-parking-lot-dev:s390x (0.12.1-2build1) ... 330s Selecting previously unselected package librust-signal-hook-registry-dev:s390x. 330s Preparing to unpack .../263-librust-signal-hook-registry-dev_1.4.0-1_s390x.deb ... 330s Unpacking librust-signal-hook-registry-dev:s390x (1.4.0-1) ... 330s Selecting previously unselected package librust-socket2-dev:s390x. 330s Preparing to unpack .../264-librust-socket2-dev_0.5.7-1_s390x.deb ... 330s Unpacking librust-socket2-dev:s390x (0.5.7-1) ... 330s Selecting previously unselected package librust-tokio-macros-dev:s390x. 330s Preparing to unpack .../265-librust-tokio-macros-dev_2.4.0-2_s390x.deb ... 330s Unpacking librust-tokio-macros-dev:s390x (2.4.0-2) ... 330s Selecting previously unselected package librust-tokio-dev:s390x. 330s Preparing to unpack .../266-librust-tokio-dev_1.39.3-3_s390x.deb ... 330s Unpacking librust-tokio-dev:s390x (1.39.3-3) ... 330s Selecting previously unselected package librust-async-global-executor-dev:s390x. 330s Preparing to unpack .../267-librust-async-global-executor-dev_2.4.1-5_s390x.deb ... 330s Unpacking librust-async-global-executor-dev:s390x (2.4.1-5) ... 330s Selecting previously unselected package librust-async-net-dev. 330s Preparing to unpack .../268-librust-async-net-dev_2.0.0-4_all.deb ... 330s Unpacking librust-async-net-dev (2.0.0-4) ... 330s Selecting previously unselected package librust-async-signal-dev:s390x. 330s Preparing to unpack .../269-librust-async-signal-dev_0.2.10-1_s390x.deb ... 330s Unpacking librust-async-signal-dev:s390x (0.2.10-1) ... 330s Selecting previously unselected package librust-async-process-dev. 330s Preparing to unpack .../270-librust-async-process-dev_2.3.0-1_all.deb ... 330s Unpacking librust-async-process-dev (2.3.0-1) ... 330s Selecting previously unselected package librust-kv-log-macro-dev. 330s Preparing to unpack .../271-librust-kv-log-macro-dev_1.0.8-4_all.deb ... 330s Unpacking librust-kv-log-macro-dev (1.0.8-4) ... 330s Selecting previously unselected package librust-pin-utils-dev:s390x. 330s Preparing to unpack .../272-librust-pin-utils-dev_0.1.0-1_s390x.deb ... 330s Unpacking librust-pin-utils-dev:s390x (0.1.0-1) ... 330s Selecting previously unselected package librust-async-std-dev. 330s Preparing to unpack .../273-librust-async-std-dev_1.12.0-22_all.deb ... 330s Unpacking librust-async-std-dev (1.12.0-22) ... 330s Selecting previously unselected package librust-base64-dev:s390x. 330s Preparing to unpack .../274-librust-base64-dev_0.21.7-1_s390x.deb ... 330s Unpacking librust-base64-dev:s390x (0.21.7-1) ... 330s Selecting previously unselected package librust-bit-vec-dev:s390x. 330s Preparing to unpack .../275-librust-bit-vec-dev_0.6.3-1_s390x.deb ... 330s Unpacking librust-bit-vec-dev:s390x (0.6.3-1) ... 331s Selecting previously unselected package librust-bit-set-dev:s390x. 331s Preparing to unpack .../276-librust-bit-set-dev_0.5.2-1_s390x.deb ... 331s Unpacking librust-bit-set-dev:s390x (0.5.2-1) ... 331s Selecting previously unselected package librust-bit-set+std-dev:s390x. 331s Preparing to unpack .../277-librust-bit-set+std-dev_0.5.2-1_s390x.deb ... 331s Unpacking librust-bit-set+std-dev:s390x (0.5.2-1) ... 331s Selecting previously unselected package librust-regex-syntax-dev:s390x. 331s Preparing to unpack .../278-librust-regex-syntax-dev_0.8.2-1_s390x.deb ... 331s Unpacking librust-regex-syntax-dev:s390x (0.8.2-1) ... 331s Selecting previously unselected package librust-regex-automata-dev:s390x. 331s Preparing to unpack .../279-librust-regex-automata-dev_0.4.7-1_s390x.deb ... 331s Unpacking librust-regex-automata-dev:s390x (0.4.7-1) ... 331s Selecting previously unselected package librust-bstr-dev:s390x. 331s Preparing to unpack .../280-librust-bstr-dev_1.7.0-2build1_s390x.deb ... 331s Unpacking librust-bstr-dev:s390x (1.7.0-2build1) ... 331s Selecting previously unselected package librust-bumpalo-dev:s390x. 331s Preparing to unpack .../281-librust-bumpalo-dev_3.16.0-1_s390x.deb ... 331s Unpacking librust-bumpalo-dev:s390x (3.16.0-1) ... 331s Selecting previously unselected package librust-cast-dev:s390x. 331s Preparing to unpack .../282-librust-cast-dev_0.3.0-1_s390x.deb ... 331s Unpacking librust-cast-dev:s390x (0.3.0-1) ... 331s Selecting previously unselected package librust-iana-time-zone-dev:s390x. 331s Preparing to unpack .../283-librust-iana-time-zone-dev_0.1.60-1_s390x.deb ... 331s Unpacking librust-iana-time-zone-dev:s390x (0.1.60-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-shared-dev:s390x. 331s Preparing to unpack .../284-librust-wasm-bindgen-shared-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-shared-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-backend-dev:s390x. 331s Preparing to unpack .../285-librust-wasm-bindgen-backend-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-backend-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-macro-support-dev:s390x. 331s Preparing to unpack .../286-librust-wasm-bindgen-macro-support-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-macro-support-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-macro-dev:s390x. 331s Preparing to unpack .../287-librust-wasm-bindgen-macro-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-macro-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-dev:s390x. 331s Preparing to unpack .../288-librust-wasm-bindgen-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-macro-support+spans-dev:s390x. 331s Preparing to unpack .../289-librust-wasm-bindgen-macro-support+spans-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-macro-support+spans-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen-macro+spans-dev:s390x. 331s Preparing to unpack .../290-librust-wasm-bindgen-macro+spans-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen-macro+spans-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen+spans-dev:s390x. 331s Preparing to unpack .../291-librust-wasm-bindgen+spans-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen+spans-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-wasm-bindgen+default-dev:s390x. 331s Preparing to unpack .../292-librust-wasm-bindgen+default-dev_0.2.87-1_s390x.deb ... 331s Unpacking librust-wasm-bindgen+default-dev:s390x (0.2.87-1) ... 331s Selecting previously unselected package librust-js-sys-dev:s390x. 331s Preparing to unpack .../293-librust-js-sys-dev_0.3.64-1_s390x.deb ... 331s Unpacking librust-js-sys-dev:s390x (0.3.64-1) ... 331s Selecting previously unselected package librust-pure-rust-locales-dev:s390x. 331s Preparing to unpack .../294-librust-pure-rust-locales-dev_0.8.1-1_s390x.deb ... 331s Unpacking librust-pure-rust-locales-dev:s390x (0.8.1-1) ... 331s Selecting previously unselected package librust-chrono-dev:s390x. 331s Preparing to unpack .../295-librust-chrono-dev_0.4.38-2_s390x.deb ... 331s Unpacking librust-chrono-dev:s390x (0.4.38-2) ... 331s Selecting previously unselected package librust-regex-dev:s390x. 331s Preparing to unpack .../296-librust-regex-dev_1.10.6-1_s390x.deb ... 331s Unpacking librust-regex-dev:s390x (1.10.6-1) ... 331s Selecting previously unselected package librust-parse-zoneinfo-dev:s390x. 331s Preparing to unpack .../297-librust-parse-zoneinfo-dev_0.3.0-1_s390x.deb ... 331s Unpacking librust-parse-zoneinfo-dev:s390x (0.3.0-1) ... 331s Selecting previously unselected package librust-siphasher-dev:s390x. 331s Preparing to unpack .../298-librust-siphasher-dev_0.3.10-1_s390x.deb ... 331s Unpacking librust-siphasher-dev:s390x (0.3.10-1) ... 331s Selecting previously unselected package librust-phf-shared-dev:s390x. 331s Preparing to unpack .../299-librust-phf-shared-dev_0.11.2-1_s390x.deb ... 331s Unpacking librust-phf-shared-dev:s390x (0.11.2-1) ... 331s Selecting previously unselected package librust-phf-dev:s390x. 331s Preparing to unpack .../300-librust-phf-dev_0.11.2-1_s390x.deb ... 331s Unpacking librust-phf-dev:s390x (0.11.2-1) ... 331s Selecting previously unselected package librust-uncased-dev:s390x. 331s Preparing to unpack .../301-librust-uncased-dev_0.9.6-2_s390x.deb ... 331s Unpacking librust-uncased-dev:s390x (0.9.6-2) ... 331s Selecting previously unselected package librust-phf-shared+uncased-dev:s390x. 331s Preparing to unpack .../302-librust-phf-shared+uncased-dev_0.11.2-1_s390x.deb ... 331s Unpacking librust-phf-shared+uncased-dev:s390x (0.11.2-1) ... 331s Selecting previously unselected package librust-phf+uncased-dev:s390x. 331s Preparing to unpack .../303-librust-phf+uncased-dev_0.11.2-1_s390x.deb ... 331s Unpacking librust-phf+uncased-dev:s390x (0.11.2-1) ... 331s Selecting previously unselected package librust-ciborium-io-dev:s390x. 331s Preparing to unpack .../304-librust-ciborium-io-dev_0.2.2-1_s390x.deb ... 331s Unpacking librust-ciborium-io-dev:s390x (0.2.2-1) ... 331s Selecting previously unselected package librust-half-dev:s390x. 331s Preparing to unpack .../305-librust-half-dev_1.8.2-4_s390x.deb ... 331s Unpacking librust-half-dev:s390x (1.8.2-4) ... 331s Selecting previously unselected package librust-ciborium-ll-dev:s390x. 331s Preparing to unpack .../306-librust-ciborium-ll-dev_0.2.2-1_s390x.deb ... 331s Unpacking librust-ciborium-ll-dev:s390x (0.2.2-1) ... 331s Selecting previously unselected package librust-ciborium-dev:s390x. 331s Preparing to unpack .../307-librust-ciborium-dev_0.2.2-2_s390x.deb ... 331s Unpacking librust-ciborium-dev:s390x (0.2.2-2) ... 331s Selecting previously unselected package librust-clap-lex-dev:s390x. 331s Preparing to unpack .../308-librust-clap-lex-dev_0.7.2-2_s390x.deb ... 331s Unpacking librust-clap-lex-dev:s390x (0.7.2-2) ... 331s Selecting previously unselected package librust-strsim-dev:s390x. 331s Preparing to unpack .../309-librust-strsim-dev_0.11.1-1_s390x.deb ... 331s Unpacking librust-strsim-dev:s390x (0.11.1-1) ... 331s Selecting previously unselected package librust-terminal-size-dev:s390x. 331s Preparing to unpack .../310-librust-terminal-size-dev_0.3.0-2_s390x.deb ... 331s Unpacking librust-terminal-size-dev:s390x (0.3.0-2) ... 331s Selecting previously unselected package librust-unicase-dev:s390x. 331s Preparing to unpack .../311-librust-unicase-dev_2.7.0-1_s390x.deb ... 331s Unpacking librust-unicase-dev:s390x (2.7.0-1) ... 331s Selecting previously unselected package librust-unicode-width-dev:s390x. 331s Preparing to unpack .../312-librust-unicode-width-dev_0.1.13-3_s390x.deb ... 331s Unpacking librust-unicode-width-dev:s390x (0.1.13-3) ... 331s Selecting previously unselected package librust-clap-builder-dev:s390x. 331s Preparing to unpack .../313-librust-clap-builder-dev_4.5.15-2_s390x.deb ... 331s Unpacking librust-clap-builder-dev:s390x (4.5.15-2) ... 331s Selecting previously unselected package librust-heck-dev:s390x. 331s Preparing to unpack .../314-librust-heck-dev_0.4.1-1_s390x.deb ... 331s Unpacking librust-heck-dev:s390x (0.4.1-1) ... 331s Selecting previously unselected package librust-clap-derive-dev:s390x. 331s Preparing to unpack .../315-librust-clap-derive-dev_4.5.13-2_s390x.deb ... 331s Unpacking librust-clap-derive-dev:s390x (4.5.13-2) ... 331s Selecting previously unselected package librust-clap-dev:s390x. 331s Preparing to unpack .../316-librust-clap-dev_4.5.16-1_s390x.deb ... 331s Unpacking librust-clap-dev:s390x (4.5.16-1) ... 331s Selecting previously unselected package librust-csv-core-dev:s390x. 331s Preparing to unpack .../317-librust-csv-core-dev_0.1.11-1_s390x.deb ... 331s Unpacking librust-csv-core-dev:s390x (0.1.11-1) ... 331s Selecting previously unselected package librust-csv-dev:s390x. 331s Preparing to unpack .../318-librust-csv-dev_1.3.0-1_s390x.deb ... 331s Unpacking librust-csv-dev:s390x (1.3.0-1) ... 331s Selecting previously unselected package librust-futures-sink-dev:s390x. 331s Preparing to unpack .../319-librust-futures-sink-dev_0.3.31-1_s390x.deb ... 331s Unpacking librust-futures-sink-dev:s390x (0.3.31-1) ... 331s Selecting previously unselected package librust-futures-channel-dev:s390x. 331s Preparing to unpack .../320-librust-futures-channel-dev_0.3.30-1_s390x.deb ... 331s Unpacking librust-futures-channel-dev:s390x (0.3.30-1) ... 331s Selecting previously unselected package librust-futures-task-dev:s390x. 331s Preparing to unpack .../321-librust-futures-task-dev_0.3.30-1_s390x.deb ... 331s Unpacking librust-futures-task-dev:s390x (0.3.30-1) ... 331s Selecting previously unselected package librust-futures-macro-dev:s390x. 331s Preparing to unpack .../322-librust-futures-macro-dev_0.3.30-1_s390x.deb ... 331s Unpacking librust-futures-macro-dev:s390x (0.3.30-1) ... 331s Selecting previously unselected package librust-futures-util-dev:s390x. 331s Preparing to unpack .../323-librust-futures-util-dev_0.3.30-2_s390x.deb ... 331s Unpacking librust-futures-util-dev:s390x (0.3.30-2) ... 331s Selecting previously unselected package librust-num-cpus-dev:s390x. 331s Preparing to unpack .../324-librust-num-cpus-dev_1.16.0-1_s390x.deb ... 331s Unpacking librust-num-cpus-dev:s390x (1.16.0-1) ... 331s Selecting previously unselected package librust-futures-executor-dev:s390x. 331s Preparing to unpack .../325-librust-futures-executor-dev_0.3.30-1_s390x.deb ... 331s Unpacking librust-futures-executor-dev:s390x (0.3.30-1) ... 331s Selecting previously unselected package librust-futures-dev:s390x. 331s Preparing to unpack .../326-librust-futures-dev_0.3.30-2_s390x.deb ... 331s Unpacking librust-futures-dev:s390x (0.3.30-2) ... 331s Selecting previously unselected package librust-is-terminal-dev:s390x. 331s Preparing to unpack .../327-librust-is-terminal-dev_0.4.13-1_s390x.deb ... 331s Unpacking librust-is-terminal-dev:s390x (0.4.13-1) ... 331s Selecting previously unselected package librust-itertools-dev:s390x. 331s Preparing to unpack .../328-librust-itertools-dev_0.10.5-1_s390x.deb ... 331s Unpacking librust-itertools-dev:s390x (0.10.5-1) ... 331s Selecting previously unselected package librust-oorandom-dev:s390x. 331s Preparing to unpack .../329-librust-oorandom-dev_11.1.3-1_s390x.deb ... 331s Unpacking librust-oorandom-dev:s390x (11.1.3-1) ... 331s Selecting previously unselected package librust-winapi-i686-pc-windows-gnu-dev:s390x. 331s Preparing to unpack .../330-librust-winapi-i686-pc-windows-gnu-dev_0.4.0-1_s390x.deb ... 331s Unpacking librust-winapi-i686-pc-windows-gnu-dev:s390x (0.4.0-1) ... 331s Selecting previously unselected package librust-winapi-x86-64-pc-windows-gnu-dev:s390x. 331s Preparing to unpack .../331-librust-winapi-x86-64-pc-windows-gnu-dev_0.4.0-1_s390x.deb ... 331s Unpacking librust-winapi-x86-64-pc-windows-gnu-dev:s390x (0.4.0-1) ... 331s Selecting previously unselected package librust-winapi-dev:s390x. 331s Preparing to unpack .../332-librust-winapi-dev_0.3.9-1_s390x.deb ... 331s Unpacking librust-winapi-dev:s390x (0.3.9-1) ... 331s Selecting previously unselected package librust-dirs-sys-next-dev:s390x. 331s Preparing to unpack .../333-librust-dirs-sys-next-dev_0.1.1-1_s390x.deb ... 331s Unpacking librust-dirs-sys-next-dev:s390x (0.1.1-1) ... 331s Selecting previously unselected package librust-dirs-next-dev:s390x. 331s Preparing to unpack .../334-librust-dirs-next-dev_2.0.0-1_s390x.deb ... 331s Unpacking librust-dirs-next-dev:s390x (2.0.0-1) ... 331s Selecting previously unselected package librust-float-ord-dev:s390x. 331s Preparing to unpack .../335-librust-float-ord-dev_0.3.2-1_s390x.deb ... 331s Unpacking librust-float-ord-dev:s390x (0.3.2-1) ... 331s Selecting previously unselected package librust-cmake-dev:s390x. 331s Preparing to unpack .../336-librust-cmake-dev_0.1.45-1_s390x.deb ... 331s Unpacking librust-cmake-dev:s390x (0.1.45-1) ... 332s Selecting previously unselected package librust-freetype-sys-dev:s390x. 332s Preparing to unpack .../337-librust-freetype-sys-dev_0.13.1-1_s390x.deb ... 332s Unpacking librust-freetype-sys-dev:s390x (0.13.1-1) ... 332s Selecting previously unselected package librust-freetype-dev:s390x. 332s Preparing to unpack .../338-librust-freetype-dev_0.7.0-4_s390x.deb ... 332s Unpacking librust-freetype-dev:s390x (0.7.0-4) ... 332s Selecting previously unselected package librust-spin-dev:s390x. 332s Preparing to unpack .../339-librust-spin-dev_0.9.8-4_s390x.deb ... 332s Unpacking librust-spin-dev:s390x (0.9.8-4) ... 332s Selecting previously unselected package librust-lazy-static-dev:s390x. 332s Preparing to unpack .../340-librust-lazy-static-dev_1.4.0-2_s390x.deb ... 332s Unpacking librust-lazy-static-dev:s390x (1.4.0-2) ... 332s Selecting previously unselected package librust-pathfinder-simd-dev:s390x. 332s Preparing to unpack .../341-librust-pathfinder-simd-dev_0.5.2-1_s390x.deb ... 332s Unpacking librust-pathfinder-simd-dev:s390x (0.5.2-1) ... 332s Selecting previously unselected package librust-pathfinder-geometry-dev:s390x. 332s Preparing to unpack .../342-librust-pathfinder-geometry-dev_0.5.1-1_s390x.deb ... 332s Unpacking librust-pathfinder-geometry-dev:s390x (0.5.1-1) ... 332s Selecting previously unselected package librust-winapi-util-dev:s390x. 332s Preparing to unpack .../343-librust-winapi-util-dev_0.1.6-1_s390x.deb ... 332s Unpacking librust-winapi-util-dev:s390x (0.1.6-1) ... 332s Selecting previously unselected package librust-same-file-dev:s390x. 332s Preparing to unpack .../344-librust-same-file-dev_1.0.6-1_s390x.deb ... 332s Unpacking librust-same-file-dev:s390x (1.0.6-1) ... 332s Selecting previously unselected package librust-walkdir-dev:s390x. 332s Preparing to unpack .../345-librust-walkdir-dev_2.5.0-1_s390x.deb ... 332s Unpacking librust-walkdir-dev:s390x (2.5.0-1) ... 332s Selecting previously unselected package librust-const-cstr-dev:s390x. 332s Preparing to unpack .../346-librust-const-cstr-dev_0.3.0-1_s390x.deb ... 332s Unpacking librust-const-cstr-dev:s390x (0.3.0-1) ... 332s Selecting previously unselected package librust-libloading-dev:s390x. 332s Preparing to unpack .../347-librust-libloading-dev_0.8.5-1_s390x.deb ... 332s Unpacking librust-libloading-dev:s390x (0.8.5-1) ... 332s Selecting previously unselected package librust-dlib-dev:s390x. 332s Preparing to unpack .../348-librust-dlib-dev_0.5.2-2_s390x.deb ... 332s Unpacking librust-dlib-dev:s390x (0.5.2-2) ... 332s Selecting previously unselected package librust-yeslogic-fontconfig-sys-dev:s390x. 332s Preparing to unpack .../349-librust-yeslogic-fontconfig-sys-dev_3.0.1-1_s390x.deb ... 332s Unpacking librust-yeslogic-fontconfig-sys-dev:s390x (3.0.1-1) ... 332s Selecting previously unselected package librust-font-kit-dev:s390x. 332s Preparing to unpack .../350-librust-font-kit-dev_0.11.0-2_s390x.deb ... 332s Unpacking librust-font-kit-dev:s390x (0.11.0-2) ... 332s Selecting previously unselected package librust-color-quant-dev:s390x. 332s Preparing to unpack .../351-librust-color-quant-dev_1.1.0-1_s390x.deb ... 332s Unpacking librust-color-quant-dev:s390x (1.1.0-1) ... 332s Selecting previously unselected package librust-weezl-dev:s390x. 332s Preparing to unpack .../352-librust-weezl-dev_0.1.5-1_s390x.deb ... 332s Unpacking librust-weezl-dev:s390x (0.1.5-1) ... 332s Selecting previously unselected package librust-gif-dev:s390x. 332s Preparing to unpack .../353-librust-gif-dev_0.11.3-1_s390x.deb ... 332s Unpacking librust-gif-dev:s390x (0.11.3-1) ... 332s Selecting previously unselected package librust-jpeg-decoder-dev:s390x. 332s Preparing to unpack .../354-librust-jpeg-decoder-dev_0.3.0-1_s390x.deb ... 332s Unpacking librust-jpeg-decoder-dev:s390x (0.3.0-1) ... 332s Selecting previously unselected package librust-num-integer-dev:s390x. 332s Preparing to unpack .../355-librust-num-integer-dev_0.1.46-1_s390x.deb ... 332s Unpacking librust-num-integer-dev:s390x (0.1.46-1) ... 332s Selecting previously unselected package librust-humantime-dev:s390x. 332s Preparing to unpack .../356-librust-humantime-dev_2.1.0-1_s390x.deb ... 332s Unpacking librust-humantime-dev:s390x (2.1.0-1) ... 332s Selecting previously unselected package librust-termcolor-dev:s390x. 332s Preparing to unpack .../357-librust-termcolor-dev_1.4.1-1_s390x.deb ... 332s Unpacking librust-termcolor-dev:s390x (1.4.1-1) ... 332s Selecting previously unselected package librust-env-logger-dev:s390x. 332s Preparing to unpack .../358-librust-env-logger-dev_0.10.2-2_s390x.deb ... 332s Unpacking librust-env-logger-dev:s390x (0.10.2-2) ... 332s Selecting previously unselected package librust-quickcheck-dev:s390x. 332s Preparing to unpack .../359-librust-quickcheck-dev_1.0.3-3_s390x.deb ... 332s Unpacking librust-quickcheck-dev:s390x (1.0.3-3) ... 332s Selecting previously unselected package librust-num-bigint-dev:s390x. 332s Preparing to unpack .../360-librust-num-bigint-dev_0.4.6-1_s390x.deb ... 332s Unpacking librust-num-bigint-dev:s390x (0.4.6-1) ... 332s Selecting previously unselected package librust-num-rational-dev:s390x. 332s Preparing to unpack .../361-librust-num-rational-dev_0.4.2-1_s390x.deb ... 332s Unpacking librust-num-rational-dev:s390x (0.4.2-1) ... 332s Selecting previously unselected package librust-png-dev:s390x. 332s Preparing to unpack .../362-librust-png-dev_0.17.7-3_s390x.deb ... 332s Unpacking librust-png-dev:s390x (0.17.7-3) ... 332s Selecting previously unselected package librust-qoi-dev:s390x. 332s Preparing to unpack .../363-librust-qoi-dev_0.4.1-2_s390x.deb ... 332s Unpacking librust-qoi-dev:s390x (0.4.1-2) ... 332s Selecting previously unselected package librust-tiff-dev:s390x. 332s Preparing to unpack .../364-librust-tiff-dev_0.9.0-1_s390x.deb ... 332s Unpacking librust-tiff-dev:s390x (0.9.0-1) ... 332s Selecting previously unselected package libsharpyuv0:s390x. 332s Preparing to unpack .../365-libsharpyuv0_1.4.0-0.1_s390x.deb ... 332s Unpacking libsharpyuv0:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libwebp7:s390x. 332s Preparing to unpack .../366-libwebp7_1.4.0-0.1_s390x.deb ... 332s Unpacking libwebp7:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libwebpdemux2:s390x. 332s Preparing to unpack .../367-libwebpdemux2_1.4.0-0.1_s390x.deb ... 332s Unpacking libwebpdemux2:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libwebpmux3:s390x. 332s Preparing to unpack .../368-libwebpmux3_1.4.0-0.1_s390x.deb ... 332s Unpacking libwebpmux3:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libwebpdecoder3:s390x. 332s Preparing to unpack .../369-libwebpdecoder3_1.4.0-0.1_s390x.deb ... 332s Unpacking libwebpdecoder3:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libsharpyuv-dev:s390x. 332s Preparing to unpack .../370-libsharpyuv-dev_1.4.0-0.1_s390x.deb ... 332s Unpacking libsharpyuv-dev:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package libwebp-dev:s390x. 332s Preparing to unpack .../371-libwebp-dev_1.4.0-0.1_s390x.deb ... 332s Unpacking libwebp-dev:s390x (1.4.0-0.1) ... 332s Selecting previously unselected package librust-libwebp-sys-dev:s390x. 332s Preparing to unpack .../372-librust-libwebp-sys-dev_0.9.5-1build1_s390x.deb ... 332s Unpacking librust-libwebp-sys-dev:s390x (0.9.5-1build1) ... 332s Selecting previously unselected package librust-webp-dev:s390x. 332s Preparing to unpack .../373-librust-webp-dev_0.2.6-1_s390x.deb ... 332s Unpacking librust-webp-dev:s390x (0.2.6-1) ... 332s Selecting previously unselected package librust-image-dev:s390x. 332s Preparing to unpack .../374-librust-image-dev_0.24.7-2_s390x.deb ... 332s Unpacking librust-image-dev:s390x (0.24.7-2) ... 332s Selecting previously unselected package librust-plotters-backend-dev:s390x. 332s Preparing to unpack .../375-librust-plotters-backend-dev_0.3.5-1_s390x.deb ... 332s Unpacking librust-plotters-backend-dev:s390x (0.3.5-1) ... 332s Selecting previously unselected package librust-plotters-bitmap-dev:s390x. 332s Preparing to unpack .../376-librust-plotters-bitmap-dev_0.3.3-3_s390x.deb ... 332s Unpacking librust-plotters-bitmap-dev:s390x (0.3.3-3) ... 332s Selecting previously unselected package librust-plotters-svg-dev:s390x. 332s Preparing to unpack .../377-librust-plotters-svg-dev_0.3.5-1_s390x.deb ... 332s Unpacking librust-plotters-svg-dev:s390x (0.3.5-1) ... 332s Selecting previously unselected package librust-web-sys-dev:s390x. 332s Preparing to unpack .../378-librust-web-sys-dev_0.3.64-2_s390x.deb ... 332s Unpacking librust-web-sys-dev:s390x (0.3.64-2) ... 332s Selecting previously unselected package librust-plotters-dev:s390x. 332s Preparing to unpack .../379-librust-plotters-dev_0.3.5-4_s390x.deb ... 332s Unpacking librust-plotters-dev:s390x (0.3.5-4) ... 332s Selecting previously unselected package librust-smol-dev. 332s Preparing to unpack .../380-librust-smol-dev_2.0.2-1_all.deb ... 332s Unpacking librust-smol-dev (2.0.2-1) ... 333s Selecting previously unselected package librust-tinytemplate-dev:s390x. 333s Preparing to unpack .../381-librust-tinytemplate-dev_1.2.1-1_s390x.deb ... 333s Unpacking librust-tinytemplate-dev:s390x (1.2.1-1) ... 333s Selecting previously unselected package librust-criterion-dev. 333s Preparing to unpack .../382-librust-criterion-dev_0.5.1-6_all.deb ... 333s Unpacking librust-criterion-dev (0.5.1-6) ... 333s Selecting previously unselected package librust-phf-generator-dev:s390x. 333s Preparing to unpack .../383-librust-phf-generator-dev_0.11.2-2_s390x.deb ... 333s Unpacking librust-phf-generator-dev:s390x (0.11.2-2) ... 333s Selecting previously unselected package librust-phf-codegen-dev:s390x. 333s Preparing to unpack .../384-librust-phf-codegen-dev_0.11.2-1_s390x.deb ... 333s Unpacking librust-phf-codegen-dev:s390x (0.11.2-1) ... 333s Selecting previously unselected package librust-chrono-tz-build-dev:s390x. 333s Preparing to unpack .../385-librust-chrono-tz-build-dev_0.2.1-1_s390x.deb ... 333s Unpacking librust-chrono-tz-build-dev:s390x (0.2.1-1) ... 333s Selecting previously unselected package librust-chrono-tz-dev:s390x. 333s Preparing to unpack .../386-librust-chrono-tz-dev_0.8.6-2_s390x.deb ... 333s Unpacking librust-chrono-tz-dev:s390x (0.8.6-2) ... 333s Selecting previously unselected package librust-ctor-dev:s390x. 333s Preparing to unpack .../387-librust-ctor-dev_0.1.26-1_s390x.deb ... 333s Unpacking librust-ctor-dev:s390x (0.1.26-1) ... 333s Selecting previously unselected package librust-powerfmt-macros-dev:s390x. 333s Preparing to unpack .../388-librust-powerfmt-macros-dev_0.1.0-1_s390x.deb ... 333s Unpacking librust-powerfmt-macros-dev:s390x (0.1.0-1) ... 333s Selecting previously unselected package librust-powerfmt-dev:s390x. 333s Preparing to unpack .../389-librust-powerfmt-dev_0.2.0-1_s390x.deb ... 333s Unpacking librust-powerfmt-dev:s390x (0.2.0-1) ... 333s Selecting previously unselected package librust-deranged-dev:s390x. 333s Preparing to unpack .../390-librust-deranged-dev_0.3.11-1_s390x.deb ... 333s Unpacking librust-deranged-dev:s390x (0.3.11-1) ... 333s Selecting previously unselected package librust-eui48-dev:s390x. 333s Preparing to unpack .../391-librust-eui48-dev_1.1.0-2_s390x.deb ... 333s Unpacking librust-eui48-dev:s390x (1.1.0-2) ... 333s Selecting previously unselected package librust-indenter-dev:s390x. 333s Preparing to unpack .../392-librust-indenter-dev_0.3.3-1_s390x.deb ... 333s Unpacking librust-indenter-dev:s390x (0.3.3-1) ... 333s Selecting previously unselected package librust-eyre-dev:s390x. 333s Preparing to unpack .../393-librust-eyre-dev_0.6.12-1_s390x.deb ... 333s Unpacking librust-eyre-dev:s390x (0.6.12-1) ... 333s Selecting previously unselected package librust-eyre+default-dev:s390x. 333s Preparing to unpack .../394-librust-eyre+default-dev_0.6.12-1_s390x.deb ... 333s Unpacking librust-eyre+default-dev:s390x (0.6.12-1) ... 333s Selecting previously unselected package librust-fancy-regex-dev:s390x. 333s Preparing to unpack .../395-librust-fancy-regex-dev_0.11.0-2_s390x.deb ... 333s Unpacking librust-fancy-regex-dev:s390x (0.11.0-2) ... 333s Selecting previously unselected package librust-fnv-dev:s390x. 333s Preparing to unpack .../396-librust-fnv-dev_1.0.7-1_s390x.deb ... 333s Unpacking librust-fnv-dev:s390x (1.0.7-1) ... 333s Selecting previously unselected package librust-geo-types-dev:s390x. 333s Preparing to unpack .../397-librust-geo-types-dev_0.7.11-2_s390x.deb ... 333s Unpacking librust-geo-types-dev:s390x (0.7.11-2) ... 333s Selecting previously unselected package librust-ghost-dev:s390x. 333s Preparing to unpack .../398-librust-ghost-dev_0.1.5-1_s390x.deb ... 333s Unpacking librust-ghost-dev:s390x (0.1.5-1) ... 333s Selecting previously unselected package librust-hmac-dev:s390x. 333s Preparing to unpack .../399-librust-hmac-dev_0.12.1-1_s390x.deb ... 333s Unpacking librust-hmac-dev:s390x (0.12.1-1) ... 333s Selecting previously unselected package librust-indoc-dev:s390x. 333s Preparing to unpack .../400-librust-indoc-dev_2.0.5-1_s390x.deb ... 333s Unpacking librust-indoc-dev:s390x (2.0.5-1) ... 333s Selecting previously unselected package librust-inventory-dev:s390x. 333s Preparing to unpack .../401-librust-inventory-dev_0.3.2-1_s390x.deb ... 333s Unpacking librust-inventory-dev:s390x (0.3.2-1) ... 333s Selecting previously unselected package librust-memoffset-dev:s390x. 333s Preparing to unpack .../402-librust-memoffset-dev_0.8.0-1_s390x.deb ... 333s Unpacking librust-memoffset-dev:s390x (0.8.0-1) ... 333s Selecting previously unselected package librust-num-threads-dev:s390x. 333s Preparing to unpack .../403-librust-num-threads-dev_0.1.7-1_s390x.deb ... 333s Unpacking librust-num-threads-dev:s390x (0.1.7-1) ... 333s Selecting previously unselected package librust-postgres-derive-dev:s390x. 333s Preparing to unpack .../404-librust-postgres-derive-dev_0.4.5-1_s390x.deb ... 333s Unpacking librust-postgres-derive-dev:s390x (0.4.5-1) ... 333s Selecting previously unselected package librust-sha2-asm-dev:s390x. 333s Preparing to unpack .../405-librust-sha2-asm-dev_0.6.2-2_s390x.deb ... 333s Unpacking librust-sha2-asm-dev:s390x (0.6.2-2) ... 333s Selecting previously unselected package librust-sha2-dev:s390x. 333s Preparing to unpack .../406-librust-sha2-dev_0.10.8-1_s390x.deb ... 333s Unpacking librust-sha2-dev:s390x (0.10.8-1) ... 333s Selecting previously unselected package librust-unicode-bidi-dev:s390x. 333s Preparing to unpack .../407-librust-unicode-bidi-dev_0.3.13-1_s390x.deb ... 333s Unpacking librust-unicode-bidi-dev:s390x (0.3.13-1) ... 333s Selecting previously unselected package librust-unicode-normalization-dev:s390x. 333s Preparing to unpack .../408-librust-unicode-normalization-dev_0.1.22-1_s390x.deb ... 333s Unpacking librust-unicode-normalization-dev:s390x (0.1.22-1) ... 333s Selecting previously unselected package librust-stringprep-dev:s390x. 333s Preparing to unpack .../409-librust-stringprep-dev_0.1.2-1_s390x.deb ... 333s Unpacking librust-stringprep-dev:s390x (0.1.2-1) ... 333s Selecting previously unselected package librust-postgres-protocol-dev:s390x. 333s Preparing to unpack .../410-librust-postgres-protocol-dev_0.6.6-2_s390x.deb ... 333s Unpacking librust-postgres-protocol-dev:s390x (0.6.6-2) ... 333s Selecting previously unselected package librust-time-core-dev:s390x. 333s Preparing to unpack .../411-librust-time-core-dev_0.1.2-1_s390x.deb ... 333s Unpacking librust-time-core-dev:s390x (0.1.2-1) ... 333s Selecting previously unselected package librust-time-macros-dev:s390x. 333s Preparing to unpack .../412-librust-time-macros-dev_0.2.16-1_s390x.deb ... 333s Unpacking librust-time-macros-dev:s390x (0.2.16-1) ... 333s Selecting previously unselected package librust-time-dev:s390x. 333s Preparing to unpack .../413-librust-time-dev_0.3.31-2_s390x.deb ... 333s Unpacking librust-time-dev:s390x (0.3.31-2) ... 333s Selecting previously unselected package librust-postgres-types-dev:s390x. 333s Preparing to unpack .../414-librust-postgres-types-dev_0.2.6-2_s390x.deb ... 333s Unpacking librust-postgres-types-dev:s390x (0.2.6-2) ... 333s Selecting previously unselected package librust-rand-xorshift-dev:s390x. 333s Preparing to unpack .../415-librust-rand-xorshift-dev_0.3.0-2_s390x.deb ... 333s Unpacking librust-rand-xorshift-dev:s390x (0.3.0-2) ... 333s Selecting previously unselected package librust-quick-error-dev:s390x. 333s Preparing to unpack .../416-librust-quick-error-dev_2.0.1-1_s390x.deb ... 333s Unpacking librust-quick-error-dev:s390x (2.0.1-1) ... 333s Selecting previously unselected package librust-tempfile-dev:s390x. 333s Preparing to unpack .../417-librust-tempfile-dev_3.10.1-1_s390x.deb ... 333s Unpacking librust-tempfile-dev:s390x (3.10.1-1) ... 333s Selecting previously unselected package librust-rusty-fork-dev:s390x. 333s Preparing to unpack .../418-librust-rusty-fork-dev_0.3.0-1_s390x.deb ... 333s Unpacking librust-rusty-fork-dev:s390x (0.3.0-1) ... 333s Selecting previously unselected package librust-wait-timeout-dev:s390x. 333s Preparing to unpack .../419-librust-wait-timeout-dev_0.2.0-1_s390x.deb ... 333s Unpacking librust-wait-timeout-dev:s390x (0.2.0-1) ... 333s Selecting previously unselected package librust-rusty-fork+wait-timeout-dev:s390x. 333s Preparing to unpack .../420-librust-rusty-fork+wait-timeout-dev_0.3.0-1_s390x.deb ... 333s Unpacking librust-rusty-fork+wait-timeout-dev:s390x (0.3.0-1) ... 333s Selecting previously unselected package librust-unarray-dev:s390x. 333s Preparing to unpack .../421-librust-unarray-dev_0.1.4-1_s390x.deb ... 333s Unpacking librust-unarray-dev:s390x (0.1.4-1) ... 333s Selecting previously unselected package librust-proptest-dev:s390x. 333s Preparing to unpack .../422-librust-proptest-dev_1.5.0-2_s390x.deb ... 333s Unpacking librust-proptest-dev:s390x (1.5.0-2) ... 333s Selecting previously unselected package llvm-19-runtime. 333s Preparing to unpack .../423-llvm-19-runtime_1%3a19.1.2-1ubuntu1_s390x.deb ... 333s Unpacking llvm-19-runtime (1:19.1.2-1ubuntu1) ... 333s Selecting previously unselected package llvm-runtime:s390x. 333s Preparing to unpack .../424-llvm-runtime_1%3a19.0-60~exp1_s390x.deb ... 333s Unpacking llvm-runtime:s390x (1:19.0-60~exp1) ... 333s Selecting previously unselected package llvm-19-linker-tools. 333s Preparing to unpack .../425-llvm-19-linker-tools_1%3a19.1.2-1ubuntu1_s390x.deb ... 333s Unpacking llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 333s Selecting previously unselected package libpfm4:s390x. 333s Preparing to unpack .../426-libpfm4_4.13.0+git83-g91970fe-1_s390x.deb ... 333s Unpacking libpfm4:s390x (4.13.0+git83-g91970fe-1) ... 333s Selecting previously unselected package llvm-19. 333s Preparing to unpack .../427-llvm-19_1%3a19.1.2-1ubuntu1_s390x.deb ... 333s Unpacking llvm-19 (1:19.1.2-1ubuntu1) ... 334s Selecting previously unselected package llvm. 334s Preparing to unpack .../428-llvm_1%3a19.0-60~exp1_s390x.deb ... 334s Unpacking llvm (1:19.0-60~exp1) ... 334s Selecting previously unselected package binutils-mingw-w64-x86-64. 334s Preparing to unpack .../429-binutils-mingw-w64-x86-64_2.43.1-4ubuntu1+12_s390x.deb ... 334s Unpacking binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 334s Selecting previously unselected package binutils-mingw-w64-i686. 334s Preparing to unpack .../430-binutils-mingw-w64-i686_2.43.1-4ubuntu1+12_s390x.deb ... 334s Unpacking binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 334s Selecting previously unselected package librust-python3-dll-a-dev:s390x. 334s Preparing to unpack .../431-librust-python3-dll-a-dev_0.2.10-1_s390x.deb ... 334s Unpacking librust-python3-dll-a-dev:s390x (0.2.10-1) ... 334s Selecting previously unselected package librust-target-lexicon-dev:s390x. 334s Preparing to unpack .../432-librust-target-lexicon-dev_0.12.14-1_s390x.deb ... 334s Unpacking librust-target-lexicon-dev:s390x (0.12.14-1) ... 334s Selecting previously unselected package librust-pyo3-build-config-dev:s390x. 334s Preparing to unpack .../433-librust-pyo3-build-config-dev_0.22.5-1_s390x.deb ... 334s Unpacking librust-pyo3-build-config-dev:s390x (0.22.5-1) ... 334s Selecting previously unselected package python3.12-dev. 334s Preparing to unpack .../434-python3.12-dev_3.12.7-2_s390x.deb ... 334s Unpacking python3.12-dev (3.12.7-2) ... 334s Selecting previously unselected package librust-pyo3-ffi-dev:s390x. 334s Preparing to unpack .../435-librust-pyo3-ffi-dev_0.22.5-1_s390x.deb ... 334s Unpacking librust-pyo3-ffi-dev:s390x (0.22.5-1) ... 334s Selecting previously unselected package librust-pyo3-macros-backend-dev:s390x. 334s Preparing to unpack .../436-librust-pyo3-macros-backend-dev_0.22.5-1_s390x.deb ... 334s Unpacking librust-pyo3-macros-backend-dev:s390x (0.22.5-1) ... 334s Selecting previously unselected package librust-pyo3-macros-dev:s390x. 334s Preparing to unpack .../437-librust-pyo3-macros-dev_0.22.5-1_s390x.deb ... 334s Unpacking librust-pyo3-macros-dev:s390x (0.22.5-1) ... 334s Selecting previously unselected package librust-rust-decimal-dev:s390x. 334s Preparing to unpack .../438-librust-rust-decimal-dev_1.36.0-1_s390x.deb ... 334s Unpacking librust-rust-decimal-dev:s390x (1.36.0-1) ... 334s Selecting previously unselected package librust-unindent-dev:s390x. 334s Preparing to unpack .../439-librust-unindent-dev_0.2.3-1_s390x.deb ... 334s Unpacking librust-unindent-dev:s390x (0.2.3-1) ... 334s Selecting previously unselected package librust-pyo3-dev:s390x. 334s Preparing to unpack .../440-librust-pyo3-dev_0.22.5-1_s390x.deb ... 334s Unpacking librust-pyo3-dev:s390x (0.22.5-1) ... 334s Selecting previously unselected package librust-rustc-hash-dev:s390x. 334s Preparing to unpack .../441-librust-rustc-hash-dev_1.1.0-1_s390x.deb ... 334s Unpacking librust-rustc-hash-dev:s390x (1.1.0-1) ... 334s Selecting previously unselected package pybuild-plugin-autopkgtest. 334s Preparing to unpack .../442-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 334s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 334s Selecting previously unselected package python3-packaging. 334s Preparing to unpack .../443-python3-packaging_24.1-1_all.deb ... 334s Unpacking python3-packaging (24.1-1) ... 334s Selecting previously unselected package python3-pyproject-hooks. 334s Preparing to unpack .../444-python3-pyproject-hooks_1.2.0-1_all.deb ... 334s Unpacking python3-pyproject-hooks (1.2.0-1) ... 334s Selecting previously unselected package python3-toml. 334s Preparing to unpack .../445-python3-toml_0.10.2-1_all.deb ... 334s Unpacking python3-toml (0.10.2-1) ... 334s Selecting previously unselected package python3-wheel. 334s Preparing to unpack .../446-python3-wheel_0.44.0-1_all.deb ... 334s Unpacking python3-wheel (0.44.0-1) ... 334s Selecting previously unselected package python3-build. 334s Preparing to unpack .../447-python3-build_1.2.2-1_all.deb ... 334s Unpacking python3-build (1.2.2-1) ... 334s Selecting previously unselected package python3-installer. 334s Preparing to unpack .../448-python3-installer_0.7.0+dfsg1-3_all.deb ... 334s Unpacking python3-installer (0.7.0+dfsg1-3) ... 334s Selecting previously unselected package pybuild-plugin-pyproject. 334s Preparing to unpack .../449-pybuild-plugin-pyproject_6.20241024_all.deb ... 334s Unpacking pybuild-plugin-pyproject (6.20241024) ... 334s Selecting previously unselected package python3-all. 334s Preparing to unpack .../450-python3-all_3.12.6-0ubuntu1_s390x.deb ... 334s Unpacking python3-all (3.12.6-0ubuntu1) ... 334s Selecting previously unselected package python3-six. 334s Preparing to unpack .../451-python3-six_1.16.0-7_all.deb ... 334s Unpacking python3-six (1.16.0-7) ... 334s Selecting previously unselected package python3-dateutil. 334s Preparing to unpack .../452-python3-dateutil_2.9.0-2_all.deb ... 334s Unpacking python3-dateutil (2.9.0-2) ... 334s Selecting previously unselected package python3-sortedcontainers. 334s Preparing to unpack .../453-python3-sortedcontainers_2.4.0-2_all.deb ... 334s Unpacking python3-sortedcontainers (2.4.0-2) ... 334s Selecting previously unselected package python3-hypothesis. 334s Preparing to unpack .../454-python3-hypothesis_6.105.1-1_all.deb ... 334s Unpacking python3-hypothesis (6.105.1-1) ... 334s Selecting previously unselected package python3-iniconfig. 334s Preparing to unpack .../455-python3-iniconfig_1.1.1-2_all.deb ... 334s Unpacking python3-iniconfig (1.1.1-2) ... 334s Selecting previously unselected package python3-pluggy. 334s Preparing to unpack .../456-python3-pluggy_1.5.0-1_all.deb ... 334s Unpacking python3-pluggy (1.5.0-1) ... 334s Selecting previously unselected package python3-pytest. 334s Preparing to unpack .../457-python3-pytest_8.3.2-1_all.deb ... 334s Unpacking python3-pytest (8.3.2-1) ... 334s Selecting previously unselected package python3-regex. 334s Preparing to unpack .../458-python3-regex_0.1.20240724-1_s390x.deb ... 334s Unpacking python3-regex (0.1.20240724-1) ... 334s Selecting previously unselected package python3-semantic-version. 334s Preparing to unpack .../459-python3-semantic-version_2.10.0-2_all.deb ... 334s Unpacking python3-semantic-version (2.10.0-2) ... 334s Selecting previously unselected package rustc. 334s Preparing to unpack .../460-rustc_1.80.1ubuntu2_s390x.deb ... 334s Unpacking rustc (1.80.1ubuntu2) ... 334s Selecting previously unselected package cargo. 334s Preparing to unpack .../461-cargo_1.80.1ubuntu2_s390x.deb ... 334s Unpacking cargo (1.80.1ubuntu2) ... 334s Selecting previously unselected package python3-setuptools-rust. 334s Preparing to unpack .../462-python3-setuptools-rust_1.9.0+dfsg-2_all.deb ... 334s Unpacking python3-setuptools-rust (1.9.0+dfsg-2) ... 334s Selecting previously unselected package python3-tiktoken. 334s Preparing to unpack .../463-python3-tiktoken_0.8.0-1_s390x.deb ... 334s Unpacking python3-tiktoken (0.8.0-1) ... 334s Selecting previously unselected package autopkgtest-satdep. 334s Preparing to unpack .../464-1-autopkgtest-satdep.deb ... 334s Unpacking autopkgtest-satdep (0) ... 335s Setting up dh-python (6.20241024) ... 335s Setting up librust-ciborium-io-dev:s390x (0.2.2-1) ... 335s Setting up librust-crossbeam-utils-dev:s390x (0.8.19-1) ... 335s Setting up librust-parking-dev:s390x (2.2.0-1) ... 335s Setting up librust-ppv-lite86-dev:s390x (0.2.16-1) ... 335s Setting up python3-iniconfig (1.1.1-2) ... 335s Setting up libsharpyuv0:s390x (1.4.0-0.1) ... 335s Setting up librust-pin-utils-dev:s390x (0.1.0-1) ... 335s Setting up librust-fnv-dev:s390x (1.0.7-1) ... 335s Setting up librust-libc-dev:s390x (0.2.155-1) ... 335s Setting up librust-unindent-dev:s390x (0.2.3-1) ... 335s Setting up librust-quick-error-dev:s390x (2.0.1-1) ... 335s Setting up librust-is-terminal-dev:s390x (0.4.13-1) ... 335s Setting up librust-traitobject-dev:s390x (0.1.0-1) ... 335s Setting up librust-either-dev:s390x (1.13.0-1) ... 335s Setting up binutils-mingw-w64-x86-64 (2.43.1-4ubuntu1+12) ... 335s Setting up librust-adler-dev:s390x (1.0.2-2) ... 335s Setting up librust-version-check-dev:s390x (0.9.5-1) ... 335s Setting up librust-base64-dev:s390x (0.21.7-1) ... 335s Setting up librust-indoc-dev:s390x (2.0.5-1) ... 335s Setting up librust-anstyle-dev:s390x (1.0.8-1) ... 335s Setting up librust-winapi-i686-pc-windows-gnu-dev:s390x (0.4.0-1) ... 335s Setting up librust-futures-task-dev:s390x (0.3.30-1) ... 335s Setting up librust-rustc-hash-dev:s390x (1.1.0-1) ... 335s Setting up librust-wasm-bindgen-shared-dev:s390x (0.2.87-1) ... 335s Setting up libarchive-zip-perl (1.68-1) ... 335s Setting up librust-colorchoice-dev:s390x (1.0.0-1) ... 335s Setting up librust-fastrand-dev:s390x (2.1.1-1) ... 335s Setting up librust-socket2-dev:s390x (0.5.7-1) ... 335s Setting up libdebhelper-perl (13.20ubuntu1) ... 335s Setting up librust-unsafe-any-dev:s390x (0.4.2-2) ... 335s Setting up librust-tinyvec-macros-dev:s390x (0.1.0-1) ... 335s Setting up librust-num-cpus-dev:s390x (1.16.0-1) ... 335s Setting up librust-libm-dev:s390x (0.2.8-1) ... 335s Setting up librust-strsim-dev:s390x (0.11.1-1) ... 335s Setting up libwebpdecoder3:s390x (1.4.0-0.1) ... 335s Setting up m4 (1.4.19-4build1) ... 335s Setting up librust-rustc-demangle-dev:s390x (0.1.21-1) ... 335s Setting up python3-all (3.12.6-0ubuntu1) ... 335s Setting up librust-cpufeatures-dev:s390x (0.2.11-1) ... 335s Setting up librust-const-cstr-dev:s390x (0.3.0-1) ... 335s Setting up librust-fallible-iterator-dev:s390x (0.3.0-2) ... 335s Setting up librust-ryu-dev:s390x (1.0.15-1) ... 335s Setting up python3-sortedcontainers (2.4.0-2) ... 335s Setting up librust-humantime-dev:s390x (2.1.0-1) ... 335s Setting up librust-anstyle-query-dev:s390x (1.0.0-1) ... 335s Setting up librust-cast-dev:s390x (0.3.0-1) ... 335s Setting up libgomp1:s390x (14.2.0-7ubuntu1) ... 335s Setting up librust-subtle-dev:s390x (2.6.1-1) ... 335s Setting up librust-simdutf8-dev:s390x (0.1.4-4) ... 335s Setting up librust-atomic-waker-dev:s390x (1.1.2-1) ... 335s Setting up librust-miniz-oxide-dev:s390x (0.7.1-1) ... 335s Setting up librust-pin-project-lite-dev:s390x (0.2.13-1) ... 335s Setting up python3-wheel (0.44.0-1) ... 335s Setting up librust-bytes-dev:s390x (1.5.0-1) ... 335s Setting up librust-unicode-segmentation-dev:s390x (1.11.0-1) ... 335s Setting up librust-typemap-dev:s390x (0.3.3-2) ... 335s Setting up python3-six (1.16.0-7) ... 335s Setting up librust-compiler-builtins-dev:s390x (0.1.101-1) ... 335s Setting up librust-weezl-dev:s390x (0.1.5-1) ... 335s Setting up librust-utf8parse-dev:s390x (0.2.1-1) ... 335s Setting up librust-signal-hook-registry-dev:s390x (1.4.0-1) ... 335s Setting up librust-crossbeam-epoch-dev:s390x (0.9.18-1) ... 335s Setting up autotools-dev (20220109.1) ... 335s Setting up librust-tap-dev:s390x (1.0.1-1) ... 335s Setting up librust-errno-dev:s390x (0.3.8-1) ... 335s Setting up python3-packaging (24.1-1) ... 335s Setting up librust-array-init-dev:s390x (2.0.1-1) ... 335s Setting up libpkgconf3:s390x (1.8.1-4) ... 335s Setting up libpfm4:s390x (4.13.0+git83-g91970fe-1) ... 335s Setting up librust-oorandom-dev:s390x (11.1.3-1) ... 335s Setting up libexpat1-dev:s390x (2.6.2-2) ... 335s Setting up python3-pyproject-hooks (1.2.0-1) ... 335s Setting up libfreetype6:s390x (2.13.3+dfsg-1) ... 335s Setting up librust-rustc-std-workspace-core-dev:s390x (1.0.0-1) ... 335s Setting up librust-funty-dev:s390x (2.0.0-1) ... 335s Setting up librust-futures-io-dev:s390x (0.3.30-2) ... 335s Setting up librust-typenum-dev:s390x (1.17.0-2) ... 335s Setting up uuid-dev:s390x (2.40.2-1ubuntu1) ... 335s Setting up librust-core-maths-dev:s390x (0.1.0-2) ... 335s Setting up librust-stable-deref-trait-dev:s390x (1.2.0-1) ... 335s Setting up librust-critical-section-dev:s390x (1.1.3-1) ... 335s Setting up librust-scopeguard-dev:s390x (1.2.0-1) ... 335s Setting up librust-iana-time-zone-dev:s390x (0.1.60-1) ... 335s Setting up fonts-dejavu-mono (2.37-8) ... 335s Setting up libmpc3:s390x (1.3.1-1build2) ... 335s Setting up librust-rand-core-dev:s390x (0.6.4-2) ... 335s Setting up python3-semantic-version (2.10.0-2) ... 335s Setting up librust-jobserver-dev:s390x (0.1.32-1) ... 335s Setting up autopoint (0.22.5-2) ... 335s Setting up libjsoncpp25:s390x (1.9.5-6build1) ... 335s Setting up fonts-dejavu-core (2.37-8) ... 335s Setting up librust-seahash-dev:s390x (4.1.0-1) ... 335s Setting up pkgconf-bin (1.8.1-4) ... 335s Setting up librust-ab-glyph-rasterizer-dev:s390x (0.1.7-1) ... 335s Setting up binutils-mingw-w64-i686 (2.43.1-4ubuntu1+12) ... 335s Setting up librust-time-core-dev:s390x (0.1.2-1) ... 335s Setting up python3-regex (0.1.20240724-1) ... 336s Setting up librust-crunchy-dev:s390x (0.2.2-1) ... 336s Setting up python3-toml (0.10.2-1) ... 336s Setting up librust-unicase-dev:s390x (2.7.0-1) ... 336s Setting up librust-unicode-width-dev:s390x (0.1.13-3) ... 336s Setting up python3-installer (0.7.0+dfsg1-3) ... 336s Setting up autoconf (2.72-3) ... 336s Setting up python3-pluggy (1.5.0-1) ... 336s Setting up libwebp7:s390x (1.4.0-0.1) ... 336s Setting up libubsan1:s390x (14.2.0-7ubuntu1) ... 336s Setting up zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 336s Setting up librust-unicode-ident-dev:s390x (1.0.13-1) ... 336s Setting up librust-equivalent-dev:s390x (1.0.1-1) ... 336s Setting up dwz (0.15-1build6) ... 336s Setting up librust-bitflags-1-dev:s390x (1.3.2-5) ... 336s Setting up librust-uncased-dev:s390x (0.9.6-2) ... 336s Setting up librust-slog-dev:s390x (2.7.0-1) ... 336s Setting up python3-tiktoken (0.8.0-1) ... 336s Setting up librust-pure-rust-locales-dev:s390x (0.8.1-1) ... 336s Setting up librhash0:s390x (1.4.3-3build1) ... 336s Setting up libasan8:s390x (14.2.0-7ubuntu1) ... 336s Setting up librust-wait-timeout-dev:s390x (0.2.0-1) ... 336s Setting up librust-ttf-parser-dev:s390x (0.24.1-1) ... 336s Setting up librust-cfg-if-dev:s390x (1.0.0-1) ... 336s Setting up debugedit (1:5.1-1) ... 336s Setting up librust-color-quant-dev:s390x (1.1.0-1) ... 336s Setting up python3-dateutil (2.9.0-2) ... 336s Setting up librust-blobby-dev:s390x (0.3.1-1) ... 336s Setting up cmake-data (3.30.3-1) ... 336s Setting up llvm-19-linker-tools (1:19.1.2-1ubuntu1) ... 336s Setting up librust-byteorder-dev:s390x (1.5.0-1) ... 336s Setting up librust-static-assertions-dev:s390x (1.1.0-1) ... 336s Setting up librust-compiler-builtins+core-dev:s390x (0.1.101-1) ... 336s Setting up librust-float-ord-dev:s390x (0.3.2-1) ... 336s Setting up librust-autocfg-dev:s390x (1.1.0-1) ... 336s Setting up libisl23:s390x (0.27-1) ... 336s Setting up librust-time-macros-dev:s390x (0.2.16-1) ... 336s Setting up llvm-19-runtime (1:19.1.2-1ubuntu1) ... 336s Setting up librust-futures-sink-dev:s390x (0.3.31-1) ... 336s Setting up python3-build (1.2.2-1) ... 336s Setting up libsharpyuv-dev:s390x (1.4.0-0.1) ... 336s Setting up librust-cfg-if-0.1-dev:s390x (0.1.10-2) ... 336s Setting up librust-tinyvec-dev:s390x (1.6.0-2) ... 336s Setting up libwebpmux3:s390x (1.4.0-0.1) ... 336s Setting up librust-plotters-backend-dev:s390x (0.3.5-1) ... 336s Setting up librust-shlex-dev:s390x (1.3.0-1) ... 336s Setting up librust-indenter-dev:s390x (0.3.3-1) ... 336s Setting up librust-cpp-demangle-dev:s390x (0.4.0-1) ... 336s Setting up librust-winapi-x86-64-pc-windows-gnu-dev:s390x (0.4.0-1) ... 336s Setting up libcc1-0:s390x (14.2.0-7ubuntu1) ... 336s Setting up libbrotli-dev:s390x (1.1.0-2build2) ... 336s Setting up libitm1:s390x (14.2.0-7ubuntu1) ... 336s Setting up librust-clap-lex-dev:s390x (0.7.2-2) ... 336s Setting up libhttp-parser2.9:s390x (2.9.4-6build1) ... 336s Setting up librust-unarray-dev:s390x (0.1.4-1) ... 336s Setting up libstd-rust-1.80:s390x (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 336s Setting up librust-itertools-dev:s390x (0.10.5-1) ... 336s Setting up librust-heck-dev:s390x (0.4.1-1) ... 336s Setting up libbz2-dev:s390x (1.0.8-6) ... 336s Setting up automake (1:1.16.5-1.3ubuntu1) ... 336s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 336s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 336s Setting up librust-owned-ttf-parser-dev:s390x (0.24.0-1) ... 336s Setting up librust-num-threads-dev:s390x (0.1.7-1) ... 336s Setting up librust-crossbeam-epoch+std-dev:s390x (0.9.18-1) ... 336s Setting up gettext (0.22.5-2) ... 336s Setting up librust-gif-dev:s390x (0.11.3-1) ... 336s Setting up librust-crossbeam-deque-dev:s390x (0.8.5-1) ... 336s Setting up librust-tiny-keccak-dev:s390x (2.0.2-1) ... 336s Setting up librust-linux-raw-sys-dev:s390x (0.4.14-1) ... 336s Setting up pybuild-plugin-pyproject (6.20241024) ... 336s Setting up fontconfig-config (2.15.0-1.1ubuntu2) ... 336s Setting up librust-getrandom-dev:s390x (0.2.12-1) ... 336s Setting up python3-pytest (8.3.2-1) ... 337s Setting up librust-libloading-dev:s390x (0.8.5-1) ... 337s Setting up librust-memmap2-dev:s390x (0.9.3-1) ... 337s Setting up libwebpdemux2:s390x (1.4.0-0.1) ... 337s Setting up python3-hypothesis (6.105.1-1) ... 337s Setting up librust-ab-glyph-rasterizer+libm-dev:s390x (0.1.7-1) ... 337s Setting up libpng-dev:s390x (1.6.44-1) ... 337s Setting up librust-tinyvec+tinyvec-macros-dev:s390x (1.6.0-2) ... 337s Setting up librust-owning-ref-dev:s390x (0.4.1-1) ... 337s Setting up librust-memoffset-dev:s390x (0.8.0-1) ... 337s Setting up libpython3.12-dev:s390x (3.12.7-2) ... 337s Setting up librust-proc-macro2-dev:s390x (1.0.86-1) ... 337s Setting up librust-compiler-builtins+rustc-dep-of-std-dev:s390x (0.1.101-1) ... 337s Setting up librust-rayon-core-dev:s390x (1.12.1-1) ... 337s Setting up librust-winapi-dev:s390x (0.3.9-1) ... 337s Setting up pkgconf:s390x (1.8.1-4) ... 337s Setting up librust-ab-glyph-dev:s390x (0.2.28-1) ... 337s Setting up libstd-rust-1.80-dev:s390x (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 337s Setting up libfreetype-dev:s390x (2.13.3+dfsg-1) ... 337s Setting up intltool-debian (0.35.0+20060710.6) ... 337s Setting up librust-rand-core+getrandom-dev:s390x (0.6.4-2) ... 337s Setting up librust-rand-xorshift-dev:s390x (0.3.0-2) ... 337s Setting up libwebp-dev:s390x (1.4.0-0.1) ... 337s Setting up librust-anes-dev:s390x (0.1.6-1) ... 337s Setting up llvm-runtime:s390x (1:19.0-60~exp1) ... 337s Setting up librust-cc-dev:s390x (1.1.14-1) ... 337s Setting up python3.12-dev (3.12.7-2) ... 337s Setting up pkg-config:s390x (1.8.1-4) ... 337s Setting up cpp-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 337s Setting up cpp-14 (14.2.0-7ubuntu1) ... 337s Setting up dh-strip-nondeterminism (1.14.0-1) ... 337s Setting up librust-crc32fast-dev:s390x (1.4.2-1) ... 337s Setting up librust-num-traits-dev:s390x (0.2.19-2) ... 337s Setting up librust-winapi-util-dev:s390x (0.1.6-1) ... 337s Setting up cmake (3.30.3-1) ... 337s Setting up libgit2-1.7:s390x (1.7.2+ds-1ubuntu3) ... 337s Setting up llvm-19 (1:19.1.2-1ubuntu1) ... 337s Setting up libfontconfig1:s390x (2.15.0-1.1ubuntu2) ... 337s Setting up librust-sha1-asm-dev:s390x (0.5.1-2) ... 337s Setting up libgcc-14-dev:s390x (14.2.0-7ubuntu1) ... 337s Setting up librust-same-file-dev:s390x (1.0.6-1) ... 337s Setting up librust-rayon-dev:s390x (1.10.0-1) ... 337s Setting up librust-termcolor-dev:s390x (1.4.1-1) ... 337s Setting up librust-pkg-config-dev:s390x (0.3.27-1) ... 337s Setting up libstdc++-14-dev:s390x (14.2.0-7ubuntu1) ... 337s Setting up librust-jpeg-decoder-dev:s390x (0.3.0-1) ... 337s Setting up librust-dirs-sys-next-dev:s390x (0.1.1-1) ... 337s Setting up librust-cmake-dev:s390x (0.1.45-1) ... 337s Setting up librust-num-integer-dev:s390x (0.1.46-1) ... 337s Setting up librust-dirs-next-dev:s390x (2.0.0-1) ... 337s Setting up libpython3-dev:s390x (3.12.6-0ubuntu1) ... 337s Setting up librust-dlib-dev:s390x (0.5.2-2) ... 337s Setting up cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 337s Setting up libfontconfig-dev:s390x (2.15.0-1.1ubuntu2) ... 337s Setting up librust-sha2-asm-dev:s390x (0.6.2-2) ... 337s Setting up librust-libwebp-sys-dev:s390x (0.9.5-1build1) ... 337s Setting up po-debconf (1.0.21+nmu1) ... 337s Setting up librust-quote-dev:s390x (1.0.37-1) ... 337s Setting up librust-freetype-sys-dev:s390x (0.13.1-1) ... 337s Setting up librust-libz-sys-dev:s390x (1.1.20-1) ... 337s Setting up librust-syn-dev:s390x (2.0.77-1) ... 337s Setting up librust-rand-core+std-dev:s390x (0.6.4-2) ... 337s Setting up librust-powerfmt-macros-dev:s390x (0.1.0-1) ... 337s Setting up gcc-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 337s Setting up gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 337s Setting up librust-powerfmt-dev:s390x (0.2.0-1) ... 337s Setting up librust-sval-derive-dev:s390x (2.6.1-2) ... 337s Setting up libpython3-all-dev:s390x (3.12.6-0ubuntu1) ... 337s Setting up librust-md5-asm-dev:s390x (0.5.0-2) ... 337s Setting up librust-freetype-dev:s390x (0.7.0-4) ... 337s Setting up g++-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 337s Setting up librust-zeroize-derive-dev:s390x (1.4.2-1) ... 337s Setting up llvm (1:19.0-60~exp1) ... 337s Setting up librust-postgres-derive-dev:s390x (0.4.5-1) ... 337s Setting up librust-syn-1-dev:s390x (1.0.109-2) ... 337s Setting up librust-clap-derive-dev:s390x (4.5.13-2) ... 337s Setting up librust-bytecheck-derive-dev:s390x (0.6.12-1) ... 337s Setting up librust-no-panic-dev:s390x (0.1.13-1) ... 337s Setting up cpp (4:14.1.0-2ubuntu1) ... 337s Setting up librust-serde-derive-dev:s390x (1.0.210-1) ... 337s Setting up librust-walkdir-dev:s390x (2.5.0-1) ... 337s Setting up librust-zerocopy-derive-dev:s390x (0.7.32-2) ... 337s Setting up librust-valuable-derive-dev:s390x (0.1.0-1) ... 337s Setting up librust-ghost-dev:s390x (0.1.5-1) ... 337s Setting up librust-serde-dev:s390x (1.0.210-2) ... 337s Setting up librust-bytemuck-derive-dev:s390x (1.5.0-2) ... 337s Setting up librust-derive-arbitrary-dev:s390x (1.3.2-1) ... 337s Setting up librust-allocator-api2-dev:s390x (0.2.16-1) ... 337s Setting up librust-async-attributes-dev (1.1.2-6) ... 337s Setting up librust-rand-chacha-dev:s390x (0.3.1-2) ... 337s Setting up librust-futures-macro-dev:s390x (0.3.30-1) ... 337s Setting up librust-ctor-dev:s390x (0.1.26-1) ... 337s Setting up librust-unicode-bidi-dev:s390x (0.3.13-1) ... 337s Setting up librust-tracing-attributes-dev:s390x (0.1.27-1) ... 337s Setting up librust-ptr-meta-derive-dev:s390x (0.1.4-1) ... 337s Setting up librust-serde-fmt-dev (1.0.3-3) ... 337s Setting up librust-portable-atomic-dev:s390x (1.4.3-2) ... 337s Setting up librust-tokio-macros-dev:s390x (2.4.0-2) ... 337s Setting up librust-flate2-dev:s390x (1.0.27-2) ... 337s Setting up librust-lock-api-dev:s390x (0.4.12-1) ... 337s Setting up g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 337s Setting up librust-ptr-meta-dev:s390x (0.1.4-1) ... 337s Setting up librust-inventory-dev:s390x (0.3.2-1) ... 337s Setting up librust-sval-dev:s390x (2.6.1-2) ... 337s Setting up librust-itoa-dev:s390x (1.0.9-1) ... 337s Setting up gcc-14 (14.2.0-7ubuntu1) ... 337s Setting up librust-bumpalo-dev:s390x (3.16.0-1) ... 337s Setting up librust-python3-dll-a-dev:s390x (0.2.10-1) ... 337s Setting up librust-siphasher-dev:s390x (0.3.10-1) ... 337s Setting up librust-rand-core+serde-dev:s390x (0.6.4-2) ... 337s Setting up librust-sval-ref-dev:s390x (2.6.1-1) ... 337s Setting up librust-rkyv-derive-dev:s390x (0.7.44-1) ... 337s Setting up librust-zerocopy-dev:s390x (0.7.32-1) ... 337s Setting up librust-semver-dev:s390x (1.0.23-1) ... 337s Setting up librust-bytemuck-dev:s390x (1.14.0-1) ... 337s Setting up librust-bit-vec-dev:s390x (0.6.3-1) ... 337s Setting up librust-zeroize-dev:s390x (1.8.1-1) ... 337s Setting up librust-slab-dev:s390x (0.4.9-1) ... 337s Setting up librust-arbitrary-dev:s390x (1.3.2-1) ... 337s Setting up librust-valuable-dev:s390x (0.1.0-4) ... 337s Setting up librust-target-lexicon-dev:s390x (0.12.14-1) ... 337s Setting up librust-serde-test-dev:s390x (1.0.171-1) ... 337s Setting up librust-bit-set-dev:s390x (0.5.2-1) ... 337s Setting up librust-concurrent-queue-dev:s390x (2.5.0-4) ... 337s Setting up g++-14 (14.2.0-7ubuntu1) ... 337s Setting up librust-erased-serde-dev:s390x (0.3.31-1) ... 337s Setting up librust-radium-dev:s390x (1.1.0-1) ... 337s Setting up librust-bit-set+std-dev:s390x (0.5.2-1) ... 337s Setting up librust-phf-shared-dev:s390x (0.11.2-1) ... 337s Setting up librust-tiff-dev:s390x (0.9.0-1) ... 337s Setting up librust-smol-str-dev:s390x (0.2.0-1) ... 337s Setting up librust-atomic-dev:s390x (0.6.0-1) ... 337s Setting up librust-generic-array-dev:s390x (0.14.7-1) ... 337s Setting up librust-half-dev:s390x (1.8.2-4) ... 337s Setting up librust-phf-dev:s390x (0.11.2-1) ... 337s Setting up librust-spin-dev:s390x (0.9.8-4) ... 337s Setting up librust-sval-dynamic-dev:s390x (2.6.1-1) ... 337s Setting up librust-qoi-dev:s390x (0.4.1-2) ... 337s Setting up librust-async-task-dev (4.7.1-3) ... 337s Setting up librust-crypto-common-dev:s390x (0.1.6-1) ... 337s Setting up librust-ciborium-ll-dev:s390x (0.2.2-1) ... 337s Setting up librust-futures-core-dev:s390x (0.3.30-1) ... 337s Setting up librust-lazy-static-dev:s390x (1.4.0-2) ... 337s Setting up libtool (2.4.7-7build1) ... 337s Setting up librust-sval-buffer-dev:s390x (2.6.1-1) ... 337s Setting up librust-arrayvec-dev:s390x (0.7.4-2) ... 337s Setting up librust-png-dev:s390x (0.17.7-3) ... 337s Setting up librust-rustc-version-dev:s390x (0.4.0-1) ... 337s Setting up librust-event-listener-dev (5.3.1-8) ... 337s Setting up librust-smallvec-dev:s390x (1.13.2-1) ... 337s Setting up librust-sval-fmt-dev:s390x (2.6.1-1) ... 337s Setting up librust-const-oid-dev:s390x (0.9.3-1) ... 337s Setting up gcc (4:14.1.0-2ubuntu1) ... 337s Setting up librust-anstyle-parse-dev:s390x (0.2.1-1) ... 337s Setting up rustc-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 337s Setting up dh-autoreconf (20) ... 337s Setting up librust-ciborium-dev:s390x (0.2.2-2) ... 337s Setting up librust-block-buffer-dev:s390x (0.10.2-2) ... 337s Setting up librust-pathfinder-simd-dev:s390x (0.5.2-1) ... 337s Setting up librust-unicode-normalization-dev:s390x (0.1.22-1) ... 337s Setting up librust-anstream-dev:s390x (0.6.15-1) ... 337s Setting up librust-bitflags-dev:s390x (2.6.0-1) ... 337s Setting up librust-regex-syntax-dev:s390x (0.8.2-1) ... 337s Setting up g++ (4:14.1.0-2ubuntu1) ... 337s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 337s Setting up rustc (1.80.1ubuntu2) ... 337s Setting up librust-parking-lot-core-dev:s390x (0.9.10-1) ... 337s Setting up build-essential (12.10ubuntu1) ... 337s Setting up librust-futures-channel-dev:s390x (0.3.30-1) ... 337s Setting up cargo-1.80 (1.80.1+dfsg0ubuntu1-0ubuntu1) ... 337s Setting up librust-once-cell-dev:s390x (1.19.0-1) ... 337s Setting up librust-pyo3-build-config-dev:s390x (0.22.5-1) ... 337s Setting up librust-phf-shared+uncased-dev:s390x (0.11.2-1) ... 337s Setting up librust-digest-dev:s390x (0.10.7-2) ... 337s Setting up librust-md-5-dev:s390x (0.10.6-1) ... 337s Setting up librust-sval-serde-dev:s390x (2.6.1-1) ... 337s Setting up librust-parking-lot-dev:s390x (0.12.1-2build1) ... 337s Setting up librust-event-listener-strategy-dev:s390x (0.5.2-3) ... 337s Setting up librust-pyo3-macros-backend-dev:s390x (0.22.5-1) ... 337s Setting up librust-pyo3-ffi-dev:s390x (0.22.5-1) ... 337s Setting up librust-const-random-macro-dev:s390x (0.1.16-2) ... 337s Setting up librust-const-random-dev:s390x (0.1.17-2) ... 337s Setting up librust-pyo3-macros-dev:s390x (0.22.5-1) ... 337s Setting up librust-sha1-dev:s390x (0.10.6-1) ... 337s Setting up debhelper (13.20ubuntu1) ... 337s Setting up librust-ahash-dev (0.8.11-8) ... 337s Setting up librust-async-channel-dev (2.3.1-8) ... 337s Setting up librust-stringprep-dev:s390x (0.1.2-1) ... 337s Setting up librust-tracing-core-dev:s390x (0.1.32-1) ... 337s Setting up cargo (1.80.1ubuntu2) ... 337s Setting up librust-async-lock-dev (3.4.0-4) ... 337s Setting up python3-setuptools-rust (1.9.0+dfsg-2) ... 337s Setting up librust-eyre-dev:s390x (0.6.12-1) ... 337s Setting up librust-yeslogic-fontconfig-sys-dev:s390x (3.0.1-1) ... 337s Setting up librust-sha2-dev:s390x (0.10.8-1) ... 337s Setting up librust-hmac-dev:s390x (0.12.1-1) ... 337s Setting up librust-rustix-dev:s390x (0.38.32-1) ... 337s Setting up librust-wyz-dev:s390x (0.5.1-1) ... 337s Setting up librust-bitvec-dev:s390x (1.0.1-1) ... 337s Setting up librust-phf+uncased-dev:s390x (0.11.2-1) ... 337s Setting up librust-value-bag-sval2-dev:s390x (1.9.0-1) ... 337s Setting up librust-tempfile-dev:s390x (3.10.1-1) ... 337s Setting up librust-eyre+default-dev:s390x (0.6.12-1) ... 337s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 337s Setting up librust-rusty-fork-dev:s390x (0.3.0-1) ... 337s Setting up librust-hashbrown-dev:s390x (0.14.5-5) ... 337s Setting up librust-rusty-fork+wait-timeout-dev:s390x (0.3.0-1) ... 337s Setting up librust-terminal-size-dev:s390x (0.3.0-2) ... 337s Setting up librust-indexmap-dev:s390x (2.2.6-1) ... 337s Setting up librust-gimli-dev:s390x (0.28.1-2) ... 337s Setting up librust-webp-dev:s390x (0.2.6-1) ... 337s Setting up librust-memchr-dev:s390x (2.7.1-1) ... 337s Setting up librust-futures-util-dev:s390x (0.3.30-2) ... 337s Setting up librust-csv-core-dev:s390x (0.1.11-1) ... 337s Setting up librust-futures-lite-dev:s390x (2.3.0-2) ... 337s Setting up librust-csv-dev:s390x (1.3.0-1) ... 337s Setting up librust-serde-json-dev:s390x (1.0.128-1) ... 337s Setting up librust-async-executor-dev (1.13.1-1) ... 337s Setting up librust-futures-executor-dev:s390x (0.3.30-1) ... 337s Setting up librust-value-bag-serde1-dev:s390x (1.9.0-1) ... 337s Setting up librust-tinytemplate-dev:s390x (1.2.1-1) ... 337s Setting up librust-futures-dev:s390x (0.3.30-2) ... 337s Setting up librust-value-bag-dev:s390x (1.9.0-1) ... 337s Setting up librust-log-dev:s390x (0.4.22-1) ... 337s Setting up librust-kv-log-macro-dev (1.0.8-4) ... 337s Setting up librust-pathfinder-geometry-dev:s390x (0.5.1-1) ... 337s Setting up librust-tracing-dev:s390x (0.1.40-1) ... 337s Setting up librust-polling-dev:s390x (3.4.0-1) ... 337s Setting up librust-aho-corasick-dev:s390x (1.1.3-1) ... 337s Setting up librust-font-kit-dev:s390x (0.11.0-2) ... 337s Setting up librust-async-io-dev:s390x (2.3.3-4) ... 337s Setting up librust-blocking-dev (1.6.1-5) ... 337s Setting up librust-async-net-dev (2.0.0-4) ... 337s Setting up librust-rand-dev:s390x (0.8.5-1) ... 337s Setting up librust-mio-dev:s390x (1.0.2-2) ... 337s Setting up librust-wasm-bindgen-backend-dev:s390x (0.2.87-1) ... 337s Setting up librust-twox-hash-dev:s390x (1.6.3-1) ... 337s Setting up librust-proptest-dev:s390x (1.5.0-2) ... 337s Setting up librust-wasm-bindgen-macro-support-dev:s390x (0.2.87-1) ... 337s Setting up librust-regex-automata-dev:s390x (0.4.7-1) ... 337s Setting up librust-wasm-bindgen-macro-support+spans-dev:s390x (0.2.87-1) ... 337s Setting up librust-wasm-bindgen-macro-dev:s390x (0.2.87-1) ... 337s Setting up librust-uuid-dev:s390x (1.10.0-1) ... 337s Setting up librust-bstr-dev:s390x (1.7.0-2build1) ... 337s Setting up librust-async-signal-dev:s390x (0.2.10-1) ... 337s Setting up librust-bytecheck-dev:s390x (0.6.12-1) ... 337s Setting up librust-postgres-protocol-dev:s390x (0.6.6-2) ... 337s Setting up librust-async-fs-dev (2.1.2-4) ... 337s Setting up librust-wasm-bindgen-dev:s390x (0.2.87-1) ... 337s Setting up librust-convert-case-dev:s390x (0.6.0-2) ... 337s Setting up librust-regex-dev:s390x (1.10.6-1) ... 337s Setting up librust-fancy-regex-dev:s390x (0.11.0-2) ... 337s Setting up librust-async-process-dev (2.3.0-1) ... 337s Setting up librust-wasm-bindgen-macro+spans-dev:s390x (0.2.87-1) ... 337s Setting up librust-rend-dev:s390x (0.4.0-1) ... 337s Setting up librust-derive-more-0.99-dev:s390x (0.99.18-1) ... 337s Setting up librust-env-logger-dev:s390x (0.10.2-2) ... 337s Setting up librust-wasm-bindgen+spans-dev:s390x (0.2.87-1) ... 337s Setting up librust-wasm-bindgen+default-dev:s390x (0.2.87-1) ... 337s Setting up librust-rkyv-dev:s390x (0.7.44-1) ... 337s Setting up librust-eui48-dev:s390x (1.1.0-2) ... 337s Setting up librust-parse-zoneinfo-dev:s390x (0.3.0-1) ... 337s Setting up librust-smol-dev (2.0.2-1) ... 337s Setting up librust-js-sys-dev:s390x (0.3.64-1) ... 337s Setting up librust-num-complex-dev:s390x (0.4.6-2) ... 337s Setting up librust-approx-dev:s390x (0.5.1-1) ... 337s Setting up librust-ruzstd-dev:s390x (0.5.0-1) ... 337s Setting up librust-web-sys-dev:s390x (0.3.64-2) ... 337s Setting up librust-quickcheck-dev:s390x (1.0.3-3) ... 337s Setting up librust-geo-types-dev:s390x (0.7.11-2) ... 337s Setting up librust-deranged-dev:s390x (0.3.11-1) ... 337s Setting up librust-num-bigint-dev:s390x (0.4.6-1) ... 337s Setting up librust-num-rational-dev:s390x (0.4.2-1) ... 337s Setting up librust-chrono-dev:s390x (0.4.38-2) ... 337s Setting up librust-object-dev:s390x (0.32.2-1) ... 337s Setting up librust-image-dev:s390x (0.24.7-2) ... 337s Setting up librust-time-dev:s390x (0.3.31-2) ... 337s Setting up librust-plotters-bitmap-dev:s390x (0.3.3-3) ... 337s Setting up librust-postgres-types-dev:s390x (0.2.6-2) ... 337s Setting up librust-addr2line-dev:s390x (0.21.0-2) ... 337s Setting up librust-plotters-svg-dev:s390x (0.3.5-1) ... 337s Setting up librust-rust-decimal-dev:s390x (1.36.0-1) ... 337s Setting up librust-plotters-dev:s390x (0.3.5-4) ... 337s Setting up librust-backtrace-dev:s390x (0.3.69-2) ... 337s Setting up librust-tokio-dev:s390x (1.39.3-3) ... 337s Setting up librust-async-global-executor-dev:s390x (2.4.1-5) ... 337s Setting up librust-clap-builder-dev:s390x (4.5.15-2) ... 337s Setting up librust-clap-dev:s390x (4.5.16-1) ... 337s Setting up librust-async-std-dev (1.12.0-22) ... 337s Setting up librust-anyhow-dev:s390x (1.0.86-1) ... 337s Setting up librust-criterion-dev (0.5.1-6) ... 337s Setting up librust-phf-generator-dev:s390x (0.11.2-2) ... 337s Setting up librust-phf-codegen-dev:s390x (0.11.2-1) ... 337s Setting up librust-chrono-tz-build-dev:s390x (0.2.1-1) ... 337s Setting up librust-chrono-tz-dev:s390x (0.8.6-2) ... 337s Setting up librust-pyo3-dev:s390x (0.22.5-1) ... 337s Setting up autopkgtest-satdep (0) ... 337s Processing triggers for libc-bin (2.40-1ubuntu3) ... 337s Processing triggers for systemd (256.5-2ubuntu4) ... 338s Processing triggers for man-db (2.12.1-3) ... 339s Processing triggers for install-info (7.1.1-1) ... 348s (Reading database ... 81063 files and directories currently installed.) 348s Removing autopkgtest-satdep (0) ... 348s autopkgtest [15:12:27]: test pybuild-autopkgtest: pybuild-autopkgtest 348s autopkgtest [15:12:27]: test pybuild-autopkgtest: [----------------------- 348s pybuild-autopkgtest 349s I: pybuild base:311: cd /tmp/autopkgtest.gbus0M/autopkgtest_tmp/build; python3.12 -m pytest tests 349s ============================= test session starts ============================== 349s platform linux -- Python 3.12.7+, pytest-8.3.2, pluggy-1.5.0 349s rootdir: /tmp/autopkgtest.gbus0M/autopkgtest_tmp/build 349s configfile: pyproject.toml 349s plugins: typeguard-4.4.1, hypothesis-6.105.1 349s collected 30 items 349s 933s tests/test_encoding.py FFFFFFFFFFFFFFFFFFFFFF [ 73%] 934s tests/test_misc.py F. [ 80%] 937s tests/test_offsets.py FF [ 86%] 938s tests/test_pickle.py F [ 90%] 939s tests/test_simple_public.py FF. [100%] 939s 939s =================================== FAILURES =================================== 939s _________________________________ test_simple __________________________________ 939s 939s self = 939s 939s def _new_conn(self) -> socket.socket: 939s """Establish a socket connection and set nodelay settings on it. 939s 939s :return: New socket connection. 939s """ 939s try: 939s > sock = connection.create_connection( 939s (self._dns_host, self.port), 939s self.timeout, 939s source_address=self.source_address, 939s socket_options=self.socket_options, 939s ) 939s 939s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 939s raise err 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 939s source_address = None, socket_options = [(6, 1, 1)] 939s 939s def create_connection( 939s address: tuple[str, int], 939s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 939s source_address: tuple[str, int] | None = None, 939s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 939s ) -> socket.socket: 939s """Connect to *address* and return the socket object. 939s 939s Convenience function. Connect to *address* (a 2-tuple ``(host, 939s port)``) and return the socket object. Passing the optional 939s *timeout* parameter will set the timeout on the socket instance 939s before attempting to connect. If no *timeout* is supplied, the 939s global default timeout setting returned by :func:`socket.getdefaulttimeout` 939s is used. If *source_address* is set it must be a tuple of (host, port) 939s for the socket to bind as a source address before making the connection. 939s An host of '' or port 0 tells the OS to use the default. 939s """ 939s 939s host, port = address 939s if host.startswith("["): 939s host = host.strip("[]") 939s err = None 939s 939s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 939s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 939s # The original create_connection function always returns all records. 939s family = allowed_gai_family() 939s 939s try: 939s host.encode("idna") 939s except UnicodeError: 939s raise LocationParseError(f"'{host}', label empty or too long") from None 939s 939s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 939s af, socktype, proto, canonname, sa = res 939s sock = None 939s try: 939s sock = socket.socket(af, socktype, proto) 939s 939s # If provided, set socket level options before connecting. 939s _set_socket_options(sock, socket_options) 939s 939s if timeout is not _DEFAULT_TIMEOUT: 939s sock.settimeout(timeout) 939s if source_address: 939s sock.bind(source_address) 939s > sock.connect(sa) 939s E ConnectionRefusedError: [Errno 111] Connection refused 939s 939s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 939s 939s The above exception was the direct cause of the following exception: 939s 939s self = 939s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 939s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 939s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 939s redirect = False, assert_same_host = False 939s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 939s release_conn = False, chunked = False, body_pos = None, preload_content = False 939s decode_content = False, response_kw = {} 939s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 939s destination_scheme = None, conn = None, release_this_conn = True 939s http_tunnel_required = False, err = None, clean_exit = False 939s 939s def urlopen( # type: ignore[override] 939s self, 939s method: str, 939s url: str, 939s body: _TYPE_BODY | None = None, 939s headers: typing.Mapping[str, str] | None = None, 939s retries: Retry | bool | int | None = None, 939s redirect: bool = True, 939s assert_same_host: bool = True, 939s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 939s pool_timeout: int | None = None, 939s release_conn: bool | None = None, 939s chunked: bool = False, 939s body_pos: _TYPE_BODY_POSITION | None = None, 939s preload_content: bool = True, 939s decode_content: bool = True, 939s **response_kw: typing.Any, 939s ) -> BaseHTTPResponse: 939s """ 939s Get a connection from the pool and perform an HTTP request. This is the 939s lowest level call for making a request, so you'll need to specify all 939s the raw details. 939s 939s .. note:: 939s 939s More commonly, it's appropriate to use a convenience method 939s such as :meth:`request`. 939s 939s .. note:: 939s 939s `release_conn` will only behave as expected if 939s `preload_content=False` because we want to make 939s `preload_content=False` the default behaviour someday soon without 939s breaking backwards compatibility. 939s 939s :param method: 939s HTTP request method (such as GET, POST, PUT, etc.) 939s 939s :param url: 939s The URL to perform the request on. 939s 939s :param body: 939s Data to send in the request body, either :class:`str`, :class:`bytes`, 939s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 939s 939s :param headers: 939s Dictionary of custom headers to send, such as User-Agent, 939s If-None-Match, etc. If None, pool headers are used. If provided, 939s these headers completely replace any pool-specific headers. 939s 939s :param retries: 939s Configure the number of retries to allow before raising a 939s :class:`~urllib3.exceptions.MaxRetryError` exception. 939s 939s Pass ``None`` to retry until you receive a response. Pass a 939s :class:`~urllib3.util.retry.Retry` object for fine-grained control 939s over different types of retries. 939s Pass an integer number to retry connection errors that many times, 939s but no other types of errors. Pass zero to never retry. 939s 939s If ``False``, then retries are disabled and any exception is raised 939s immediately. Also, instead of raising a MaxRetryError on redirects, 939s the redirect response will be returned. 939s 939s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 939s 939s :param redirect: 939s If True, automatically handle redirects (status codes 301, 302, 939s 303, 307, 308). Each redirect counts as a retry. Disabling retries 939s will disable redirect, too. 939s 939s :param assert_same_host: 939s If ``True``, will make sure that the host of the pool requests is 939s consistent else will raise HostChangedError. When ``False``, you can 939s use the pool on an HTTP proxy and request foreign hosts. 939s 939s :param timeout: 939s If specified, overrides the default timeout for this one 939s request. It may be a float (in seconds) or an instance of 939s :class:`urllib3.util.Timeout`. 939s 939s :param pool_timeout: 939s If set and the pool is set to block=True, then this method will 939s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 939s connection is available within the time period. 939s 939s :param bool preload_content: 939s If True, the response's body will be preloaded into memory. 939s 939s :param bool decode_content: 939s If True, will attempt to decode the body based on the 939s 'content-encoding' header. 939s 939s :param release_conn: 939s If False, then the urlopen call will not release the connection 939s back into the pool once a response is received (but will release if 939s you read the entire contents of the response such as when 939s `preload_content=True`). This is useful if you're not preloading 939s the response's content immediately. You will need to call 939s ``r.release_conn()`` on the response ``r`` to return the connection 939s back into the pool. If None, it takes the value of ``preload_content`` 939s which defaults to ``True``. 939s 939s :param bool chunked: 939s If True, urllib3 will send the body using chunked transfer 939s encoding. Otherwise, urllib3 will send the body using the standard 939s content-length form. Defaults to False. 939s 939s :param int body_pos: 939s Position to seek to in file-like body in the event of a retry or 939s redirect. Typically this won't need to be set because urllib3 will 939s auto-populate the value when needed. 939s """ 939s parsed_url = parse_url(url) 939s destination_scheme = parsed_url.scheme 939s 939s if headers is None: 939s headers = self.headers 939s 939s if not isinstance(retries, Retry): 939s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 939s 939s if release_conn is None: 939s release_conn = preload_content 939s 939s # Check host 939s if assert_same_host and not self.is_same_host(url): 939s raise HostChangedError(self, url, retries) 939s 939s # Ensure that the URL we're connecting to is properly encoded 939s if url.startswith("/"): 939s url = to_str(_encode_target(url)) 939s else: 939s url = to_str(parsed_url.url) 939s 939s conn = None 939s 939s # Track whether `conn` needs to be released before 939s # returning/raising/recursing. Update this variable if necessary, and 939s # leave `release_conn` constant throughout the function. That way, if 939s # the function recurses, the original value of `release_conn` will be 939s # passed down into the recursive call, and its value will be respected. 939s # 939s # See issue #651 [1] for details. 939s # 939s # [1] 939s release_this_conn = release_conn 939s 939s http_tunnel_required = connection_requires_http_tunnel( 939s self.proxy, self.proxy_config, destination_scheme 939s ) 939s 939s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 939s # have to copy the headers dict so we can safely change it without those 939s # changes being reflected in anyone else's copy. 939s if not http_tunnel_required: 939s headers = headers.copy() # type: ignore[attr-defined] 939s headers.update(self.proxy_headers) # type: ignore[union-attr] 939s 939s # Must keep the exception bound to a separate variable or else Python 3 939s # complains about UnboundLocalError. 939s err = None 939s 939s # Keep track of whether we cleanly exited the except block. This 939s # ensures we do proper cleanup in finally. 939s clean_exit = False 939s 939s # Rewind body position, if needed. Record current position 939s # for future rewinds in the event of a redirect/retry. 939s body_pos = set_file_position(body, body_pos) 939s 939s try: 939s # Request a connection from the queue. 939s timeout_obj = self._get_timeout(timeout) 939s conn = self._get_conn(timeout=pool_timeout) 939s 939s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 939s 939s # Is this a closed/new connection that requires CONNECT tunnelling? 939s if self.proxy is not None and http_tunnel_required and conn.is_closed: 939s try: 939s self._prepare_proxy(conn) 939s except (BaseSSLError, OSError, SocketTimeout) as e: 939s self._raise_timeout( 939s err=e, url=self.proxy.url, timeout_value=conn.timeout 939s ) 939s raise 939s 939s # If we're going to release the connection in ``finally:``, then 939s # the response doesn't need to know about the connection. Otherwise 939s # it will also try to release it and we'll have a double-release 939s # mess. 939s response_conn = conn if not release_conn else None 939s 939s # Make the request on the HTTPConnection object 939s > response = self._make_request( 939s conn, 939s method, 939s url, 939s timeout=timeout_obj, 939s body=body, 939s headers=headers, 939s chunked=chunked, 939s retries=retries, 939s response_conn=response_conn, 939s preload_content=preload_content, 939s decode_content=decode_content, 939s **response_kw, 939s ) 939s 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 939s raise new_e 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 939s self._validate_conn(conn) 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 939s conn.connect() 939s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 939s self.sock = sock = self._new_conn() 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s self = 939s 939s def _new_conn(self) -> socket.socket: 939s """Establish a socket connection and set nodelay settings on it. 939s 939s :return: New socket connection. 939s """ 939s try: 939s sock = connection.create_connection( 939s (self._dns_host, self.port), 939s self.timeout, 939s source_address=self.source_address, 939s socket_options=self.socket_options, 939s ) 939s except socket.gaierror as e: 939s raise NameResolutionError(self.host, self, e) from e 939s except SocketTimeout as e: 939s raise ConnectTimeoutError( 939s self, 939s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 939s ) from e 939s 939s except OSError as e: 939s > raise NewConnectionError( 939s self, f"Failed to establish a new connection: {e}" 939s ) from e 939s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 939s 939s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 939s 939s The above exception was the direct cause of the following exception: 939s 939s self = 939s request = , stream = False 939s timeout = Timeout(connect=None, read=None, total=None), verify = True 939s cert = None, proxies = OrderedDict() 939s 939s def send( 939s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 939s ): 939s """Sends PreparedRequest object. Returns Response object. 939s 939s :param request: The :class:`PreparedRequest ` being sent. 939s :param stream: (optional) Whether to stream the request content. 939s :param timeout: (optional) How long to wait for the server to send 939s data before giving up, as a float, or a :ref:`(connect timeout, 939s read timeout) ` tuple. 939s :type timeout: float or tuple or urllib3 Timeout object 939s :param verify: (optional) Either a boolean, in which case it controls whether 939s we verify the server's TLS certificate, or a string, in which case it 939s must be a path to a CA bundle to use 939s :param cert: (optional) Any user-provided SSL certificate to be trusted. 939s :param proxies: (optional) The proxies dictionary to apply to the request. 939s :rtype: requests.Response 939s """ 939s 939s try: 939s conn = self.get_connection_with_tls_context( 939s request, verify, proxies=proxies, cert=cert 939s ) 939s except LocationValueError as e: 939s raise InvalidURL(e, request=request) 939s 939s self.cert_verify(conn, request.url, verify, cert) 939s url = self.request_url(request, proxies) 939s self.add_headers( 939s request, 939s stream=stream, 939s timeout=timeout, 939s verify=verify, 939s cert=cert, 939s proxies=proxies, 939s ) 939s 939s chunked = not (request.body is None or "Content-Length" in request.headers) 939s 939s if isinstance(timeout, tuple): 939s try: 939s connect, read = timeout 939s timeout = TimeoutSauce(connect=connect, read=read) 939s except ValueError: 939s raise ValueError( 939s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 939s f"or a single float to set both timeouts to the same value." 939s ) 939s elif isinstance(timeout, TimeoutSauce): 939s pass 939s else: 939s timeout = TimeoutSauce(connect=timeout, read=timeout) 939s 939s try: 939s > resp = conn.urlopen( 939s method=request.method, 939s url=url, 939s body=request.body, 939s headers=request.headers, 939s redirect=False, 939s assert_same_host=False, 939s preload_content=False, 939s decode_content=False, 939s retries=self.max_retries, 939s timeout=timeout, 939s chunked=chunked, 939s ) 939s 939s /usr/lib/python3/dist-packages/requests/adapters.py:667: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 939s retries = retries.increment( 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 939s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 939s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 939s _pool = 939s _stacktrace = 939s 939s def increment( 939s self, 939s method: str | None = None, 939s url: str | None = None, 939s response: BaseHTTPResponse | None = None, 939s error: Exception | None = None, 939s _pool: ConnectionPool | None = None, 939s _stacktrace: TracebackType | None = None, 939s ) -> Retry: 939s """Return a new Retry object with incremented retry counters. 939s 939s :param response: A response object, or None, if the server did not 939s return a response. 939s :type response: :class:`~urllib3.response.BaseHTTPResponse` 939s :param Exception error: An error encountered during the request, or 939s None if the response was received successfully. 939s 939s :return: A new ``Retry`` object. 939s """ 939s if self.total is False and error: 939s # Disabled, indicate to re-raise the error. 939s raise reraise(type(error), error, _stacktrace) 939s 939s total = self.total 939s if total is not None: 939s total -= 1 939s 939s connect = self.connect 939s read = self.read 939s redirect = self.redirect 939s status_count = self.status 939s other = self.other 939s cause = "unknown" 939s status = None 939s redirect_location = None 939s 939s if error and self._is_connection_error(error): 939s # Connect retry? 939s if connect is False: 939s raise reraise(type(error), error, _stacktrace) 939s elif connect is not None: 939s connect -= 1 939s 939s elif error and self._is_read_error(error): 939s # Read retry? 939s if read is False or method is None or not self._is_method_retryable(method): 939s raise reraise(type(error), error, _stacktrace) 939s elif read is not None: 939s read -= 1 939s 939s elif error: 939s # Other retry? 939s if other is not None: 939s other -= 1 939s 939s elif response and response.get_redirect_location(): 939s # Redirect retry? 939s if redirect is not None: 939s redirect -= 1 939s cause = "too many redirects" 939s response_redirect_location = response.get_redirect_location() 939s if response_redirect_location: 939s redirect_location = response_redirect_location 939s status = response.status 939s 939s else: 939s # Incrementing because of a server error like a 500 in 939s # status_forcelist and the given method is in the allowed_methods 939s cause = ResponseError.GENERIC_ERROR 939s if response and response.status: 939s if status_count is not None: 939s status_count -= 1 939s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 939s status = response.status 939s 939s history = self.history + ( 939s RequestHistory(method, url, error, status, redirect_location), 939s ) 939s 939s new_retry = self.new( 939s total=total, 939s connect=connect, 939s read=read, 939s redirect=redirect, 939s status=status_count, 939s other=other, 939s history=history, 939s ) 939s 939s if new_retry.is_exhausted(): 939s reason = error or ResponseError(cause) 939s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 939s 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')) 939s 939s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 939s 939s During handling of the above exception, another exception occurred: 939s 939s def test_simple(): 939s > enc = tiktoken.get_encoding("gpt2") 939s 939s tests/test_encoding.py:15: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 939s enc = Encoding(**constructor()) 939s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 939s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 939s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 939s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 939s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 939s contents = read_file(blobpath) 939s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 939s resp = requests.get(blobpath) 939s /usr/lib/python3/dist-packages/requests/api.py:73: in get 939s return request("get", url, params=params, **kwargs) 939s /usr/lib/python3/dist-packages/requests/api.py:59: in request 939s return session.request(method=method, url=url, **kwargs) 939s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 939s resp = self.send(prep, **send_kwargs) 939s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 939s r = adapter.send(request, **kwargs) 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s self = 939s request = , stream = False 939s timeout = Timeout(connect=None, read=None, total=None), verify = True 939s cert = None, proxies = OrderedDict() 939s 939s def send( 939s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 939s ): 939s """Sends PreparedRequest object. Returns Response object. 939s 939s :param request: The :class:`PreparedRequest ` being sent. 939s :param stream: (optional) Whether to stream the request content. 939s :param timeout: (optional) How long to wait for the server to send 939s data before giving up, as a float, or a :ref:`(connect timeout, 939s read timeout) ` tuple. 939s :type timeout: float or tuple or urllib3 Timeout object 939s :param verify: (optional) Either a boolean, in which case it controls whether 939s we verify the server's TLS certificate, or a string, in which case it 939s must be a path to a CA bundle to use 939s :param cert: (optional) Any user-provided SSL certificate to be trusted. 939s :param proxies: (optional) The proxies dictionary to apply to the request. 939s :rtype: requests.Response 939s """ 939s 939s try: 939s conn = self.get_connection_with_tls_context( 939s request, verify, proxies=proxies, cert=cert 939s ) 939s except LocationValueError as e: 939s raise InvalidURL(e, request=request) 939s 939s self.cert_verify(conn, request.url, verify, cert) 939s url = self.request_url(request, proxies) 939s self.add_headers( 939s request, 939s stream=stream, 939s timeout=timeout, 939s verify=verify, 939s cert=cert, 939s proxies=proxies, 939s ) 939s 939s chunked = not (request.body is None or "Content-Length" in request.headers) 939s 939s if isinstance(timeout, tuple): 939s try: 939s connect, read = timeout 939s timeout = TimeoutSauce(connect=connect, read=read) 939s except ValueError: 939s raise ValueError( 939s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 939s f"or a single float to set both timeouts to the same value." 939s ) 939s elif isinstance(timeout, TimeoutSauce): 939s pass 939s else: 939s timeout = TimeoutSauce(connect=timeout, read=timeout) 939s 939s try: 939s resp = conn.urlopen( 939s method=request.method, 939s url=url, 939s body=request.body, 939s headers=request.headers, 939s redirect=False, 939s assert_same_host=False, 939s preload_content=False, 939s decode_content=False, 939s retries=self.max_retries, 939s timeout=timeout, 939s chunked=chunked, 939s ) 939s 939s except (ProtocolError, OSError) as err: 939s raise ConnectionError(err, request=request) 939s 939s except MaxRetryError as e: 939s if isinstance(e.reason, ConnectTimeoutError): 939s # TODO: Remove this in 3.0.0: see #2811 939s if not isinstance(e.reason, NewConnectionError): 939s raise ConnectTimeout(e, request=request) 939s 939s if isinstance(e.reason, ResponseError): 939s raise RetryError(e, request=request) 939s 939s if isinstance(e.reason, _ProxyError): 939s raise ProxyError(e, request=request) 939s 939s if isinstance(e.reason, _SSLError): 939s # This branch is for urllib3 v1.22 and later. 939s raise SSLError(e, request=request) 939s 939s > raise ConnectionError(e, request=request) 939s 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')) 939s 939s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 939s _____________________________ test_simple_repeated _____________________________ 939s 939s self = 939s 939s def _new_conn(self) -> socket.socket: 939s """Establish a socket connection and set nodelay settings on it. 939s 939s :return: New socket connection. 939s """ 939s try: 939s > sock = connection.create_connection( 939s (self._dns_host, self.port), 939s self.timeout, 939s source_address=self.source_address, 939s socket_options=self.socket_options, 939s ) 939s 939s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 939s raise err 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 939s source_address = None, socket_options = [(6, 1, 1)] 939s 939s def create_connection( 939s address: tuple[str, int], 939s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 939s source_address: tuple[str, int] | None = None, 939s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 939s ) -> socket.socket: 939s """Connect to *address* and return the socket object. 939s 939s Convenience function. Connect to *address* (a 2-tuple ``(host, 939s port)``) and return the socket object. Passing the optional 939s *timeout* parameter will set the timeout on the socket instance 939s before attempting to connect. If no *timeout* is supplied, the 939s global default timeout setting returned by :func:`socket.getdefaulttimeout` 939s is used. If *source_address* is set it must be a tuple of (host, port) 939s for the socket to bind as a source address before making the connection. 939s An host of '' or port 0 tells the OS to use the default. 939s """ 939s 939s host, port = address 939s if host.startswith("["): 939s host = host.strip("[]") 939s err = None 939s 939s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 939s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 939s # The original create_connection function always returns all records. 939s family = allowed_gai_family() 939s 939s try: 939s host.encode("idna") 939s except UnicodeError: 939s raise LocationParseError(f"'{host}', label empty or too long") from None 939s 939s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 939s af, socktype, proto, canonname, sa = res 939s sock = None 939s try: 939s sock = socket.socket(af, socktype, proto) 939s 939s # If provided, set socket level options before connecting. 939s _set_socket_options(sock, socket_options) 939s 939s if timeout is not _DEFAULT_TIMEOUT: 939s sock.settimeout(timeout) 939s if source_address: 939s sock.bind(source_address) 939s > sock.connect(sa) 939s E ConnectionRefusedError: [Errno 111] Connection refused 939s 939s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 939s 939s The above exception was the direct cause of the following exception: 939s 939s self = 939s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 939s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 939s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 939s redirect = False, assert_same_host = False 939s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 939s release_conn = False, chunked = False, body_pos = None, preload_content = False 939s decode_content = False, response_kw = {} 939s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 939s destination_scheme = None, conn = None, release_this_conn = True 939s http_tunnel_required = False, err = None, clean_exit = False 939s 939s def urlopen( # type: ignore[override] 939s self, 939s method: str, 939s url: str, 939s body: _TYPE_BODY | None = None, 939s headers: typing.Mapping[str, str] | None = None, 939s retries: Retry | bool | int | None = None, 939s redirect: bool = True, 939s assert_same_host: bool = True, 939s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 939s pool_timeout: int | None = None, 939s release_conn: bool | None = None, 939s chunked: bool = False, 939s body_pos: _TYPE_BODY_POSITION | None = None, 939s preload_content: bool = True, 939s decode_content: bool = True, 939s **response_kw: typing.Any, 939s ) -> BaseHTTPResponse: 939s """ 939s Get a connection from the pool and perform an HTTP request. This is the 939s lowest level call for making a request, so you'll need to specify all 939s the raw details. 939s 939s .. note:: 939s 939s More commonly, it's appropriate to use a convenience method 939s such as :meth:`request`. 939s 939s .. note:: 939s 939s `release_conn` will only behave as expected if 939s `preload_content=False` because we want to make 939s `preload_content=False` the default behaviour someday soon without 939s breaking backwards compatibility. 939s 939s :param method: 939s HTTP request method (such as GET, POST, PUT, etc.) 939s 939s :param url: 939s The URL to perform the request on. 939s 939s :param body: 939s Data to send in the request body, either :class:`str`, :class:`bytes`, 939s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 939s 939s :param headers: 939s Dictionary of custom headers to send, such as User-Agent, 939s If-None-Match, etc. If None, pool headers are used. If provided, 939s these headers completely replace any pool-specific headers. 939s 939s :param retries: 939s Configure the number of retries to allow before raising a 939s :class:`~urllib3.exceptions.MaxRetryError` exception. 939s 939s Pass ``None`` to retry until you receive a response. Pass a 939s :class:`~urllib3.util.retry.Retry` object for fine-grained control 939s over different types of retries. 939s Pass an integer number to retry connection errors that many times, 939s but no other types of errors. Pass zero to never retry. 939s 939s If ``False``, then retries are disabled and any exception is raised 939s immediately. Also, instead of raising a MaxRetryError on redirects, 939s the redirect response will be returned. 939s 939s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 939s 939s :param redirect: 939s If True, automatically handle redirects (status codes 301, 302, 939s 303, 307, 308). Each redirect counts as a retry. Disabling retries 939s will disable redirect, too. 939s 939s :param assert_same_host: 939s If ``True``, will make sure that the host of the pool requests is 939s consistent else will raise HostChangedError. When ``False``, you can 939s use the pool on an HTTP proxy and request foreign hosts. 939s 939s :param timeout: 939s If specified, overrides the default timeout for this one 939s request. It may be a float (in seconds) or an instance of 939s :class:`urllib3.util.Timeout`. 939s 939s :param pool_timeout: 939s If set and the pool is set to block=True, then this method will 939s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 939s connection is available within the time period. 939s 939s :param bool preload_content: 939s If True, the response's body will be preloaded into memory. 939s 939s :param bool decode_content: 939s If True, will attempt to decode the body based on the 939s 'content-encoding' header. 939s 939s :param release_conn: 939s If False, then the urlopen call will not release the connection 939s back into the pool once a response is received (but will release if 939s you read the entire contents of the response such as when 939s `preload_content=True`). This is useful if you're not preloading 939s the response's content immediately. You will need to call 939s ``r.release_conn()`` on the response ``r`` to return the connection 939s back into the pool. If None, it takes the value of ``preload_content`` 939s which defaults to ``True``. 939s 939s :param bool chunked: 939s If True, urllib3 will send the body using chunked transfer 939s encoding. Otherwise, urllib3 will send the body using the standard 939s content-length form. Defaults to False. 939s 939s :param int body_pos: 939s Position to seek to in file-like body in the event of a retry or 939s redirect. Typically this won't need to be set because urllib3 will 939s auto-populate the value when needed. 939s """ 939s parsed_url = parse_url(url) 939s destination_scheme = parsed_url.scheme 939s 939s if headers is None: 939s headers = self.headers 939s 939s if not isinstance(retries, Retry): 939s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 939s 939s if release_conn is None: 939s release_conn = preload_content 939s 939s # Check host 939s if assert_same_host and not self.is_same_host(url): 939s raise HostChangedError(self, url, retries) 939s 939s # Ensure that the URL we're connecting to is properly encoded 939s if url.startswith("/"): 939s url = to_str(_encode_target(url)) 939s else: 939s url = to_str(parsed_url.url) 939s 939s conn = None 939s 939s # Track whether `conn` needs to be released before 939s # returning/raising/recursing. Update this variable if necessary, and 939s # leave `release_conn` constant throughout the function. That way, if 939s # the function recurses, the original value of `release_conn` will be 939s # passed down into the recursive call, and its value will be respected. 939s # 939s # See issue #651 [1] for details. 939s # 939s # [1] 939s release_this_conn = release_conn 939s 939s http_tunnel_required = connection_requires_http_tunnel( 939s self.proxy, self.proxy_config, destination_scheme 939s ) 939s 939s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 939s # have to copy the headers dict so we can safely change it without those 939s # changes being reflected in anyone else's copy. 939s if not http_tunnel_required: 939s headers = headers.copy() # type: ignore[attr-defined] 939s headers.update(self.proxy_headers) # type: ignore[union-attr] 939s 939s # Must keep the exception bound to a separate variable or else Python 3 939s # complains about UnboundLocalError. 939s err = None 939s 939s # Keep track of whether we cleanly exited the except block. This 939s # ensures we do proper cleanup in finally. 939s clean_exit = False 939s 939s # Rewind body position, if needed. Record current position 939s # for future rewinds in the event of a redirect/retry. 939s body_pos = set_file_position(body, body_pos) 939s 939s try: 939s # Request a connection from the queue. 939s timeout_obj = self._get_timeout(timeout) 939s conn = self._get_conn(timeout=pool_timeout) 939s 939s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 939s 939s # Is this a closed/new connection that requires CONNECT tunnelling? 939s if self.proxy is not None and http_tunnel_required and conn.is_closed: 939s try: 939s self._prepare_proxy(conn) 939s except (BaseSSLError, OSError, SocketTimeout) as e: 939s self._raise_timeout( 939s err=e, url=self.proxy.url, timeout_value=conn.timeout 939s ) 939s raise 939s 939s # If we're going to release the connection in ``finally:``, then 939s # the response doesn't need to know about the connection. Otherwise 939s # it will also try to release it and we'll have a double-release 939s # mess. 939s response_conn = conn if not release_conn else None 939s 939s # Make the request on the HTTPConnection object 939s > response = self._make_request( 939s conn, 939s method, 939s url, 939s timeout=timeout_obj, 939s body=body, 939s headers=headers, 939s chunked=chunked, 939s retries=retries, 939s response_conn=response_conn, 939s preload_content=preload_content, 939s decode_content=decode_content, 939s **response_kw, 939s ) 939s 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 939s raise new_e 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 939s self._validate_conn(conn) 939s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 939s conn.connect() 939s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 939s self.sock = sock = self._new_conn() 939s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 939s 939s self = 939s 939s def _new_conn(self) -> socket.socket: 939s """Establish a socket connection and set nodelay settings on it. 939s 939s :return: New socket connection. 939s """ 939s try: 939s sock = connection.create_connection( 939s (self._dns_host, self.port), 939s self.timeout, 939s source_address=self.source_address, 939s socket_options=self.socket_options, 939s ) 939s except socket.gaierror as e: 939s raise NameResolutionError(self.host, self, e) from e 939s except SocketTimeout as e: 939s raise ConnectTimeoutError( 939s self, 939s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 939s ) from e 939s 939s except OSError as e: 939s > raise NewConnectionError( 939s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_simple_repeated(): 940s > enc = tiktoken.get_encoding("gpt2") 940s 940s tests/test_encoding.py:32: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 940s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 940s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_simple_regex _______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_simple_regex(): 940s > enc = tiktoken.get_encoding("cl100k_base") 940s 940s tests/test_encoding.py:53: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_basic_encode _______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_basic_encode(): 940s > enc = tiktoken.get_encoding("r50k_base") 940s 940s tests/test_encoding.py:62: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_encode_empty _______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_encode_empty(): 940s > enc = tiktoken.get_encoding("r50k_base") 940s 940s tests/test_encoding.py:74: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_encode_bytes _______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_encode_bytes(): 940s > enc = tiktoken.get_encoding("cl100k_base") 940s 940s tests/test_encoding.py:79: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _________________________ test_encode_surrogate_pairs __________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_encode_surrogate_pairs(): 940s > enc = tiktoken.get_encoding("cl100k_base") 940s 940s tests/test_encoding.py:84: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _________________ test_catastrophically_repetitive[r50k_base] __________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:96: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ________________ test_catastrophically_repetitive[cl100k_base] _________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_catastrophically_repetitive(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:96: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _______________________ test_basic_roundtrip[r50k_base] ________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_basic_roundtrip(make_enc): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:115: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________ test_basic_roundtrip[cl100k_base] _______________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_basic_roundtrip(make_enc): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:115: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ________________________ test_hyp_roundtrip[r50k_base] _________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(text=st.text()) 940s 940s tests/test_encoding.py:131: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:134: in test_hyp_roundtrip 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_roundtrip( 940s E make_enc=functools.partial(get_encoding, 'r50k_base'), 940s E text='', # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _______________________ test_hyp_roundtrip[cl100k_base] ________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(text=st.text()) 940s 940s tests/test_encoding.py:131: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:134: in test_hyp_roundtrip 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_roundtrip( 940s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 940s E text='', # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ____________________ test_single_token_roundtrip[r50k_base] ____________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:141: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ___________________ test_single_token_roundtrip[cl100k_base] ___________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_single_token_roundtrip(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:141: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_special_token ______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_special_token(): 940s > enc = tiktoken.get_encoding("cl100k_base") 940s 940s tests/test_encoding.py:157: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _____________________ test_hyp_special_ordinary[r50k_base] _____________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.gbus0M/autopkgtest_tmp/build; python3.12 -m pytest tests 940s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_hmake: *** [/tmp/FiHVDMKIi3/run:4: pybuild-autopkgtest] Error 25 940s eaders) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(text=st.text()) 940s 940s tests/test_encoding.py:208: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:211: in test_hyp_special_ordinary 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_special_ordinary( 940s E make_enc=functools.partial(get_encoding, 'r50k_base'), 940s E text='', # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ____________________ test_hyp_special_ordinary[cl100k_base] ____________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s pybuild-autopkgtest: error: /tmp/FiHVDMKIi3/run pybuild-autopkgtest returned exit code 2 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(text=st.text()) 940s 940s tests/test_encoding.py:208: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:211: in test_hyp_special_ordinary 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_special_ordinary( 940s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 940s E text='', # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _________________________ test_batch_encode[r50k_base] _________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:222: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ________________________ test_batch_encode[cl100k_base] ________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s def test_batch_encode(make_enc: Callable[[], tiktoken.Encoding]): 940s > enc = make_enc() 940s 940s tests/test_encoding.py:222: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _____________________ test_hyp_batch_roundtrip[r50k_base] ______________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'r50k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(batch=st.lists(st.text())) 940s 940s tests/test_encoding.py:237: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_batch_roundtrip( 940s E make_enc=functools.partial(get_encoding, 'r50k_base'), 940s E batch=[], # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ____________________ test_hyp_batch_roundtrip[cl100k_base] _____________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", ENCODING_FACTORIES) 940s > @hypothesis.given(batch=st.lists(st.text())) 940s 940s tests/test_encoding.py:237: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_encoding.py:240: in test_hyp_batch_roundtrip 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_batch_roundtrip( 940s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 940s E batch=[], # or any other generated value 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ___________________________ test_encoding_for_model ____________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_encoding_for_model(): 940s > enc = tiktoken.encoding_for_model("gpt2") 940s 940s tests/test_misc.py:8: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 940s return get_encoding(encoding_name_for_model(model_name)) 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 940s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 940s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ________________________ test_hyp_offsets[cl100k_base] _________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s make_enc = functools.partial(, 'cl100k_base') 940s 940s @pytest.mark.parametrize("make_enc", SOME_ENCODING_FACTORIES) 940s > @hypothesis.given(data=st.data()) 940s 940s tests/test_offsets.py:29: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s tests/test_offsets.py:32: in test_hyp_offsets 940s enc = make_enc() 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s E Falsifying example: test_hyp_offsets( 940s E make_enc=functools.partial(get_encoding, 'cl100k_base'), 940s E data=data(...), 940s E ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ______________________________ test_basic_offsets ______________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/cl100k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/cl100k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_basic_offsets(): 940s > enc = tiktoken.get_encoding("cl100k_base") 940s 940s tests/test_offsets.py:50: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:76: in cl100k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _________________________________ test_pickle __________________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/encodings/r50k_base.tiktoken', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/encodings/r50k_base.tiktoken', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_pickle(): 940s import pickle 940s 940s > enc_old = tiktoken.get_encoding("r50k_base") 940s 940s tests/test_pickle.py:7: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:34: in r50k_base 940s mergeable_ranks = load_tiktoken_bpe( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:144: in load_tiktoken_bpe 940s contents = read_file_cached(tiktoken_bpe_file, expected_hash) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s _________________________________ test_simple __________________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_simple(): 940s # Note that there are more actual tests, they're just not currently public :-) 940s > enc = tiktoken.get_encoding("gpt2") 940s 940s tests/test_simple_public.py:9: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 940s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 940s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s ___________________________ test_encoding_for_model ____________________________ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s > sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:203: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection 940s raise err 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s address = ('openaipublic.blob.core.windows.net', 443), timeout = None 940s source_address = None, socket_options = [(6, 1, 1)] 940s 940s def create_connection( 940s address: tuple[str, int], 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s source_address: tuple[str, int] | None = None, 940s socket_options: _TYPE_SOCKET_OPTIONS | None = None, 940s ) -> socket.socket: 940s """Connect to *address* and return the socket object. 940s 940s Convenience function. Connect to *address* (a 2-tuple ``(host, 940s port)``) and return the socket object. Passing the optional 940s *timeout* parameter will set the timeout on the socket instance 940s before attempting to connect. If no *timeout* is supplied, the 940s global default timeout setting returned by :func:`socket.getdefaulttimeout` 940s is used. If *source_address* is set it must be a tuple of (host, port) 940s for the socket to bind as a source address before making the connection. 940s An host of '' or port 0 tells the OS to use the default. 940s """ 940s 940s host, port = address 940s if host.startswith("["): 940s host = host.strip("[]") 940s err = None 940s 940s # Using the value from allowed_gai_family() in the context of getaddrinfo lets 940s # us select whether to work with IPv4 DNS records, IPv6 records, or both. 940s # The original create_connection function always returns all records. 940s family = allowed_gai_family() 940s 940s try: 940s host.encode("idna") 940s except UnicodeError: 940s raise LocationParseError(f"'{host}', label empty or too long") from None 940s 940s for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 940s af, socktype, proto, canonname, sa = res 940s sock = None 940s try: 940s sock = socket.socket(af, socktype, proto) 940s 940s # If provided, set socket level options before connecting. 940s _set_socket_options(sock, socket_options) 940s 940s if timeout is not _DEFAULT_TIMEOUT: 940s sock.settimeout(timeout) 940s if source_address: 940s sock.bind(source_address) 940s > sock.connect(sa) 940s E ConnectionRefusedError: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', body = None 940s headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 940s retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s redirect = False, assert_same_host = False 940s timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None 940s release_conn = False, chunked = False, body_pos = None, preload_content = False 940s decode_content = False, response_kw = {} 940s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/gpt-2/encodings/main/vocab.bpe', query=None, fragment=None) 940s destination_scheme = None, conn = None, release_this_conn = True 940s http_tunnel_required = False, err = None, clean_exit = False 940s 940s def urlopen( # type: ignore[override] 940s self, 940s method: str, 940s url: str, 940s body: _TYPE_BODY | None = None, 940s headers: typing.Mapping[str, str] | None = None, 940s retries: Retry | bool | int | None = None, 940s redirect: bool = True, 940s assert_same_host: bool = True, 940s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 940s pool_timeout: int | None = None, 940s release_conn: bool | None = None, 940s chunked: bool = False, 940s body_pos: _TYPE_BODY_POSITION | None = None, 940s preload_content: bool = True, 940s decode_content: bool = True, 940s **response_kw: typing.Any, 940s ) -> BaseHTTPResponse: 940s """ 940s Get a connection from the pool and perform an HTTP request. This is the 940s lowest level call for making a request, so you'll need to specify all 940s the raw details. 940s 940s .. note:: 940s 940s More commonly, it's appropriate to use a convenience method 940s such as :meth:`request`. 940s 940s .. note:: 940s 940s `release_conn` will only behave as expected if 940s `preload_content=False` because we want to make 940s `preload_content=False` the default behaviour someday soon without 940s breaking backwards compatibility. 940s 940s :param method: 940s HTTP request method (such as GET, POST, PUT, etc.) 940s 940s :param url: 940s The URL to perform the request on. 940s 940s :param body: 940s Data to send in the request body, either :class:`str`, :class:`bytes`, 940s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 940s 940s :param headers: 940s Dictionary of custom headers to send, such as User-Agent, 940s If-None-Match, etc. If None, pool headers are used. If provided, 940s these headers completely replace any pool-specific headers. 940s 940s :param retries: 940s Configure the number of retries to allow before raising a 940s :class:`~urllib3.exceptions.MaxRetryError` exception. 940s 940s Pass ``None`` to retry until you receive a response. Pass a 940s :class:`~urllib3.util.retry.Retry` object for fine-grained control 940s over different types of retries. 940s Pass an integer number to retry connection errors that many times, 940s but no other types of errors. Pass zero to never retry. 940s 940s If ``False``, then retries are disabled and any exception is raised 940s immediately. Also, instead of raising a MaxRetryError on redirects, 940s the redirect response will be returned. 940s 940s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 940s 940s :param redirect: 940s If True, automatically handle redirects (status codes 301, 302, 940s 303, 307, 308). Each redirect counts as a retry. Disabling retries 940s will disable redirect, too. 940s 940s :param assert_same_host: 940s If ``True``, will make sure that the host of the pool requests is 940s consistent else will raise HostChangedError. When ``False``, you can 940s use the pool on an HTTP proxy and request foreign hosts. 940s 940s :param timeout: 940s If specified, overrides the default timeout for this one 940s request. It may be a float (in seconds) or an instance of 940s :class:`urllib3.util.Timeout`. 940s 940s :param pool_timeout: 940s If set and the pool is set to block=True, then this method will 940s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 940s connection is available within the time period. 940s 940s :param bool preload_content: 940s If True, the response's body will be preloaded into memory. 940s 940s :param bool decode_content: 940s If True, will attempt to decode the body based on the 940s 'content-encoding' header. 940s 940s :param release_conn: 940s If False, then the urlopen call will not release the connection 940s back into the pool once a response is received (but will release if 940s you read the entire contents of the response such as when 940s `preload_content=True`). This is useful if you're not preloading 940s the response's content immediately. You will need to call 940s ``r.release_conn()`` on the response ``r`` to return the connection 940s back into the pool. If None, it takes the value of ``preload_content`` 940s which defaults to ``True``. 940s 940s :param bool chunked: 940s If True, urllib3 will send the body using chunked transfer 940s encoding. Otherwise, urllib3 will send the body using the standard 940s content-length form. Defaults to False. 940s 940s :param int body_pos: 940s Position to seek to in file-like body in the event of a retry or 940s redirect. Typically this won't need to be set because urllib3 will 940s auto-populate the value when needed. 940s """ 940s parsed_url = parse_url(url) 940s destination_scheme = parsed_url.scheme 940s 940s if headers is None: 940s headers = self.headers 940s 940s if not isinstance(retries, Retry): 940s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 940s 940s if release_conn is None: 940s release_conn = preload_content 940s 940s # Check host 940s if assert_same_host and not self.is_same_host(url): 940s raise HostChangedError(self, url, retries) 940s 940s # Ensure that the URL we're connecting to is properly encoded 940s if url.startswith("/"): 940s url = to_str(_encode_target(url)) 940s else: 940s url = to_str(parsed_url.url) 940s 940s conn = None 940s 940s # Track whether `conn` needs to be released before 940s # returning/raising/recursing. Update this variable if necessary, and 940s # leave `release_conn` constant throughout the function. That way, if 940s # the function recurses, the original value of `release_conn` will be 940s # passed down into the recursive call, and its value will be respected. 940s # 940s # See issue #651 [1] for details. 940s # 940s # [1] 940s release_this_conn = release_conn 940s 940s http_tunnel_required = connection_requires_http_tunnel( 940s self.proxy, self.proxy_config, destination_scheme 940s ) 940s 940s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 940s # have to copy the headers dict so we can safely change it without those 940s # changes being reflected in anyone else's copy. 940s if not http_tunnel_required: 940s headers = headers.copy() # type: ignore[attr-defined] 940s headers.update(self.proxy_headers) # type: ignore[union-attr] 940s 940s # Must keep the exception bound to a separate variable or else Python 3 940s # complains about UnboundLocalError. 940s err = None 940s 940s # Keep track of whether we cleanly exited the except block. This 940s # ensures we do proper cleanup in finally. 940s clean_exit = False 940s 940s # Rewind body position, if needed. Record current position 940s # for future rewinds in the event of a redirect/retry. 940s body_pos = set_file_position(body, body_pos) 940s 940s try: 940s # Request a connection from the queue. 940s timeout_obj = self._get_timeout(timeout) 940s conn = self._get_conn(timeout=pool_timeout) 940s 940s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 940s 940s # Is this a closed/new connection that requires CONNECT tunnelling? 940s if self.proxy is not None and http_tunnel_required and conn.is_closed: 940s try: 940s self._prepare_proxy(conn) 940s except (BaseSSLError, OSError, SocketTimeout) as e: 940s self._raise_timeout( 940s err=e, url=self.proxy.url, timeout_value=conn.timeout 940s ) 940s raise 940s 940s # If we're going to release the connection in ``finally:``, then 940s # the response doesn't need to know about the connection. Otherwise 940s # it will also try to release it and we'll have a double-release 940s # mess. 940s response_conn = conn if not release_conn else None 940s 940s # Make the request on the HTTPConnection object 940s > response = self._make_request( 940s conn, 940s method, 940s url, 940s timeout=timeout_obj, 940s body=body, 940s headers=headers, 940s chunked=chunked, 940s retries=retries, 940s response_conn=response_conn, 940s preload_content=preload_content, 940s decode_content=decode_content, 940s **response_kw, 940s ) 940s 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:791: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:492: in _make_request 940s raise new_e 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:468: in _make_request 940s self._validate_conn(conn) 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:1097: in _validate_conn 940s conn.connect() 940s /usr/lib/python3/dist-packages/urllib3/connection.py:611: in connect 940s self.sock = sock = self._new_conn() 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s 940s def _new_conn(self) -> socket.socket: 940s """Establish a socket connection and set nodelay settings on it. 940s 940s :return: New socket connection. 940s """ 940s try: 940s sock = connection.create_connection( 940s (self._dns_host, self.port), 940s self.timeout, 940s source_address=self.source_address, 940s socket_options=self.socket_options, 940s ) 940s except socket.gaierror as e: 940s raise NameResolutionError(self.host, self, e) from e 940s except SocketTimeout as e: 940s raise ConnectTimeoutError( 940s self, 940s f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 940s ) from e 940s 940s except OSError as e: 940s > raise NewConnectionError( 940s self, f"Failed to establish a new connection: {e}" 940s ) from e 940s E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 940s 940s /usr/lib/python3/dist-packages/urllib3/connection.py:218: NewConnectionError 940s 940s The above exception was the direct cause of the following exception: 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s > resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:667: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: in urlopen 940s retries = retries.increment( 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 940s method = 'GET', url = '/gpt-2/encodings/main/vocab.bpe', response = None 940s error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 940s _pool = 940s _stacktrace = 940s 940s def increment( 940s self, 940s method: str | None = None, 940s url: str | None = None, 940s response: BaseHTTPResponse | None = None, 940s error: Exception | None = None, 940s _pool: ConnectionPool | None = None, 940s _stacktrace: TracebackType | None = None, 940s ) -> Retry: 940s """Return a new Retry object with incremented retry counters. 940s 940s :param response: A response object, or None, if the server did not 940s return a response. 940s :type response: :class:`~urllib3.response.BaseHTTPResponse` 940s :param Exception error: An error encountered during the request, or 940s None if the response was received successfully. 940s 940s :return: A new ``Retry`` object. 940s """ 940s if self.total is False and error: 940s # Disabled, indicate to re-raise the error. 940s raise reraise(type(error), error, _stacktrace) 940s 940s total = self.total 940s if total is not None: 940s total -= 1 940s 940s connect = self.connect 940s read = self.read 940s redirect = self.redirect 940s status_count = self.status 940s other = self.other 940s cause = "unknown" 940s status = None 940s redirect_location = None 940s 940s if error and self._is_connection_error(error): 940s # Connect retry? 940s if connect is False: 940s raise reraise(type(error), error, _stacktrace) 940s elif connect is not None: 940s connect -= 1 940s 940s elif error and self._is_read_error(error): 940s # Read retry? 940s if read is False or method is None or not self._is_method_retryable(method): 940s raise reraise(type(error), error, _stacktrace) 940s elif read is not None: 940s read -= 1 940s 940s elif error: 940s # Other retry? 940s if other is not None: 940s other -= 1 940s 940s elif response and response.get_redirect_location(): 940s # Redirect retry? 940s if redirect is not None: 940s redirect -= 1 940s cause = "too many redirects" 940s response_redirect_location = response.get_redirect_location() 940s if response_redirect_location: 940s redirect_location = response_redirect_location 940s status = response.status 940s 940s else: 940s # Incrementing because of a server error like a 500 in 940s # status_forcelist and the given method is in the allowed_methods 940s cause = ResponseError.GENERIC_ERROR 940s if response and response.status: 940s if status_count is not None: 940s status_count -= 1 940s cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 940s status = response.status 940s 940s history = self.history + ( 940s RequestHistory(method, url, error, status, redirect_location), 940s ) 940s 940s new_retry = self.new( 940s total=total, 940s connect=connect, 940s read=read, 940s redirect=redirect, 940s status=status_count, 940s other=other, 940s history=history, 940s ) 940s 940s if new_retry.is_exhausted(): 940s reason = error or ResponseError(cause) 940s > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 940s 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')) 940s 940s /usr/lib/python3/dist-packages/urllib3/util/retry.py:517: MaxRetryError 940s 940s During handling of the above exception, another exception occurred: 940s 940s def test_encoding_for_model(): 940s > enc = tiktoken.encoding_for_model("gpt2") 940s 940s tests/test_simple_public.py:26: 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s /usr/lib/python3/dist-packages/tiktoken/model.py:105: in encoding_for_model 940s return get_encoding(encoding_name_for_model(model_name)) 940s /usr/lib/python3/dist-packages/tiktoken/registry.py:86: in get_encoding 940s enc = Encoding(**constructor()) 940s /usr/lib/python3/dist-packages/tiktoken_ext/openai_public.py:18: in gpt2 940s mergeable_ranks = data_gym_to_mergeable_bpe_ranks( 940s /usr/lib/python3/dist-packages/tiktoken/load.py:103: in data_gym_to_mergeable_bpe_ranks 940s vocab_bpe_contents = read_file_cached(vocab_bpe_file, vocab_bpe_hash).decode() 940s /usr/lib/python3/dist-packages/tiktoken/load.py:63: in read_file_cached 940s contents = read_file(blobpath) 940s /usr/lib/python3/dist-packages/tiktoken/load.py:24: in read_file 940s resp = requests.get(blobpath) 940s /usr/lib/python3/dist-packages/requests/api.py:73: in get 940s return request("get", url, params=params, **kwargs) 940s /usr/lib/python3/dist-packages/requests/api.py:59: in request 940s return session.request(method=method, url=url, **kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 940s resp = self.send(prep, **send_kwargs) 940s /usr/lib/python3/dist-packages/requests/sessions.py:703: in send 940s r = adapter.send(request, **kwargs) 940s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 940s 940s self = 940s request = , stream = False 940s timeout = Timeout(connect=None, read=None, total=None), verify = True 940s cert = None, proxies = OrderedDict() 940s 940s def send( 940s self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 940s ): 940s """Sends PreparedRequest object. Returns Response object. 940s 940s :param request: The :class:`PreparedRequest ` being sent. 940s :param stream: (optional) Whether to stream the request content. 940s :param timeout: (optional) How long to wait for the server to send 940s data before giving up, as a float, or a :ref:`(connect timeout, 940s read timeout) ` tuple. 940s :type timeout: float or tuple or urllib3 Timeout object 940s :param verify: (optional) Either a boolean, in which case it controls whether 940s we verify the server's TLS certificate, or a string, in which case it 940s must be a path to a CA bundle to use 940s :param cert: (optional) Any user-provided SSL certificate to be trusted. 940s :param proxies: (optional) The proxies dictionary to apply to the request. 940s :rtype: requests.Response 940s """ 940s 940s try: 940s conn = self.get_connection_with_tls_context( 940s request, verify, proxies=proxies, cert=cert 940s ) 940s except LocationValueError as e: 940s raise InvalidURL(e, request=request) 940s 940s self.cert_verify(conn, request.url, verify, cert) 940s url = self.request_url(request, proxies) 940s self.add_headers( 940s request, 940s stream=stream, 940s timeout=timeout, 940s verify=verify, 940s cert=cert, 940s proxies=proxies, 940s ) 940s 940s chunked = not (request.body is None or "Content-Length" in request.headers) 940s 940s if isinstance(timeout, tuple): 940s try: 940s connect, read = timeout 940s timeout = TimeoutSauce(connect=connect, read=read) 940s except ValueError: 940s raise ValueError( 940s f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 940s f"or a single float to set both timeouts to the same value." 940s ) 940s elif isinstance(timeout, TimeoutSauce): 940s pass 940s else: 940s timeout = TimeoutSauce(connect=timeout, read=timeout) 940s 940s try: 940s resp = conn.urlopen( 940s method=request.method, 940s url=url, 940s body=request.body, 940s headers=request.headers, 940s redirect=False, 940s assert_same_host=False, 940s preload_content=False, 940s decode_content=False, 940s retries=self.max_retries, 940s timeout=timeout, 940s chunked=chunked, 940s ) 940s 940s except (ProtocolError, OSError) as err: 940s raise ConnectionError(err, request=request) 940s 940s except MaxRetryError as e: 940s if isinstance(e.reason, ConnectTimeoutError): 940s # TODO: Remove this in 3.0.0: see #2811 940s if not isinstance(e.reason, NewConnectionError): 940s raise ConnectTimeout(e, request=request) 940s 940s if isinstance(e.reason, ResponseError): 940s raise RetryError(e, request=request) 940s 940s if isinstance(e.reason, _ProxyError): 940s raise ProxyError(e, request=request) 940s 940s if isinstance(e.reason, _SSLError): 940s # This branch is for urllib3 v1.22 and later. 940s raise SSLError(e, request=request) 940s 940s > raise ConnectionError(e, request=request) 940s 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')) 940s 940s /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError 940s =========================== short test summary info ============================ 940s FAILED tests/test_encoding.py::test_simple - requests.exceptions.ConnectionEr... 940s FAILED tests/test_encoding.py::test_simple_repeated - requests.exceptions.Con... 940s FAILED tests/test_encoding.py::test_simple_regex - requests.exceptions.Connec... 940s FAILED tests/test_encoding.py::test_basic_encode - requests.exceptions.Connec... 940s FAILED tests/test_encoding.py::test_encode_empty - requests.exceptions.Connec... 940s FAILED tests/test_encoding.py::test_encode_bytes - requests.exceptions.Connec... 940s FAILED tests/test_encoding.py::test_encode_surrogate_pairs - requests.excepti... 940s FAILED tests/test_encoding.py::test_catastrophically_repetitive[r50k_base] - ... 940s FAILED tests/test_encoding.py::test_catastrophically_repetitive[cl100k_base] 940s FAILED tests/test_encoding.py::test_basic_roundtrip[r50k_base] - requests.exc... 940s FAILED tests/test_encoding.py::test_basic_roundtrip[cl100k_base] - requests.e... 940s FAILED tests/test_encoding.py::test_hyp_roundtrip[r50k_base] - requests.excep... 940s FAILED tests/test_encoding.py::test_hyp_roundtrip[cl100k_base] - requests.exc... 940s FAILED tests/test_encoding.py::test_single_token_roundtrip[r50k_base] - reque... 940s FAILED tests/test_encoding.py::test_single_token_roundtrip[cl100k_base] - req... 940s FAILED tests/test_encoding.py::test_special_token - requests.exceptions.Conne... 940s FAILED tests/test_encoding.py::test_hyp_special_ordinary[r50k_base] - request... 940s FAILED tests/test_encoding.py::test_hyp_special_ordinary[cl100k_base] - reque... 940s FAILED tests/test_encoding.py::test_batch_encode[r50k_base] - requests.except... 940s FAILED tests/test_encoding.py::test_batch_encode[cl100k_base] - requests.exce... 940s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[r50k_base] - requests... 940s FAILED tests/test_encoding.py::test_hyp_batch_roundtrip[cl100k_base] - reques... 940s FAILED tests/test_misc.py::test_encoding_for_model - requests.exceptions.Conn... 940s FAILED tests/test_offsets.py::test_hyp_offsets[cl100k_base] - requests.except... 940s FAILED tests/test_offsets.py::test_basic_offsets - requests.exceptions.Connec... 940s FAILED tests/test_pickle.py::test_pickle - requests.exceptions.ConnectionErro... 940s FAILED tests/test_simple_public.py::test_simple - requests.exceptions.Connect... 940s FAILED tests/test_simple_public.py::test_encoding_for_model - requests.except... 940s =================== 28 failed, 2 passed in 590.70s (0:09:50) =================== 940s autopkgtest [15:22:19]: test pybuild-autopkgtest: -----------------------] 941s pybuild-autopkgtest FAIL non-zero exit status 25 941s autopkgtest [15:22:20]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 941s autopkgtest [15:22:20]: @@@@@@@@@@@@@@@@@@@@ summary 941s pybuild-autopkgtest FAIL non-zero exit status 25 953s virt: nova [W] Using flock in prodstack6-s390x 953s virt: Creating nova instance adt-plucky-s390x-tiktoken-20241109-150639-juju-7f2275-prod-proposed-migration-environment-2-d2407177-489a-4faf-bad7-e130a6e44cdd from image adt/ubuntu-plucky-s390x-server-20241109.img (UUID 3dcdd533-c66f-4d57-9732-52a74843bc00)...