Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Still don't see retry on request or body error when fetching metadata #9246

Closed
notatallshaw-gts opened this issue Nov 19, 2024 · 16 comments · Fixed by #9253
Closed

Still don't see retry on request or body error when fetching metadata #9246

notatallshaw-gts opened this issue Nov 19, 2024 · 16 comments · Fixed by #9253
Assignees
Labels
bug Something isn't working

Comments

@notatallshaw-gts
Copy link

notatallshaw-gts commented Nov 19, 2024

uv 0.5.3, inside a docker build script installed via COPY --from=ghcr.io/astral-sh/uv:0.5.3 /uv /uvx /bin/.

Follow up to #8144

uv trace logs enabled by ENV RUST_LOG=uv=trace

#15 [stage-0 10/17] RUN uv pip install     --no-progress     -r /requirement...
#15 0.229 DEBUG uv 0.5.3

...

#15 3.212 DEBUG Adding transitive dependency for odfpy==1.4.1: defusedxml*
#15 3.212 DEBUG Adding transitive dependency for odfpy==1.4.1: defusedxml>=0.7.1, <0.7.1+
#15 3.212 TRACE Fetching metadata for defusedxml from https://pypi.org/simple/defusedxml/
#15 3.212 DEBUG Searching for a compatible version of openpyxl (>=3.1.5, <3.1.5+)
#15 3.212 TRACE Selecting candidate for openpyxl with range >=3.1.5, <3.1.5+ with 96 remote versions
#15 3.212 TRACE Found candidate for package openpyxl with range >=3.1.5, <3.1.5+ after 2 steps: 3.1.5 version
#15 3.212 TRACE Returning candidate for package openpyxl with range >=3.1.5, <3.1.5+ after 2 steps
#15 3.212 DEBUG Selecting: openpyxl==3.1.5 [compatible] (openpyxl-3.1.5-py2.py3-none-any.whl)
#15 3.212 DEBUG Adding transitive dependency for openpyxl==3.1.5: et-xmlfile*
#15 3.212 DEBUG Adding transitive dependency for openpyxl==3.1.5: et-xmlfile>=2.0.0, <2.0.0+
#15 3.212 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/defusedxml.rkyv
#15 3.212 DEBUG No cache entry for: https://pypi.org/simple/defusedxml/
#15 3.212 TRACE Sending fresh GET request for https://pypi.org/simple/defusedxml/
#15 3.212 DEBUG Searching for a compatible version of pyxlsb (>=1.0.10, <1.0.10+)
#15 3.212 TRACE Selecting candidate for pyxlsb with range >=1.0.10, <1.0.10+ with 10 remote versions
#15 3.212 TRACE Handling request for https://pypi.org/simple/defusedxml/
#15 3.212 TRACE Found candidate for package pyxlsb with range >=1.0.10, <1.0.10+ after 1 steps: 1.0.10 version
#15 3.212 TRACE Request for https://pypi.org/simple/defusedxml/ is unauthenticated, checking cache
#15 3.212 TRACE Returning candidate for package pyxlsb with range >=1.0.10, <1.0.10+ after 1 steps
#15 3.212 TRACE No credentials in cache for URL https://pypi.org/simple/defusedxml/
#15 3.212 DEBUG Selecting: pyxlsb==1.0.10 [compatible] (pyxlsb-1.0.10-py2.py3-none-any.whl)
#15 3.212 TRACE Attempting unauthenticated request for https://pypi.org/simple/defusedxml/
#15 3.213 DEBUG Searching for a compatible version of xlrd (>=2.0.1, <2.0.1+)
#15 3.213 TRACE Fetching metadata for et-xmlfile from https://pypi.org/simple/et-xmlfile/
#15 3.213 TRACE Selecting candidate for xlrd with range >=2.0.1, <2.0.1+ with 24 remote versions
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/et-xmlfile.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/et-xmlfile/
#15 3.213 TRACE Found candidate for package xlrd with range >=2.0.1, <2.0.1+ after 1 steps: 2.0.1 version
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/et-xmlfile/
#15 3.213 TRACE Returning candidate for package xlrd with range >=2.0.1, <2.0.1+ after 1 steps
#15 3.213 TRACE Handling request for https://pypi.org/simple/et-xmlfile/
#15 3.213 TRACE Request for https://pypi.org/simple/et-xmlfile/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/et-xmlfile/
#15 3.213 DEBUG Selecting: xlrd==2.0.1 [compatible] (xlrd-2.0.1-py2.py3-none-any.whl)
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/et-xmlfile/
#15 3.213 DEBUG Searching for a compatible version of jinja2 (>=3.1.4, <3.1.4+)
#15 3.213 TRACE Selecting candidate for jinja2 with range >=3.1.4, <3.1.4+ with 50 remote versions
#15 3.213 TRACE Found candidate for package jinja2 with range >=3.1.4, <3.1.4+ after 1 steps: 3.1.4 version
#15 3.213 TRACE Returning candidate for package jinja2 with range >=3.1.4, <3.1.4+ after 1 steps
#15 3.213 DEBUG Selecting: jinja2==3.1.4 [compatible] (jinja2-3.1.4-py3-none-any.whl)
#15 3.213 DEBUG Adding transitive dependency for jinja2==3.1.4: markupsafe>=2.0
#15 3.213 DEBUG Adding transitive dependency for jinja2==3.1.4: markupsafe>=3.0.2, <3.0.2+
#15 3.213 DEBUG Searching for a compatible version of tabulate (>=0.9.0, <0.9.0+)
#15 3.213 TRACE Selecting candidate for tabulate with range >=0.9.0, <0.9.0+ with 28 remote versions
#15 3.213 TRACE Fetching metadata for markupsafe from https://pypi.org/simple/markupsafe/
#15 3.213 TRACE Found candidate for package tabulate with range >=0.9.0, <0.9.0+ after 1 steps: 0.9.0 version
#15 3.213 TRACE Returning candidate for package tabulate with range >=0.9.0, <0.9.0+ after 1 steps
#15 3.213 DEBUG Selecting: tabulate==0.9.0 [compatible] (tabulate-0.9.0-py3-none-any.whl)
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/markupsafe.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/markupsafe/
#15 3.213 DEBUG Searching for a compatible version of matplotlib (>=3.9.2, <3.9.2+)
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/markupsafe/
#15 3.213 TRACE Selecting candidate for matplotlib with range >=3.9.2, <3.9.2+ with 100 remote versions
#15 3.213 TRACE Handling request for https://pypi.org/simple/markupsafe/
#15 3.213 TRACE Found candidate for package matplotlib with range >=3.9.2, <3.9.2+ after 2 steps: 3.9.2 version
#15 3.213 TRACE Request for https://pypi.org/simple/markupsafe/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/markupsafe/
#15 3.213 TRACE Returning candidate for package matplotlib with range >=3.9.2, <3.9.2+ after 2 steps
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/markupsafe/
#15 3.213 DEBUG Selecting: matplotlib==3.9.2 [compatible] (matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl)
#15 3.213 TRACE skipping importlib-resources>=3.2.0 ; python_full_version < '3.10' because of Requires-Python: >=3.11.10
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: contourpy>=1.0.1
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: contourpy>=1.3.1, <1.3.1+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: cycler>=0.10
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: cycler>=0.12.1, <0.12.1+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: fonttools>=4.22.0
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: fonttools>=4.54.1, <4.54.1+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: kiwisolver>=1.3.1
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: kiwisolver>=1.4.7, <1.4.7+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: numpy>=1.23
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: numpy>=1.26.4, <1.26.4+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: packaging>=20.0
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: packaging>=24.2, <24.2+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: pillow>=8
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: pillow>=11.0.0, <11.0.0+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: pyparsing>=2.3.1
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: pyparsing>=3.2.0, <3.2.0+
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: python-dateutil>=2.7
#15 3.213 DEBUG Adding transitive dependency for matplotlib==3.9.2: python-dateutil>=2.9.0.post0, <2.9.0.post0+
#15 3.213 TRACE Fetching metadata for contourpy from https://pypi.org/simple/contourpy/
#15 3.213 DEBUG Searching for a compatible version of html5lib (>=1.1, <1.1+)
#15 3.213 TRACE Selecting candidate for html5lib with range >=1.1, <1.1+ with 26 remote versions
#15 3.213 TRACE Found candidate for package html5lib with range >=1.1, <1.1+ after 1 steps: 1.1 version
#15 3.213 TRACE Fetching metadata for cycler from https://pypi.org/simple/cycler/
#15 3.213 TRACE Returning candidate for package html5lib with range >=1.1, <1.1+ after 1 steps
#15 3.213 DEBUG Selecting: html5lib==1.1 [compatible] (html5lib-1.1-py2.py3-none-any.whl)
#15 3.213 TRACE Fetching metadata for fonttools from https://pypi.org/simple/fonttools/
#15 3.213 TRACE Fetching metadata for kiwisolver from https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE Fetching metadata for pillow from https://pypi.org/simple/pillow/
#15 3.213 DEBUG Adding transitive dependency for html5lib==1.1: six>=1.9
#15 3.213 TRACE Fetching metadata for pyparsing from https://pypi.org/simple/pyparsing/
#15 3.213 DEBUG Adding transitive dependency for html5lib==1.1: six>=1.16.0, <1.16.0+
#15 3.213 DEBUG Adding transitive dependency for html5lib==1.1: webencodings*
#15 3.213 DEBUG Adding transitive dependency for html5lib==1.1: webencodings>=0.5.1, <0.5.1+
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/cycler.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/cycler/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/cycler/
#15 3.213 TRACE Handling request for https://pypi.org/simple/cycler/
#15 3.213 DEBUG Searching for a compatible version of lxml (>=5.3.0, <5.3.0+)
#15 3.213 TRACE Request for https://pypi.org/simple/cycler/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/cycler/
#15 3.213 TRACE Selecting candidate for lxml with range >=5.3.0, <5.3.0+ with 114 remote versions
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/cycler/
#15 3.213 TRACE Found candidate for package lxml with range >=5.3.0, <5.3.0+ after 1 steps: 5.3.0 version
#15 3.213 TRACE Returning candidate for package lxml with range >=5.3.0, <5.3.0+ after 1 steps
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/contourpy.rkyv
#15 3.213 DEBUG Selecting: lxml==5.3.0 [compatible] (lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl)
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/contourpy/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/contourpy/
#15 3.213 TRACE Handling request for https://pypi.org/simple/contourpy/
#15 3.213 TRACE Request for https://pypi.org/simple/contourpy/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/contourpy/
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/contourpy/
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/fonttools.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/fonttools/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/fonttools/
#15 3.213 TRACE Handling request for https://pypi.org/simple/fonttools/
#15 3.213 TRACE Request for https://pypi.org/simple/fonttools/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/fonttools/
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/fonttools/
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/kiwisolver.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE Handling request for https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE Request for https://pypi.org/simple/kiwisolver/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/kiwisolver/
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/pyparsing.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/pyparsing/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/pyparsing/
#15 3.213 TRACE Handling request for https://pypi.org/simple/pyparsing/
#15 3.213 TRACE Request for https://pypi.org/simple/pyparsing/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/pyparsing/
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/pyparsing/
#15 3.213 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/pillow.rkyv
#15 3.213 DEBUG No cache entry for: https://pypi.org/simple/pillow/
#15 3.213 TRACE Sending fresh GET request for https://pypi.org/simple/pillow/
#15 3.213 TRACE Handling request for https://pypi.org/simple/pillow/
#15 3.213 TRACE Request for https://pypi.org/simple/pillow/ is unauthenticated, checking cache
#15 3.213 TRACE No credentials in cache for URL https://pypi.org/simple/pillow/
#15 3.213 TRACE Attempting unauthenticated request for https://pypi.org/simple/pillow/
#15 3.214 TRACE Fetching metadata for webencodings from https://pypi.org/simple/webencodings/
#15 3.214 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/webencodings.rkyv
#15 3.214 DEBUG No cache entry for: https://pypi.org/simple/webencodings/
#15 3.214 TRACE Sending fresh GET request for https://pypi.org/simple/webencodings/
#15 3.214 TRACE Handling request for https://pypi.org/simple/webencodings/
#15 3.214 TRACE Request for https://pypi.org/simple/webencodings/ is unauthenticated, checking cache
#15 3.214 TRACE No credentials in cache for URL https://pypi.org/simple/webencodings/
#15 3.214 TRACE Attempting unauthenticated request for https://pypi.org/simple/webencodings/
#15 3.214 DEBUG Searching for a compatible version of bottleneck (>=1.4.2, <1.4.2+)
#15 3.214 TRACE Selecting candidate for bottleneck with range >=1.4.2, <1.4.2+ with 44 remote versions
#15 3.214 TRACE Found candidate for package bottleneck with range >=1.4.2, <1.4.2+ after 1 steps: 1.4.2 version
#15 3.214 TRACE Returning candidate for package bottleneck with range >=1.4.2, <1.4.2+ after 1 steps
#15 3.214 DEBUG Selecting: bottleneck==1.4.2 [compatible] (Bottleneck-1.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl)
#15 3.214 DEBUG Adding transitive dependency for bottleneck==1.4.2: numpy*
#15 3.214 DEBUG Adding transitive dependency for bottleneck==1.4.2: numpy>=1.26.4, <1.26.4+
#15 3.214 DEBUG Searching for a compatible version of numba (>=0.60.0, <0.60.0+)
#15 3.214 TRACE Selecting candidate for numba with range >=0.60.0, <0.60.0+ with 113 remote versions
#15 3.214 TRACE Found candidate for package numba with range >=0.60.0, <0.60.0+ after 1 steps: 0.60.0 version
#15 3.214 TRACE Returning candidate for package numba with range >=0.60.0, <0.60.0+ after 1 steps
#15 3.214 DEBUG Selecting: numba==0.60.0 [compatible] (numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl)
#15 3.215 DEBUG Adding transitive dependency for numba==0.60.0: llvmlite>=0.43.0.dev0, <0.44
#15 3.215 DEBUG Adding transitive dependency for numba==0.60.0: llvmlite>=0.43.0, <0.43.0+
#15 3.215 DEBUG Adding transitive dependency for numba==0.60.0: numpy>=1.22, <2.1
#15 3.215 DEBUG Adding transitive dependency for numba==0.60.0: numpy>=1.26.4, <1.26.4+
#15 3.215 DEBUG Searching for a compatible version of numexpr (>=2.10.1, <2.10.1+)
#15 3.215 TRACE Fetching metadata for llvmlite from https://pypi.org/simple/llvmlite/
#15 3.215 TRACE Selecting candidate for numexpr with range >=2.10.1, <2.10.1+ with 51 remote versions
#15 3.215 TRACE Found candidate for package numexpr with range >=2.10.1, <2.10.1+ after 1 steps: 2.10.1 version
#15 3.215 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/llvmlite.rkyv
#15 3.215 TRACE Returning candidate for package numexpr with range >=2.10.1, <2.10.1+ after 1 steps
#15 3.215 DEBUG No cache entry for: https://pypi.org/simple/llvmlite/
#15 3.215 TRACE Sending fresh GET request for https://pypi.org/simple/llvmlite/
#15 3.215 DEBUG Selecting: numexpr==2.10.1 [compatible] (numexpr-2.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl)
#15 3.215 TRACE Handling request for https://pypi.org/simple/llvmlite/
#15 3.215 TRACE Request for https://pypi.org/simple/llvmlite/ is unauthenticated, checking cache
#15 3.215 TRACE No credentials in cache for URL https://pypi.org/simple/llvmlite/
#15 3.215 TRACE Attempting unauthenticated request for https://pypi.org/simple/llvmlite/
#15 3.215 DEBUG Adding transitive dependency for numexpr==2.10.1: numpy>=1.23.0
#15 3.215 DEBUG Adding transitive dependency for numexpr==2.10.1: numpy>=1.26.4, <1.26.4+
#15 3.215 DEBUG Searching for a compatible version of scipy (>=1.14.1, <1.14.1+)
#15 3.215 TRACE Selecting candidate for scipy with range >=1.14.1, <1.14.1+ with 83 remote versions
#15 3.215 TRACE Found candidate for package scipy with range >=1.14.1, <1.14.1+ after 1 steps: 1.14.1 version
#15 3.215 TRACE Returning candidate for package scipy with range >=1.14.1, <1.14.1+ after 1 steps
#15 3.215 DEBUG Selecting: scipy==1.14.1 [compatible] (scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl)
#15 3.215 DEBUG Adding transitive dependency for scipy==1.14.1: numpy>=1.23.5, <2.3
#15 3.215 DEBUG Adding transitive dependency for scipy==1.14.1: numpy>=1.26.4, <1.26.4+
#15 3.215 DEBUG Searching for a compatible version of xarray (>=2024.10.0, <2024.10.0+)
#15 3.215 TRACE Selecting candidate for xarray with range >=2024.10.0, <2024.10.0+ with 84 remote versions
#15 3.215 TRACE Found candidate for package xarray with range >=2024.10.0, <2024.10.0+ after 1 steps: 2024.10.0 version
#15 3.215 TRACE Returning candidate for package xarray with range >=2024.10.0, <2024.10.0+ after 1 steps
#15 3.215 DEBUG Selecting: xarray==2024.10.0 [compatible] (xarray-2024.10.0-py3-none-any.whl)
#15 3.215 TRACE skipping pydap ; python_full_version < '3.10' and extra == 'io' because of Requires-Python: >=3.11.10
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: numpy>=1.24
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: numpy>=1.26.4, <1.26.4+
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: packaging>=23.1
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: packaging>=24.2, <24.2+
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: pandas>=2.1
#15 3.215 DEBUG Adding transitive dependency for xarray==2024.10.0: pandas>=2.1.4, <2.1.4+
#15 3.215 DEBUG Searching for a compatible version of greenlet{(python_full_version >= '3' and platform_machine == 'AMD64') or (python_full_version >= '3' and platform_machine == 'WIN32') or (python_full_version >= '3' and platform_machine == 'aarch64') or (python_full_version >= '3' and platform_machine == 'amd64') or (python_full_version >= '3' and platform_machine == 'ppc64le') or (python_full_version >= '3' and platform_machine == 'win32') or (python_full_version >= '3' and platform_machine == 'x86_64')} (>=3.1.1, <3.1.1+)
#15 3.215 TRACE Selecting candidate for greenlet with range >=3.1.1, <3.1.1+ with 52 remote versions
#15 3.215 TRACE Found candidate for package greenlet with range >=3.1.1, <3.1.1+ after 1 steps: 3.1.1 version
#15 3.215 TRACE Returning candidate for package greenlet with range >=3.1.1, <3.1.1+ after 1 steps
#15 3.215 DEBUG Selecting: greenlet==3.1.1 [compatible] (greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl)
#15 3.215 DEBUG Adding transitive dependency for greenlet==3.1.1: greenlet==3.1.1
#15 3.215 DEBUG Adding transitive dependency for greenlet==3.1.1: greenlet{(python_full_version >= '3' and platform_machine == 'AMD64') or (python_full_version >= '3' and platform_machine == 'WIN32') or (python_full_version >= '3' and platform_machine == 'aarch64') or (python_full_version >= '3' and platform_machine == 'amd64') or (python_full_version >= '3' and platform_machine == 'ppc64le') or (python_full_version >= '3' and platform_machine == 'win32') or (python_full_version >= '3' and platform_machine == 'x86_64')}==3.1.1
#15 3.215 TRACE Selecting candidate for greenlet with range ==3.1.1 with 52 remote versions
#15 3.215 TRACE Found candidate for package greenlet with range ==3.1.1 after 1 steps: 3.1.1 version
#15 3.215 TRACE Returning candidate for package greenlet with range ==3.1.1 after 1 steps
#15 3.215 DEBUG Searching for a compatible version of greenlet{(python_full_version >= '3' and platform_machine == 'AMD64') or (python_full_version >= '3' and platform_machine == 'WIN32') or (python_full_version >= '3' and platform_machine == 'aarch64') or (python_full_version >= '3' and platform_machine == 'amd64') or (python_full_version >= '3' and platform_machine == 'ppc64le') or (python_full_version >= '3' and platform_machine == 'win32') or (python_full_version >= '3' and platform_machine == 'x86_64')} (==3.1.1)
#15 3.215 TRACE Selecting candidate for greenlet with range ==3.1.1 with 52 remote versions
#15 3.215 TRACE Found candidate for package greenlet with range ==3.1.1 after 1 steps: 3.1.1 version
#15 3.215 TRACE Returning candidate for package greenlet with range ==3.1.1 after 1 steps
#15 3.215 DEBUG Selecting: greenlet==3.1.1 [compatible] (greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl)
#15 3.216 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/greenlet/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.msgpack
#15 3.216 DEBUG No cache entry for: https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata
#15 3.216 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata
#15 3.216 TRACE Handling request for https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata
#15 3.216 TRACE Request for https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata is unauthenticated, checking cache
#15 3.216 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata
#15 3.216 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata
#15 3.217 TRACE cached request https://pypi.org/simple/et-xmlfile/ is storable because its response has a 'public' cache-control directive
#15 3.217 TRACE cached request https://pypi.org/simple/markupsafe/ is storable because its response has a 'public' cache-control directive
#15 3.217 TRACE Received package metadata for: et-xmlfile
#15 3.217 TRACE Selecting candidate for et-xmlfile with range >=2.0.0, <2.0.0+ with 4 remote versions
#15 3.217 TRACE Found candidate for package et-xmlfile with range >=2.0.0, <2.0.0+ after 1 steps: 2.0.0 version
#15 3.217 TRACE Returning candidate for package et-xmlfile with range >=2.0.0, <2.0.0+ after 1 steps
#15 3.217 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/et-xmlfile/et_xmlfile-2.0.0-py3-none-any.msgpack
#15 3.217 DEBUG No cache entry for: https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
#15 3.217 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
#15 3.217 TRACE Handling request for https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
#15 3.217 TRACE Request for https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata is unauthenticated, checking cache
#15 3.217 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
#15 3.217 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata
#15 3.218 TRACE cached request https://pypi.org/simple/contourpy/ is storable because its response has a 'public' cache-control directive
#15 3.218 TRACE cached request https://pypi.org/simple/webencodings/ is storable because its response has a 'public' cache-control directive
#15 3.218 TRACE Received package metadata for: webencodings
#15 3.218 TRACE Selecting candidate for webencodings with range >=0.5.1, <0.5.1+ with 6 remote versions
#15 3.218 TRACE Found candidate for package webencodings with range >=0.5.1, <0.5.1+ after 1 steps: 0.5.1 version
#15 3.218 TRACE Returning candidate for package webencodings with range >=0.5.1, <0.5.1+ after 1 steps
#15 3.218 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/webencodings/webencodings-0.5.1-py2.py3-none-any.msgpack
#15 3.218 DEBUG No cache entry for: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata
#15 3.218 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata
#15 3.218 TRACE Handling request for https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata
#15 3.218 TRACE Request for https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata is unauthenticated, checking cache
#15 3.218 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata
#15 3.218 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata
#15 3.219 TRACE cached request https://pypi.org/simple/kiwisolver/ is storable because its response has a 'public' cache-control directive
#15 3.219 TRACE cached request https://pypi.org/simple/cycler/ is storable because its response has a 'public' cache-control directive
#15 3.220 TRACE cached request https://pypi.org/simple/fonttools/ is storable because its response has a 'public' cache-control directive
#15 3.220 TRACE cached request https://pypi.org/simple/llvmlite/ is storable because its response has a 'public' cache-control directive
#15 3.221 TRACE Received package metadata for: cycler
#15 3.221 TRACE Selecting candidate for cycler with range >=0.12.1, <0.12.1+ with 6 remote versions
#15 3.221 TRACE Found candidate for package cycler with range >=0.12.1, <0.12.1+ after 1 steps: 0.12.1 version
#15 3.221 TRACE Returning candidate for package cycler with range >=0.12.1, <0.12.1+ after 1 steps
#15 3.222 TRACE cached request https://pypi.org/simple/pyparsing/ is storable because its response has a 'public' cache-control directive
#15 3.222 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/cycler/cycler-0.12.1-py3-none-any.msgpack
#15 3.222 DEBUG No cache entry for: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
#15 3.222 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
#15 3.222 TRACE Handling request for https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
#15 3.222 TRACE Request for https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata is unauthenticated, checking cache
#15 3.222 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
#15 3.222 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
#15 3.222 TRACE cached request https://pypi.org/simple/defusedxml/ is storable because its response has a 'public' cache-control directive
#15 3.223 TRACE Received package metadata for: defusedxml
#15 3.223 TRACE cached request https://pypi.org/simple/pillow/ is storable because its response has a 'public' cache-control directive
#15 3.223 TRACE Selecting candidate for defusedxml with range >=0.7.1, <0.7.1+ with 13 remote versions
#15 3.223 TRACE Found candidate for package defusedxml with range >=0.7.1, <0.7.1+ after 3 steps: 0.7.1 version
#15 3.223 TRACE Returning candidate for package defusedxml with range >=0.7.1, <0.7.1+ after 3 steps
#15 3.223 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/defusedxml/defusedxml-0.7.1-py2.py3-none-any.msgpack
#15 3.223 DEBUG No cache entry for: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata
#15 3.223 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata
#15 3.223 TRACE Handling request for https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata
#15 3.223 TRACE Request for https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata is unauthenticated, checking cache
#15 3.223 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata
#15 3.223 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata
#15 3.224 TRACE cached request https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl.metadata is storable because its response has a 'public' cache-control directive
#15 3.225 TRACE Received built distribution metadata for: webencodings==0.5.1
#15 3.225 TRACE cached request https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata is storable because its response has a 'public' cache-control directive
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.1.win32.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.2.win32.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py2.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py2.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.3.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py2.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py2.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.4.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py2.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py2.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.5.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py2.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py2.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.6.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.7.win32-py2.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.7.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-1.5.7.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.0.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.0.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.0.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.0.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.1.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.2.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py3.0.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py3.1.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.3.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.4.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.4.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.4.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.4.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.4.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.5.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.5.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.5.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.5.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.5.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.6.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.6.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.6.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.6.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.6.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py3.2.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.0.7.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.0.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.0.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.0.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.0.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.0.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.1.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.1.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.1.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.1.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.1.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.10.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.10.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.10.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.10.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.10.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.2.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.2.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.2.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.2.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.2.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.3.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.3.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.3.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.3.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.3.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.4.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.4.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.4.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.4.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.4.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.5.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.5.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.5.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.5.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.5.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.6.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.6.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.6.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.6.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.6.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.7.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.7.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.7.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.7.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.7.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.8.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.8.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.8.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.8.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.8.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.9.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.9.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.9.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.9.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.1.9.win32-py3.5.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.2.0.win32-py2.6.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.2.0.win32-py2.7.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.2.0.win32-py3.3.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.2.0.win32-py3.4.exe
#15 3.227 WARN Skipping file for pyparsing: pyparsing-2.2.0.win32-py3.5.exe
#15 3.228 TRACE Received built distribution metadata for: greenlet==3.1.1
#15 3.228 DEBUG Searching for a compatible version of greenlet (==3.1.1)
#15 3.228 TRACE Selecting candidate for greenlet with range ==3.1.1 with 52 remote versions
#15 3.228 TRACE Found candidate for package greenlet with range ==3.1.1 after 1 steps: 3.1.1 version
#15 3.228 TRACE Returning candidate for package greenlet with range ==3.1.1 after 1 steps
#15 3.228 DEBUG Selecting: greenlet==3.1.1 [compatible] (greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl)
#15 3.229 TRACE Received package metadata for: pyparsing
#15 3.229 TRACE Selecting candidate for pyparsing with range >=3.2.0, <3.2.0+ with 75 remote versions
#15 3.229 TRACE Found candidate for package pyparsing with range >=3.2.0, <3.2.0+ after 1 steps: 3.2.0 version
#15 3.229 TRACE Returning candidate for package pyparsing with range >=3.2.0, <3.2.0+ after 1 steps
#15 3.229 DEBUG Searching for a compatible version of pytzdata (>=2020.1, <2020.1+)
#15 3.229 TRACE Selecting candidate for pytzdata with range >=2020.1, <2020.1+ with 22 remote versions
#15 3.229 TRACE Found candidate for package pytzdata with range >=2020.1, <2020.1+ after 1 steps: 2020.1 version
#15 3.229 TRACE Returning candidate for package pytzdata with range >=2020.1, <2020.1+ after 1 steps
#15 3.229 DEBUG Selecting: pytzdata==2020.1 [compatible] (pytzdata-2020.1-py2.py3-none-any.whl)
#15 3.229 DEBUG Searching for a compatible version of pyhcl (>=0.4.5, <0.4.5+)
#15 3.229 TRACE Selecting candidate for pyhcl with range >=0.4.5, <0.4.5+ with 40 remote versions
#15 3.229 TRACE Found candidate for package pyhcl with range >=0.4.5, <0.4.5+ after 1 steps: 0.4.5 version
#15 3.229 TRACE Returning candidate for package pyhcl with range >=0.4.5, <0.4.5+ after 1 steps
#15 3.229 DEBUG Selecting: pyhcl==0.4.5 [compatible] (pyhcl-0.4.5-py3-none-any.whl)
#15 3.229 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/pyparsing/pyparsing-3.2.0-py3-none-any.msgpack
#15 3.229 DEBUG Searching for a compatible version of soupsieve (>=2.6, <2.6+)
#15 3.229 DEBUG No cache entry for: https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata
#15 3.229 TRACE Selecting candidate for soupsieve with range >=2.6, <2.6+ with 46 remote versions
#15 3.229 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata
#15 3.229 TRACE Found candidate for package soupsieve with range >=2.6, <2.6+ after 1 steps: 2.6 version
#15 3.229 TRACE Returning candidate for package soupsieve with range >=2.6, <2.6+ after 1 steps
#15 3.229 TRACE Handling request for https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata
#15 3.229 DEBUG Selecting: soupsieve==2.6 [compatible] (soupsieve-2.6-py3-none-any.whl)
#15 3.229 TRACE Request for https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata is unauthenticated, checking cache
#15 3.229 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata
#15 3.229 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl.metadata
#15 3.229 DEBUG Searching for a compatible version of cryptography (>=43.0.3, <43.0.3+)
#15 3.229 TRACE Selecting candidate for cryptography with range >=43.0.3, <43.0.3+ with 133 remote versions
#15 3.229 TRACE Found candidate for package cryptography with range >=43.0.3, <43.0.3+ after 1 steps: 43.0.3 version
#15 3.229 TRACE Returning candidate for package cryptography with range >=43.0.3, <43.0.3+ after 1 steps
#15 3.229 DEBUG Selecting: cryptography==43.0.3 [compatible] (cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl)
#15 3.229 DEBUG Adding transitive dependency for cryptography==43.0.3: cffi{platform_python_implementation != 'PyPy'}>=1.12
#15 3.229 DEBUG Adding transitive dependency for cryptography==43.0.3: cffi{platform_python_implementation != 'PyPy'}>=1.17.1, <1.17.1+
#15 3.229 DEBUG Searching for a compatible version of packaging (>=24.2, <24.2+)
#15 3.229 TRACE Selecting candidate for packaging with range >=24.2, <24.2+ with 46 remote versions
#15 3.229 TRACE Found candidate for package packaging with range >=24.2, <24.2+ after 1 steps: 24.2 version
#15 3.229 TRACE Returning candidate for package packaging with range >=24.2, <24.2+ after 1 steps
#15 3.229 DEBUG Selecting: packaging==24.2 [compatible] (packaging-24.2-py3-none-any.whl)
#15 3.229 DEBUG Searching for a compatible version of charset-normalizer (>=3.4.0, <3.4.0+)
#15 3.229 TRACE Selecting candidate for charset-normalizer with range >=3.4.0, <3.4.0+ with 54 remote versions
#15 3.229 TRACE Found candidate for package charset-normalizer with range >=3.4.0, <3.4.0+ after 1 steps: 3.4.0 version
#15 3.229 TRACE Returning candidate for package charset-normalizer with range >=3.4.0, <3.4.0+ after 1 steps
#15 3.229 DEBUG Selecting: charset-normalizer==3.4.0 [compatible] (charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl)
#15 3.229 DEBUG Searching for a compatible version of idna (>=3.10, <3.10+)
#15 3.229 TRACE Selecting candidate for idna with range >=3.10, <3.10+ with 32 remote versions
#15 3.229 TRACE Found candidate for package idna with range >=3.10, <3.10+ after 1 steps: 3.10 version
#15 3.229 TRACE Returning candidate for package idna with range >=3.10, <3.10+ after 1 steps
#15 3.229 DEBUG Selecting: idna==3.10 [compatible] (idna-3.10-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of urllib3 (>=2.2.3, <2.2.3+)
#15 3.230 TRACE Selecting candidate for urllib3 with range >=2.2.3, <2.2.3+ with 96 remote versions
#15 3.230 TRACE Found candidate for package urllib3 with range >=2.2.3, <2.2.3+ after 1 steps: 2.2.3 version
#15 3.230 TRACE Returning candidate for package urllib3 with range >=2.2.3, <2.2.3+ after 1 steps
#15 3.230 DEBUG Selecting: urllib3==2.2.3 [compatible] (urllib3-2.2.3-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of certifi (>=2024.8.30, <2024.8.30+)
#15 3.230 TRACE Selecting candidate for certifi with range >=2024.8.30, <2024.8.30+ with 60 remote versions
#15 3.230 TRACE Found candidate for package certifi with range >=2024.8.30, <2024.8.30+ after 1 steps: 2024.8.30 version
#15 3.230 TRACE Returning candidate for package certifi with range >=2024.8.30, <2024.8.30+ after 1 steps
#15 3.230 DEBUG Selecting: certifi==2024.8.30 [compatible] (certifi-2024.8.30-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of joblib (>=1.4.2, <1.4.2+)
#15 3.230 TRACE Selecting candidate for joblib with range >=1.4.2, <1.4.2+ with 95 remote versions
#15 3.230 TRACE Found candidate for package joblib with range >=1.4.2, <1.4.2+ after 1 steps: 1.4.2 version
#15 3.230 TRACE Returning candidate for package joblib with range >=1.4.2, <1.4.2+ after 1 steps
#15 3.230 DEBUG Selecting: joblib==1.4.2 [compatible] (joblib-1.4.2-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of threadpoolctl (>=3.5.0, <3.5.0+)
#15 3.230 TRACE Selecting candidate for threadpoolctl with range >=3.5.0, <3.5.0+ with 11 remote versions
#15 3.230 TRACE Found candidate for package threadpoolctl with range >=3.5.0, <3.5.0+ after 1 steps: 3.5.0 version
#15 3.230 TRACE Returning candidate for package threadpoolctl with range >=3.5.0, <3.5.0+ after 1 steps
#15 3.230 DEBUG Selecting: threadpoolctl==3.5.0 [compatible] (threadpoolctl-3.5.0-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of markdown-it-py (>=3.0.0, <3.0.0+)
#15 3.230 TRACE Selecting candidate for markdown-it-py with range >=3.0.0, <3.0.0+ with 42 remote versions
#15 3.230 TRACE Found candidate for package markdown-it-py with range >=3.0.0, <3.0.0+ after 1 steps: 3.0.0 version
#15 3.230 TRACE Returning candidate for package markdown-it-py with range >=3.0.0, <3.0.0+ after 1 steps
#15 3.230 DEBUG Selecting: markdown-it-py==3.0.0 [compatible] (markdown_it_py-3.0.0-py3-none-any.whl)
#15 3.230 DEBUG Adding transitive dependency for markdown-it-py==3.0.0: mdurl>=0.1, <1.dev0
#15 3.230 DEBUG Adding transitive dependency for markdown-it-py==3.0.0: mdurl>=0.1.2, <0.1.2+
#15 3.230 DEBUG Searching for a compatible version of pygments (>=2.18.0, <2.18.0+)
#15 3.230 TRACE Selecting candidate for pygments with range >=2.18.0, <2.18.0+ with 64 remote versions
#15 3.230 TRACE Found candidate for package pygments with range >=2.18.0, <2.18.0+ after 1 steps: 2.18.0 version
#15 3.230 TRACE Returning candidate for package pygments with range >=2.18.0, <2.18.0+ after 1 steps
#15 3.230 DEBUG Selecting: pygments==2.18.0 [compatible] (pygments-2.18.0-py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of six (>=1.16.0, <1.16.0+)
#15 3.230 TRACE Selecting candidate for six with range >=1.16.0, <1.16.0+ with 28 remote versions
#15 3.230 TRACE Found candidate for package six with range >=1.16.0, <1.16.0+ after 1 steps: 1.16.0 version
#15 3.230 TRACE Returning candidate for package six with range >=1.16.0, <1.16.0+ after 1 steps
#15 3.230 DEBUG Selecting: six==1.16.0 [compatible] (six-1.16.0-py2.py3-none-any.whl)
#15 3.230 DEBUG Searching for a compatible version of defusedxml (>=0.7.1, <0.7.1+)
#15 3.230 TRACE Selecting candidate for defusedxml with range >=0.7.1, <0.7.1+ with 13 remote versions
#15 3.230 TRACE Found candidate for package defusedxml with range >=0.7.1, <0.7.1+ after 3 steps: 0.7.1 version
#15 3.230 TRACE Returning candidate for package defusedxml with range >=0.7.1, <0.7.1+ after 3 steps
#15 3.230 DEBUG Selecting: defusedxml==0.7.1 [compatible] (defusedxml-0.7.1-py2.py3-none-any.whl)
#15 3.231 TRACE cached request https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl.metadata is storable because its response has a 'public' cache-control directive
#15 3.231 TRACE cached request https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata is storable because its response has a 'public' cache-control directive
#15 3.231 TRACE Fetching metadata for cffi from https://pypi.org/simple/cffi/
#15 3.231 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/cffi.rkyv
#15 3.231 DEBUG No cache entry for: https://pypi.org/simple/cffi/
#15 3.231 TRACE Sending fresh GET request for https://pypi.org/simple/cffi/
#15 3.231 TRACE Handling request for https://pypi.org/simple/cffi/
#15 3.231 TRACE Request for https://pypi.org/simple/cffi/ is unauthenticated, checking cache
#15 3.231 TRACE No credentials in cache for URL https://pypi.org/simple/cffi/
#15 3.231 TRACE Attempting unauthenticated request for https://pypi.org/simple/cffi/
#15 3.231 TRACE Received built distribution metadata for: et-xmlfile==2.0.0
#15 3.231 TRACE Received built distribution metadata for: cycler==0.12.1
#15 3.231 TRACE Fetching metadata for mdurl from https://pypi.org/simple/mdurl/
#15 3.231 TRACE No cache entry exists for /tmp/.tmpEFbh8i/simple-v14/pypi/mdurl.rkyv
#15 3.231 DEBUG No cache entry for: https://pypi.org/simple/mdurl/
#15 3.231 TRACE Sending fresh GET request for https://pypi.org/simple/mdurl/
#15 3.231 TRACE Handling request for https://pypi.org/simple/mdurl/
#15 3.231 TRACE Request for https://pypi.org/simple/mdurl/ is unauthenticated, checking cache
#15 3.231 TRACE No credentials in cache for URL https://pypi.org/simple/mdurl/
#15 3.231 TRACE Attempting unauthenticated request for https://pypi.org/simple/mdurl/
#15 3.269 TRACE Received package metadata for: markupsafe
#15 3.269 TRACE Received package metadata for: kiwisolver
#15 3.269 TRACE Selecting candidate for markupsafe with range >=3.0.2, <3.0.2+ with 34 remote versions
#15 3.269 TRACE Found candidate for package markupsafe with range >=3.0.2, <3.0.2+ after 1 steps: 3.0.2 version
#15 3.269 TRACE Returning candidate for package markupsafe with range >=3.0.2, <3.0.2+ after 1 steps
#15 3.269 TRACE Selecting candidate for kiwisolver with range >=1.4.7, <1.4.7+ with 19 remote versions
#15 3.270 TRACE Found candidate for package kiwisolver with range >=1.4.7, <1.4.7+ after 1 steps: 1.4.7 version
#15 3.270 TRACE Returning candidate for package kiwisolver with range >=1.4.7, <1.4.7+ after 1 steps
#15 3.270 TRACE Received package metadata for: contourpy
#15 3.270 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/markupsafe/markupsafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.msgpack
#15 3.270 DEBUG No cache entry for: https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Handling request for https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Request for https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata is unauthenticated, checking cache
#15 3.270 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/kiwisolver/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.msgpack
#15 3.270 DEBUG No cache entry for: https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Handling request for https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Request for https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata is unauthenticated, checking cache
#15 3.270 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.270 TRACE Selecting candidate for contourpy with range >=1.3.1, <1.3.1+ with 21 remote versions
#15 3.270 TRACE Found candidate for package contourpy with range >=1.3.1, <1.3.1+ after 1 steps: 1.3.1 version
#15 3.270 TRACE Returning candidate for package contourpy with range >=1.3.1, <1.3.1+ after 1 steps
#15 3.271 TRACE No cache entry exists for /tmp/.tmpEFbh8i/wheels-v3/pypi/contourpy/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.msgpack
#15 3.271 DEBUG No cache entry for: https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.271 TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.271 TRACE Handling request for https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.271 TRACE Request for https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata is unauthenticated, checking cache
#15 3.271 TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.271 TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
#15 3.272 TRACE cached request https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata is storable because its response has a 'public' cache-control directive
#15 3.272 DEBUG Released lock at `/home/backoffice/.venv/.lock`
#15 3.284 error: Failed to fetch: `https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata`
#15 3.284   Caused by: request or response body error
#15 3.284   Caused by: error reading a body from connection
#15 3.284   Caused by: Connection reset by peer (os error 104)
#15 ERROR: executor failed running [/bin/sh -c uv pip install     --no-progress     -r /requirements.txt     -c /constraints.txt]: runc did not terminate sucessfully

I appreciate the network environment is bad, but the file does download using other popular tools which include retry by default (pip, curl, etc.), and I don't see any retry information in the logs.

@notatallshaw-gts notatallshaw-gts changed the title Still don't see retry on request or body error from metadata Still don't see retry on request or body error when fetching metadata Nov 19, 2024
@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

Hm maybe the WrappedReqwestError new type is breaking the error source check somehow?

@charliermarsh
Copy link
Member

Huh?

@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

Like we're relying on

if let Some(err) = find_source::<reqwest::Error>(&err) {

let mut cause = orig.source();

and we cast the error at

.map_err(|err| ErrorKind::from_reqwest(url.clone(), err))?;

#[error("Failed to fetch: `{0}`")]
WrappedReqwestError(Url, #[source] WrappedReqwestError),

but... we actually implement source so that's probably a dead end

impl std::error::Error for WrappedReqwestError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
if self.is_likely_offline() {
match &self.0 {
reqwest_middleware::Error::Middleware(err) => Some(err.as_ref()),
reqwest_middleware::Error::Reqwest(err) => Some(err),
}
} else {
self.0.source()
}
}
}

@charliermarsh
Copy link
Member

Oh that wasn't directed at you -- sorry. I'm more just confused as to how this could still be happening.

@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

Figured I'd share my train of thought anyway. Also very surprised.

@notatallshaw-gts
Copy link
Author

I only bring the hard/annoying bugs 😉

@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

Time to add logs, I guess. #9248

@charliermarsh
Copy link
Member

I don't know how to reproduce it, but you could be right about the source thing. Given:

impl std::error::Error for WrappedReqwestError {
    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
        if self.is_likely_offline() {
            match &self.0 {
                reqwest_middleware::Error::Middleware(err) => Some(err.as_ref()),
                reqwest_middleware::Error::Reqwest(err) => Some(err),
            }
        } else {
            self.0.source()
        }
    }
}

I think if we hit the else, we return the source of the wrapped error. So we skip the reqwest_middleware::Error itself? I.e., we skip self.0.

@charliermarsh
Copy link
Member

Actually, in both cases, aren't we skipping reqwest_middleware::Error itself?

@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

Oh true!

@charliermarsh
Copy link
Member

I'd like to try and reproduce somehow.

@charliermarsh charliermarsh self-assigned this Nov 19, 2024
@charliermarsh charliermarsh added the bug Something isn't working label Nov 19, 2024
@zanieb
Copy link
Member

zanieb commented Nov 19, 2024

I guess I'd use a patched reqwest that throws the error on text() or similar?

@charliermarsh
Copy link
Member

Ok believe I've reproduced by patching reqwest.

charliermarsh added a commit that referenced this issue Nov 19, 2024
## Summary

It turns out that `WrappedReqwestError` skips the `reqwest::Error`
itself in order to hack the display. This PR adds it to the list of
variants we check when retrying transient errors.

Closes #9246.


## Test Plan

Patched `reqwest` locally to return an error in `bytes()`. Verified that
it was _not_ caught prior to this PR, but was caught afterwards.
@notatallshaw-gts
Copy link
Author

I just tried 0.5.4 and my network didn't trigger the usual error but I did get a slightly different error which I wasn't sure if worth raising a new issue (it didn't block resolution / install):

#15 31.89 TRACE Attempting to retry error: Extract(AsyncZip(UpstreamReadError(Custom { kind: TimedOut, error: "Failed to download distribution due to network timeout. Try increasing UV_HTTP_TIMEOUT (current value: 30s)." })))
#15 31.89 TRACE Cannot retry error: not a reqwest error
#15 31.89 WARN Streaming failed for tqdm==4.67.0; downloading wheel to disk (an upstream reader returned an error: Failed to download distribution due to network timeout. Try increasing UV_HTTP_TIMEOUT (current value: 30s).)

The tqdm wheel (https://files.pythonhosted.org/packages/2b/78/57043611a16c655c8350b4c01b8d6abfb38cc2acb475238b62c2146186d7/tqdm-4.67.0-py3-none-any.whl) succeeded downloading after the timeout error.

And I guess UpstreamReadError is attempting to stream the file? And streaming doesn't retry it just timesout? Which probably makes sense.

@charliermarsh
Copy link
Member

Yeah if it fails I think we just download-then-unzip.

@notatallshaw-gts
Copy link
Author

notatallshaw-gts commented Nov 25, 2024

To round this out, I see it working in the trace logs!

#15 3.190 TRACE Attempting to retry error: Error { kind: WrappedReqwestError(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("files.pythonhosted.org")), port: None, path: "/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata", query: None, fragment: None }, WrappedReqwestError(Reqwest(reqwest::Error { kind: Body, source: hyper::Error(Body, Os { code: 104, kind: ConnectionReset, message: "Connection reset by peer" }) }))) }
#15 3.190 TRACE Retrying error: `ConnectionReset` or `UnexpectedEof` (`WrappedReqwestError`)
#15 3.190 DEBUG Transient failure while handling response from https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata; retrying...

...

#15 3.316 TRACE Attempting to retry error: Error { kind: WrappedReqwestError(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("files.pythonhosted.org")), port: None, path: "/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata", query: None, fragment: None }, WrappedReqwestError(Reqwest(reqwest::Error { kind: Body, source: hyper::Error(Body, Os { code: 104, kind: ConnectionReset, message: "Connection reset by peer" }) }))) }
#15 3.316 TRACE Retrying error: `ConnectionReset` or `UnexpectedEof` (`WrappedReqwestError`)
#15 3.316 DEBUG Transient failure while handling response from https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl.metadata; retrying...

And then the next request presumably worked because I don't see an error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants