pypa / pipenv

Python Development Workflow for Humans.
https://pipenv.pypa.io
MIT License
24.84k stars 1.87k forks source link

Problem with lacking hashes for pipenv with custom index url #4885

Closed HenrikPoulsen closed 2 years ago

HenrikPoulsen commented 2 years ago

Issue description

Since some version after pipenv 2021.5.29 it seems the lockfile behavior has changed regarding the hashes that get written to the file. I use Renovate to create PRs for updated dependencies. And since a couple of weeks the repo started to get lockfiles produced that were missing windows hashes for dependencies. Specifically it updates from aiohttp 3.8.0 to 3.8.1 and it ends up only including two hashes for it in the lockfile after it is done. When CI then tries to run the windows unit tests on that PR it fails, due to the hashes it is looking for is not present in the lockfile.

I have noticed that this only happens if I have a custom index-url in the Pipfile, which in my case points to an artifactory instance we use.

Expected result

Lockfile should be updated with all available hashes so crossplatform pipenv install is successful

Actual result

I get this error message on windows after it pip installs using the lockfile that renovate has created:

An error occurred while installing aiohttp==3.8.1; python_version >= '3.6' --hash=sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578 --hash=sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516! Will try again.

It only includes 2 hashes instead of the 70+ as on the older pipenv version This is the verbose output of when it doesn't work:

ubuntu@d7c59f82d09e:/data$ pipenv --version
pipenv, version 2021.11.23
ubuntu@d7c59f82d09e:/data$ pipenv --rm
Removing virtualenv (/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2)...
ubuntu@d7c59f82d09e:/data$ pipenv install --verbose
Using python: None
Path to python: /usr/local/python/3.9.9/bin/python3.9
Creating a virtualenv for this project...
Pipfile: /data/Pipfile
Using /usr/local/python/3.9.9/bin/python3.9 (3.9.9) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.9.9.final.0-64 in 183ms
  creator CPython3Posix(dest=/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ubuntu/.local/share/virtualenv)
    added seed packages: pip==21.3.1, setuptools==58.3.0, wheel==0.37.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Reporter.starting()
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting()
Reporter.adding_requirement(SpecifierRequirement('aiohttp==3.8.1'), None)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('aiohttp==3.8.1'), None)
Reporter.starting_round(0)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(0)
Reporter.adding_requirement(SpecifierRequirement('attrs>=17.3.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('attrs>=17.3.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('multidict<7.0,>=4.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('multidict<7.0,>=4.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('charset-normalizer<3.0,>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('charset-normalizer<3.0,>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.1'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.1'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('yarl<2.0,>=1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('yarl<2.0,>=1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('aiosignal>=1.1.2'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('aiosignal>=1.1.2'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.ending_round(0, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(0, state)
Reporter.starting_round(1)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(1)
Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
Reporter.ending_round(1, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(1, state)
Reporter.starting_round(2)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(2)
Reporter.adding_requirement(SpecifierRequirement('typing-extensions>=3.6.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('typing-extensions>=3.6.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
Reporter.ending_round(2, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(2, state)
Reporter.starting_round(3)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(3)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)'))
Reporter.ending_round(3, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(3, state)
Reporter.starting_round(4)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(4)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)'))
Reporter.ending_round(4, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(4, state)
Reporter.starting_round(5)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(5)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)'))
Reporter.ending_round(5, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(5, state)
Reporter.starting_round(6)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(6)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)'))
Reporter.ending_round(6, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(6, state)
Reporter.starting_round(7)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(7)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)'))
Reporter.ending_round(7, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(7, state)
Reporter.starting_round(8)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(8)
Reporter.adding_requirement(SpecifierRequirement('idna>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('idna>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('multidict>=4.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('multidict>=4.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.ending_round(8, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(8, state)
Reporter.starting_round(9)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(9)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))
Reporter.ending_round(9, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(9, state)
Reporter.starting_round(10)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(10)
Reporter.ending(State(mapping=OrderedDict([('aiohttp', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), ('aiosignal', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)')), ('async-timeout', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)')), ('attrs', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)')), ('charset-normalizer', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)')), ('frozenlist', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)')), ('multidict', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)')), ('typing-extensions', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)')), ('yarl', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')), ('idna', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))]), criteria={'aiohttp': Criterion((SpecifierRequirement('aiohttp==3.8.1'), via=None)), 'attrs': Criterion((SpecifierRequirement('attrs>=17.3.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'multidict': Criterion((SpecifierRequirement('multidict<7.0,>=4.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('multidict>=4.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))), 'charset-normalizer': Criterion((SpecifierRequirement('charset-normalizer<3.0,>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'frozenlist': Criterion((SpecifierRequirement('frozenlist>=1.1.1'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('frozenlist>=1.1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))), 'yarl': Criterion((SpecifierRequirement('yarl<2.0,>=1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'async-timeout': Criterion((SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'aiosignal': Criterion((SpecifierRequirement('aiosignal>=1.1.2'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'typing-extensions': Criterion((SpecifierRequirement('typing-extensions>=3.6.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))), 'idna': Criterion((SpecifierRequirement('idna>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')))}))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending(State(mapping=OrderedDict([('aiohttp', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), ('aiosignal', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)')), ('async-timeout', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)')), ('attrs', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)')), ('charset-normalizer', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)')), ('frozenlist', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)')), ('multidict', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)')), ('typing-extensions', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)')), ('yarl', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')), ('idna', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))]), criteria={'aiohttp': Criterion((SpecifierRequirement('aiohttp==3.8.1'), via=None)), 'attrs': Criterion((SpecifierRequirement('attrs>=17.3.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'multidict': Criterion((SpecifierRequirement('multidict<7.0,>=4.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('multidict>=4.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))), 'charset-normalizer': Criterion((SpecifierRequirement('charset-normalizer<3.0,>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'frozenlist': Criterion((SpecifierRequirement('frozenlist>=1.1.1'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('frozenlist>=1.1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))), 'yarl': Criterion((SpecifierRequirement('yarl<2.0,>=1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'async-timeout': Criterion((SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'aiosignal': Criterion((SpecifierRequirement('aiosignal>=1.1.2'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'typing-extensions': Criterion((SpecifierRequirement('typing-extensions>=3.6.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))), 'idna': Criterion((SpecifierRequirement('idna>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')))}))
⠋ Locking...
✔ Success!
Updated Pipfile.lock (80b28e)!
Installing dependencies from Pipfile.lock (80b28e)...
Writing supplied requirement line to temporary file: 'aiohttp==3.8.1 --hash=sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578 --hash=sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd'
Installing 'aiohttp'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-etaxvvjo-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "aiosignal==1.2.0; python_version >= '3.6' --hash=sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a --hash=sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"
Installing 'aiosignal'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-r_ysw2rc-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "async-timeout==4.0.1; python_version >= '3.6' --hash=sha256:a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 --hash=sha256:b930cb161a39042f9222f6efb7301399c87eeab394727ec5437924a36d6eef51"
Installing 'async-timeout'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-bd02p628-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' --hash=sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 --hash=sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
Installing 'attrs'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-4612xm51-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "charset-normalizer==2.0.8; python_version >= '3.5' --hash=sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0 --hash=sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405"
Installing 'charset-normalizer'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-umbhnkro-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "frozenlist==1.2.0; python_version >= '3.6' --hash=sha256:1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 --hash=sha256:68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de"
Installing 'frozenlist'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-r5rph6_7-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "idna==3.3; python_version >= '3.5' --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
Installing 'idna'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-d6bguty1-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "multidict==5.2.0; python_version >= '3.6' --hash=sha256:0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce --hash=sha256:93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0"
Installing 'multidict'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-47sd48pi-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting aiohttp==3.8.1
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.2 MB)
Installing collected packages: aiohttp
Successfully installed aiohttp-3.8.1
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting aiosignal==1.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
Installing collected packages: aiosignal
Successfully installed aiosignal-1.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting async-timeout==4.0.1
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl (5.7 kB)
Installing collected packages: async-timeout
Successfully installed async-timeout-4.0.1
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting attrs==21.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Installing collected packages: attrs
Successfully installed attrs-21.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting charset-normalizer==2.0.8
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl (39 kB)
Installing collected packages: charset-normalizer
  changing mode of /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/normalizer to 755
Successfully installed charset-normalizer-2.0.8
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting frozenlist==1.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (203 kB)
Installing collected packages: frozenlist
Successfully installed frozenlist-1.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting idna==3.3
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl (61 kB)
Installing collected packages: idna
Successfully installed idna-3.3
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting multidict==5.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (174 kB)
Installing collected packages: multidict
Successfully installed multidict-5.2.0
Writing supplied requirement line to temporary file: "typing-extensions==4.0.0; python_version >= '3.6' --hash=sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 --hash=sha256:2cdf80e4e04866a9b3689a51869016d36db0814d84b8d8a568d22781d45d27ed"
Installing 'typing-extensions'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-e3sr5w0i-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "yarl==1.7.2; python_version >= '3.6' --hash=sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 --hash=sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd"
Installing 'yarl'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-rm5tr_31-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
  �   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 10/10 — 00:00:02
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting typing-extensions==4.0.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl (22 kB)
Installing collected packages: typing-extensions
Successfully installed typing-extensions-4.0.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting yarl==1.7.2
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (304 kB)Installing collected packages: yarl
Successfully installed yarl-1.7.2
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

Steps to replicate

  1. Use the pipfile listed at the bottom of the pipenv --support below here, modify the index-url to something that works for you
  2. For reproducing I used the renovate docker image, since I run on windows. So: docker run -it -v /folder/with/pipfile:/data --entrypoint /bin/bash renovate/python:3.9 use whatever you prefer
  3. run pip install pipenv
  4. run pip install
  5. Verify number of hashes in Pipfile.lock only has a couple of values in it

Observe that I was unable to reproduce this without the [[source]] section in the Pipfile


$ pipenv --support Pipenv version: `'2021.11.23'` Pipenv location: `'/home/ubuntu/.local/lib/python3.9/site-packages/pipenv'` Python location: `'/usr/local/python/3.9.9/bin/python3.9'` Python installations found: - `3.9.9`: `/usr/local/python/3.9.9/bin/python3.9` - `3.9.9`: `/usr/local/python/3.9.9/bin/python3` - `3.9.9`: `/usr/local/python/3.9.9/bin/python` - `3.9.9`: `/usr/local/bin/python` PEP 508 Information: ``` {'implementation_name': 'cpython', 'implementation_version': '3.9.9', 'os_name': 'posix', 'platform_machine': 'x86_64', 'platform_python_implementation': 'CPython', 'platform_release': '5.10.60.1-microsoft-standard-WSL2', 'platform_system': 'Linux', 'platform_version': '#1 SMP Wed Aug 25 23:20:18 UTC 2021', 'python_full_version': '3.9.9', 'python_version': '3.9', 'sys_platform': 'linux'} ``` System environment variables: - `USER_ID` - `HOSTNAME` - `PWD` - `USER_NAME` - `HOME` - `USER_HOME` - `LANG` - `LS_COLORS` - `TERM` - `SHLVL` - `BASH_ENV` - `LC_ALL` - `PATH` - `DEBIAN_FRONTEND` - `BUILDPACK` - `OLDPWD` - `_` - `PIP_SHIMS_BASE_MODULE` - `PIP_DISABLE_PIP_VERSION_CHECK` - `PYTHONDONTWRITEBYTECODE` - `PIP_PYTHON_PATH` - `PYTHONFINDER_IGNORE_UNSUPPORTED` Pipenv–specific environment variables: Debug–specific environment variables: - `PATH`: `/home/ubuntu/.local/bin:/usr/local/python/3.9.9/bin:/home/ubuntu/bin:/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` - `LANG`: `C.UTF-8` - `PWD`: `/data` --------------------------- Contents of `Pipfile` ('/data/Pipfile'): ```toml [[source]] url = "https//someartifactory/api/pypi/pypi/simple" verify_ssl = true name = "pypi" [packages] aiohttp = "==3.8.1" ``` Contents of `Pipfile.lock` ('/data/Pipfile.lock'): ```json { "_meta": { "hash": { "sha256": "124cf509d4d27ce063e7a4f1fe5faf9892b0896c8e84f4207b11663cc780b28e" }, "pipfile-spec": 6, "requires": {}, "sources": [ { "name": "pypi", "url": "https//someartifactory/api/pypi/pypi/simple", "verify_ssl": true } ] }, "default": { "aiohttp": { "hashes": [ "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd", "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578" ], "index": "pypi", "version": "==3.8.1" }, "aiosignal": { "hashes": [ "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a", "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2" ], "markers": "python_version >= '3.6'", "version": "==1.2.0" }, "async-timeout": { "hashes": [ "sha256:a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690", "sha256:b930cb161a39042f9222f6efb7301399c87eeab394727ec5437924a36d6eef51" ], "markers": "python_version >= '3.6'", "version": "==4.0.1" }, "attrs": { "hashes": [ "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==21.2.0" }, "charset-normalizer": { "hashes": [ "sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0", "sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405" ], "markers": "python_full_version >= '3.5.0'", "version": "==2.0.8" }, "frozenlist": { "hashes": [ "sha256:1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9", "sha256:68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de" ], "markers": "python_version >= '3.6'", "version": "==1.2.0" }, "idna": { "hashes": [ "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" ], "markers": "python_full_version >= '3.5.0'", "version": "==3.3" }, "multidict": { "hashes": [ "sha256:0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce", "sha256:93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0" ], "markers": "python_version >= '3.6'", "version": "==5.2.0" }, "typing-extensions": { "hashes": [ "sha256:2cdf80e4e04866a9b3689a51869016d36db0814d84b8d8a568d22781d45d27ed", "sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9" ], "markers": "python_version >= '3.6'", "version": "==4.0.0" }, "yarl": { "hashes": [ "sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd", "sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794" ], "markers": "python_version >= '3.6'", "version": "==1.7.2" } }, "develop": {} } ```
matteius commented 2 years ago

I agree with this report and was looking for someone with the same report -- our lock file is 75% lighter after version 2021.5.29. I am currently diffing the code base to see if I can find any hints at what could be going on.

matteius commented 2 years ago

However @HenrikPoulsen, I am still able to reproduce the issue without having the [[source]] section in the Pipfile so I think that is maybe unrelated. Unfortunately my example is a private Pipfile that I cannot share, but it seems to depend on the versions of things in the Pipfile. For example, after modifying just the version of 1/65 requirements and adding another requirement to the Pipfile, the lock file goes from missing 75% of requirements to appearing to be complete.

jfly commented 2 years ago

We're running into this as well. I've put together a repro here: https://github.com/jfly/pipenv-issue-4885-repro. Unlike @matteius but like @HenrikPoulsen, I needed to introduce an alternative Python package index to trigger the issue. So maybe @matteius is running into something different, or there are other ways to get this issue to rear its head.

I'll try to get a clone of pipenv running and see if I can git bisect my way to a problematic commit.

jfly commented 2 years ago

So I bisected, and here's what I found:

That corresponds to this massive PR from @frostming: https://github.com/pypa/pipenv/pull/4759/, which definitely sounds suspicious. I'm not sure how much further I'll be able to take this investigation.

jfly commented 2 years ago

Ok, I've dug enough to confirm that 5ef5a59d41385945f2fc7f0e492900921ffc924b is definitely where this broke.

Previous, working behavior (I'm looking at d0fa43ad973d5c427f0e2baeee37de577651725a):

  1. actually_resolve_deps calls resolver.resolve_hashes: https://github.com/pypa/pipenv/blob/d0fa43ad973d5c427f0e2baeee37de577651725a/pipenv/utils.py#L1103
  2. Resolver::resolve_hashes calls self.resolver.resolve_hashes: https://github.com/pypa/pipenv/blob/d0fa43ad973d5c427f0e2baeee37de577651725a/pipenv/utils.py#L977
  3. Piptools's Resolver::resolve_hashes finds all the hashes: https://github.com/pypa/pipenv/blob/d0fa43ad973d5c427f0e2baeee37de577651725a/pipenv/patched/piptools/resolver.py#L142-L149

New, broken behavior (I'm looking at 3ab4763d4ac203fdc2bd16e9609bebe311744bc1 here):

  1. actually_resolve_deps calls resolver.resolve_hashes: https://github.com/pypa/pipenv/blob/3ab4763d4ac203fdc2bd16e9609bebe311744bc1/pipenv/utils.py#L1090
  2. Resolver::resolve_hashes calls self.collect_hashes: https://github.com/pypa/pipenv/blob/3ab4763d4ac203fdc2bd16e9609bebe311744bc1/pipenv/utils.py#L964 3a. When using pypi.org collect_hashes goes into this pypi.org specific code block and calls _get_hashes_from_pypi, which finds all the hashes, regardless of the platform we're running on: https://github.com/pypa/pipenv/blob/3ab4763d4ac203fdc2bd16e9609bebe311744bc1/pipenv/utils.py#L945-L951 3b. When using a custom python package index collect_hashes calls self.finder.find_best_candidate, which only finds candidates that are installable on the current platform: https://github.com/pypa/pipenv/blob/3ab4763d4ac203fdc2bd16e9609bebe311744bc1/pipenv/utils.py#L953-L959

Unfortunately, this seems to be one of those situations where understanding why it used to work and why it doesn't work now doesn't seem to be enough information to fix the problem. I don't know why we moved away from piptools, but presumably that was for a good reason. Maybe the right fix is to change up this code to find all candidates, not just ones that could work on the current platform?

@frostming, I could really use some help here. Thanks!

frostming commented 2 years ago

When using a custom python package index collect_hashes calls self.finder.find_best_candidate, which only finds candidates that are installable on the current platform.

This should be wrong, care to submit a fix for it? @jfly Thanks.

jfly commented 2 years ago

@frostming, I can give that a shot. I could use a little help getting started, though. My initial thought is to add a boolean parameter to find_best_candidate that tells it it's ok to find candidates that for other platforms (perhaps a only_for_current_platform parameter that defaults to true, and we can change it to False when collect_hashes runs). How does that sound?

jfly commented 2 years ago

Oh wait, I just realized I'm talking about changing vendored pip code. Is that an ok? Or do we prefer not to change that code?

matteius commented 2 years ago

@jfly This other issue #4866 was specifically what was causing the missing hashes in my case; Based on your research so far do you think this could be related to what you have found? https://github.com/pypa/pipenv/issues/4866#issuecomment-968729805

jfly commented 2 years ago

@matteius that sounds different. The bug I tracked down is definitely specific to when you're using a custom python package server.